· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Initrd-TRANS

<!doctype linuxdoc system>
<article>
<title> Ãʱâ RAM µð½ºÅ© »ç¿ëÇϱâ (initrd)
<author> Werner Almesberger <htmlurl url="mailto:werner.almesberger@epfl.ch" name="werner.almesberger@epfl.ch"> & Hans Lermen <htmlurl url="mailto:lermen@fgan.de" name="lermen@fgan.de">
<date> 1996, 2000
<trans> ¼­¼º¿ë <htmlurl url="mailto:pooh@kldp.org" name="pooh@kldp.org">
<tdate> 2000³â 12¿ù 29ÀÏ 

<abstract>
½Ã½ºÅÛ ¼³Ä¡½Ã ¸ðµâ½ÄÀÇ Ä¿³Î ¼³Á¤À» °¡´ÉÇÏ°Ô ÇÏ´Â initrd ÀÇ ¼Ò°³¿Í »ç¿ë¹ýÀ» ´ã°í ÀÖ´Ù.
</abstract>


<toc>


<sect>¼Ò°³

<p>
initrd ´Â ºÎÆ® ·Î´õ¿¡ ÀÇÇØ RAM µð½ºÅ©¸¦ ÀÐ¾î µéÀÌ´Â ´É·ÂÀ» Á¦°øÇÑ´Ù.
ÀÌ RAM µð½ºÅ©´Â ±× ÈÄ¿¡ ·çÆ® ÆÄÀϽýºÅÛÀ¸·Î ¸¶¿îÆ®µÇ¾î ÇÁ·Î±×·¥µéÀÌ
±×°ÍÀ¸·ÎºÎÅÍ ½ÇÇàµÉ ¼ö ÀÖ´Ù. ±× ÈÄ¿¡, »õ·Î¿î ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÌ ´Ù¸¥
ÀåÄ¡·ÎºÎÅÍ ¸¶¿îÆ® µÉ ¼ö ÀÖ´Ù. ±× ÈÄ ÀÌÀüÀÇ ·çÆ® (initrd ·ÎºÎÅÍ) ´Â
µð·ºÅ丮·Î ¿Å°ÜÁö°í °á±¹ ¾ð¸¶¿îÆ® µÉ ¼ö ÀÖ´Ù.

<p>
initrd ´Â Å©°Ô ½Ã½ºÅÛÀÇ ½ÃÀÛÀ» µÎ ´Ü°è·Î ÀϾ´Â °ÍÀ» °¡´ÉÇÏ°Ô Çϱâ
À§ÇØ ¼³°èµÇ¾ú´Ù. ÀÌ µÎ ´Ü°è´Â Ä¿³ÎÀÌ ÄÄÆÄÀÏµÇ¾î ³»ÀåµÈ ÃÖ¼Ò ÁýÇÕÀÇ
µå¶óÀ̹ö¿Í ÇÔ²² ¿Ã¶ó¿À°í, Ãß°¡ÀÇ ¸ðµâµéÀÌ initrd ¿¡¼­ Àоîµé¿©Áö´Â
°ÍÀÌ´Ù.

<p>
ÀÌ ¹®¼­´Â initrd »ç¿ë¿¡ ´ëÇØ °£´ÜÇÑ °³°üÀ» Á¦°øÇÑ´Ù. ºÎÆ® °úÁ¤¿¡ ´ëÇÑ
º¸´Ù ÀÚ¼¼ÇÑ ³íÀÇ´Â [1] ¿¡¼­ ã¾Æº¼ ¼ö ÀÖ´Ù.


<sect>ÀÛµ¿

<p>
initrd ¸¦ »ç¿ëÇÒ¶§, ½Ã½ºÅÛÀº ´ÙÀ½°ú °°ÀÌ ºÎÆÃµÈ´Ù:

<enum>
<item>ºÎÆ® ·Î´õ´Â Ä¿³Î°ú ÃʱâÀÇ RAM µð½ºÅ©¸¦ ÀоîµéÀδÙ.
<item>Ä¿³ÎÀº initrd ¸¦ "º¸ÅëÀÇ" RAM µð½ºÅ©·Î º¯È¯Çϰí,
     initrd ¿¡ ÀÇÇØ »ç¿ëµÈ ¸Þ¸ð¸®¸¦ Ç®¾î³õ´Â´Ù.
<item>initrd ´Â ·çÆ®¿¡ Àаí-¾²±â ¸ðµå·Î ¸¶¿îÆ®µÈ´Ù.
<item>/linuxrc °¡ ½ÇÇàµÈ´Ù (À̰ÍÀº ¾î¶² À¯È¿ÇÑ ½ÇÇàÆÄÀϵµ µÉ ¼ö ÀÖ´Ù,
     ½© ½ºÅ©¸³Æ®µµ Æ÷ÇÔÇÏ¿©; ±×°ÍÀº uid 0 À¸·Î ½ÇÇàµÇ°í ±âº»ÀûÀ¸·Î
     init °¡ ÇÒ ¼ö ÀÖ´Â °ÍÀº ¸ðµÎ ÇÒ ¼ö ÀÖ´Ù)
<item>linuxrc °¡ "ÁøÂ¥" ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ®ÇÑ´Ù
<item>linuxrc °¡ pivot_root ½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÏ¿© ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ»
     ·çÆ® µð·ºÅ丮¿¡ ¸¶¿îÆ®ÇÑ´Ù.
<item>º¸ÅëÀÇ ºÎÆ® °úÁ¤ (¿¹¸¦ µé¸é, /sbin/init ¸¦ ºÎ¸£´Â °Í) ÀÌ ·çÆ® ÆÄÀÏ
     ½Ã½ºÅÛ¿¡¼­ ¼öÇàµÈ´Ù
<item>initrd ÆÄÀÏ ½Ã½ºÅÛÀÌ Á¦°ÅµÈ´Ù
</enum>

<p>
·çÆ® µð·ºÅ丮¸¦ º¯°æÇÏ´Â °ÍÀÌ ±×°ÍÀ» ¾ð¸¶¿îÆ® ÇÏ´Â °ÍÀ» Æ÷ÇÔÇÏÁö ¾ÊÀ½¿¡
ÁÖÀÇÇ϶ó. µû¶ó¼­ initrd ¿¡¼­ µ¹¾Æ°¡´Â ÇÁ·Î¼¼½º¸¦ ÀÌ °úÁ¤µ¿¾È ³²°Ü³õÀ»
¼ö ÀÖ´Ù. ¶ÇÇÑ initrd ¾Æ·¡¿¡ ¸¶¿îÆ®µÈ ÆÄÀÏ ½Ã½ºÅÛµµ °è¼ÓÇØ¼­ Á¢±Ù°¡´ÉÇÔ¿¡
ÁÖÀÇÇ϶ó.


<sect>ºÎÆ® ¸í·ÉÇà ¿É¼Ç

<p>
initrd ´Â ´ÙÀ½ÀÇ »õ·Î¿î ¿É¼ÇÀ» Ãß°¡ÇÑ´Ù:

<p>
  initrd=<path> (¿¹, LOADLIN)

<p>
    ÁöÁ¤µÈ ÆÄÀÏÀ» Ãʱâ RAM disk ·Î ÀоîµéÀδÙ. LILO ¸¦ »ç¿ëÇÒ ¶§,
    RAM µð½ºÅ© À̹ÌÁö¸¦ /etc/lilo.conf ¾È¿¡ ÁöÁ¤ÇØ¾ß Çϸç, INITRD ¼³Á¤
    º¯¼ö¸¦ ÀÌ¿ëÇÑ´Ù.

<p>
  noinitrd

<p>
    initrd ÀÚ·á´Â º¸Á¸µÇ³ª RAM µð½ºÅ©·Î ÀüȯµÇ¾î "º¸ÅëÀÇ" ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ
    ÀÌ ¸¶¿îÆ®µÇÁö´Â ¾Ê´Â´Ù. initrd ÀÚ·á´Â /dev/initrd ¿¡¼­ ÀÐÀ» ¼ö ÀÖ´Ù.
    initrd ÀÌ ÀÖ´Â ÀÚ·á°¡ ÀÌ °æ¿ì¿¡´Â ¾î¶°ÇÑ ±¸Á¶µçÁö °¡Áú ¼ö ÀÖ°í,
    ¹Ýµå½Ã ÆÄÀÏ ½Ã½ºÅÛ À̹ÌÁöÀÏ ÇÊ¿ä´Â ¾ø´Ù.
    ÀÌ ¿É¼ÇÀº ÁÖ·Î µð¹ö±ë¿¡ ¾²ÀδÙ.

<p>
    ÁÖÀÇ: /dev/initrd ´Â Àбâ Àü¿ëÀ̰í Çѹø¸¸ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¸¶Áö¸·
    ÇÁ·Î¼¼½º°¡ ±×°ÍÀ» ´ÝÀÚ¸¶ÀÚ, ¸ðµç ÀÚ·á´Â Ç®·ÁÁö°í(freed) /dev/initrd
    ´Â ´õÀÌ»ó ¿­¸± ¼ö ¾ø´Ù.

<p>    
  root=/dev/ram0   (devfs¸¦ »ç¿ëÇÏÁö ¾ÊÀ»¶§)
<p>    
  root=/dev/rd/0   (devfs »ç¿ëÇÒ ¶§)

<p>
    initrd ´Â ·çÆ®·Î ¸¶¿îÆ®µÇ°í, RAM µð½ºÅ©°¡ ¿©ÀüÈ÷ ·çÆ®¿¡ ¸¶¿îÆ®µÈ ä,
    º¸ÅëÀÇ ºÎÆ® °úÁ¤ÀÌ °è¼ÓµÈ´Ù.


<sect>¼³Ä¡

<p>
ù°, initrd ÆÄÀÏ ½Ã½ºÅÛÀ» À§ÇÑ µð·ºÅ丮°¡ "º¸ÅëÀÇ" ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ¿¡
»ý¼ºµÇ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é

<p>
# mkdir /initrd

<p>
À̸§Àº »ó°ü¾ø´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº pivot_root(2) ¸Ç ÆäÀÌÁö¿¡¼­ ã¾Æº¼ ¼ö
ÀÖ´Ù.

<p>
¸¸¾à ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÌ ºÎÆ® °úÁ¤¿¡¼­ »ý¼ºµÈ´Ù¸é (Áï, ¸¸¾à ¼³Ä¡ Ç÷ÎÇǸ¦
Á¦ÀÛÇϰí ÀÖ´Ù¸é), ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ »ý¼º °úÁ¤Àº /initrd µð·ºÅ丮¸¦
»ý¼ºÇØ¾ß ÇÑ´Ù.

<p>
¸¸¾à initrd °¡ ¾î¶² °æ¿ì¿¡ ¸¶¿îÆ®µÇÁö ¾Ê´Â´Ù¸é, ±×°ÍÀÇ ³»¿ëÀº ´ÙÀ½ÀÇ
ÀåÄ¡°¡ ¸¸µé¾îÁ³À» °æ¿ì¿£ °è¼ÓÇØ¼­ Á¢±Ù °¡´ÉÇÏ´Ù (À̰ÍÀÌ devfs ¸¦
»ç¿ëÁßÀÏ °æ¿ì¿£ ÀÛµ¿ÇÏÁö ¾ÊÀ½¿¡ À¯ÀÇ):

<p>
# mknod /dev/initrd b 1 250 

<p>
# chmod 400 /dev/initrd

<p>
µÑ°, Ä¿³ÎÀº RAM µð½ºÅ© Áö¿ø°ú Ãʱâ RAM µð½ºÅ© Áö¿øÀÌ È°¼ºÈ­µÇ¾î
ÄÄÆÄÀÏ µÇ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ, Àû¾îµµ initrd ·ÎºÎÅÍ ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§ÇÑ
¸ðµç ¿ä¼Òµé(¿¹, ½ÇÇà °¡´ÉÇÑ Çü½Ä°ú ÆÄÀÏ ½Ã½ºÅÛ) ÀÌ ÄÄÆÄÀÏ µÇ¾î
Ä¿³Î ¾ÈÀ¸·Î µé¾î°¡¾ß ÇÑ´Ù.

<p>
¼Â°, ·¥ µð½ºÅ© À̹ÌÁö¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. À̰ÍÀº ºí·° ÀåÄ¡¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ»
¸¸µé°í, ¿©±â¿¡ ÇÊ¿äÇÑ ¸¸Å­ ÆÄÀÏÀ» º¹»çÇÑ ÈÄ, ºí·° ÀåÄ¡ÀÇ ³»¿ëÀ» initrd ÆÄÀÏ
¿¡ Ãß°¡ÇÏ¸é µÈ´Ù. ÃÖ±ÙÀÇ Ä¿³Î¿¡¼­´Â, ÃÖ¼ÒÇÑ ¼¼ Á¾·ùÀÇ ÀåÄ¡°¡ ´ÙÀ½¿¡ ÀûÀûÇÒ´Ù.

<itemize>
<item>Ç÷ÎÇÇ µð½ºÅ© (¾î´À°÷¿¡¼­³ª ÀÛµ¿ÇÏÁö¸¸ ±«·Î¿ïÁ¤µµ·Î ´À¸®´Ù)
<item>·¥ µð½ºÅ© (ºü¸£Áö¸¸, ¹°¸®Àû ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ´Ù)
<item>·çÇÁ¹é ÀåÄ¡ (°¡Àå ÈǸ¢ÇÑ ¹æ¹ý)
</itemize>

<p>
·çÇÁ¹é ÀåÄ¡¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϵµ·Ï ÇϰڴÙ.

<enum>
<item>·çÇÁ¹é ºí·° ÀåÄ¡°¡ Ä¿³Î ¾È¿¡ ¼³Á¤µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù.
<p>
<item>ÀûÀýÇÑ Å©±âÀÇ ºó ÆÄÀÏ ½Ã½ºÅÛÀ» »ý¼ºÇÑ´Ù. ¿¹¸¦ µé¸é,
<p>
    # dd if=/dev/zero of=initrd bs=300k count=1
<p>
    # mke2fs -F -m0 initrd
<p>
    (¸¸¾à °ø°£ÀÌ Áß¿äÇÏ´Ù¸é, Ext2 ´ë½Å¿¡ Minix FS ¸¦ »ç¿ëÇÒ¼öµµ ÀÖ´Ù.)
<p>
<item>ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ®ÇÑ´Ù. ¿¹¸¦ µé¸é,
<p>
    # mount -t ext2 -o loop initrd /mnt
<p>
<item>ÄÜ¼Ö ÀåÄ¡¸¦ »ý¼ºÇÑ´Ù(devfs¸¦ »ç¿ëÇÑ´Ù¸é ²À ÇÊ¿äÇÏÁö´Â ¾ÊÀ¸³ª, ¾î·µç ¹®Á¦
    ¸¦ ¹®Á¦¸¦ ÀÏÀ¸Å°Áö´Â ¾Ê´Â´Ù) :
<p>
    # mkdir /mnt/dev
<p>
    # mknod /mnt/dev/console c 5 1
<p>
<item>initdrd ȯ°æÀ» ÀûÀýÇÏ°Ô »ç¿ëÇϱâ À§ÇØ ÇÊ¿äÇÑÆÄÀϵéÀ» º¹»çÇÑ´Ù. °¡Àå Áß¿äÇÑ
    ÆÄÀÏÀÎ /linuxrc ¸¦ ÀØÁö ¸»¶ó. /linuxrc ÀÇ ÆÛ¹Ì¼ÇÀº x (½ÇÇà) À» Æ÷ÇÔÇØ¾ß
    ÇÔ¿¡ ÁÖÀÇÇ϶ó.
<p>
<item>initrd ȯ°æÀÌ ÇÒ ¼ö ÀÖ´Â Á¤È®ÇÑ ÀÛµ¿Àº ¸®ºÎÆÃ ÇÏÁö ¾Ê°íµµ ´ÙÀ½ÀÇ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ÀÚÁÖ Å×½ºÆ® ÇÒ ¼ö ÀÖ´Ù. 
<p>
    # chroot /mnt /linuxrc
<p>
¹°·Ð À̰ÍÀº ÀϹÝÀûÀÎ ½Ã½ºÅÛ »óŸ¦ ¹æÇØÇÏÁö ¾Ê´Â initrd¿¡¸¸ ÇÑÁ¤µÈ´Ù
(¿¹, ³×Æ®¿÷ ÀÎÅÍÆäÀ̽º¸¦ Àç¼³Á¤, ¸¶¿îÆ®µÈ µð¹ÙÀ̽º¿¡ µ¤¾î¾²±â, À̹Ì
½ÇÇàÁßÀÎ µ¥¸óÀ» ´Ù½Ã ¶ç¿ì±â µî¿¡ ÀÇÇØ¼­. ±×·¯³ª ±×·¯ÇÑ chroot µÈ initrd
ȯ°æ¿¡¼­µµ pivot_root ¸¦ »ç¿ëÇÏ´Ù´Â °Í¿¡ ÁÖ¸ñÇ϶ó.)
<p>
<item>ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ð¸¶¿îÆ®ÇÑ´Ù.
<p>
    # umount /mnt
<p>
<item>ÀÌÁ¦ initrd ´Â ÆÄÀÏ "initrd" ¾È¿¡ ÀÖ´Ù. ÇÊ¿äÇÏ´Ù¸é ¾ÐÃàÇÒ¼öµµ ÀÖ´Ù.
<p>
    # gzip -9 initrd

<p>
initrd ¸¦ ½ÇÇèÇϱâ À§Çؼ­, º¹±¸¿ë Ç÷ÎÇÇ µð½ºÄϰú /linuxrc ¿¡¼­ /bin/sh ·Î
½Éº¼¸¯ ¸µÅ©¸¸ Ãß°¡ÇÏ¸é µÈ´Ù. ÀÌ ´ë½Å¿¡, ÀÛÀº initrd ¸¦ »ý¼ºÇϱâ À§Çؼ­,
½ÇÇèÀûÀÎ newlib ȯ°æ [2] ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

<p>
<item>¸¶Áö¸·À¸·Î, Ä¿³ÎÀ» ºÎÆ®Çϰí initrd ¸¦ ÀоîµéÀδÙ. ´ëºÎºÐ ¸ðµç ¸®´ª½º ºÎÆ®
·Î´õ´Â initrd ¸¦ Áö¿øÇÑ´Ù. ºÎÆ® °úÁ¤ÀÌ ±¸½ÄÀÇ ¸ÞÄ¿´ÏÁò°ú ¿©ÀüÈ÷ ȣȯµÇ¹Ç·Î,
´ÙÀ½ÀÇ ºÎÆ® ¸í·ÉÇà ÆÄ¶ó¹ÌÅ͵éÀÌ ÁÖ¾îÁ®¾ß¸¸ ÇÑ´Ù:

<p>
  ¸¸¾à devfs ¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é,

<p>
  root=/dev/ram0 init=/linuxrc rw

<p>
  »ç¿ëÇÑ´Ù¸é(rw ´Â initrd ÆÄÀÏ ½Ã½ºÅÛ¿¡ ¾²±â¸¦ ÇÒ¶§¸¸ ÇÊ¿äÇÏ´Ù)

<p>
  root=/dev/rd/0 init=/linuxrc rw

<p>
LOADLIN ÀÇ °æ¿ì¿¡´Â, ´ÜÁö À̰͸¸ ½ÇÇàÇÏ¸é µÈ´Ù.

<p>
     LOADLIN < kernel > initrd= <disk_image>
<p>
¿¹)  LOADLIN C:\LINUX\BZIMAGE initrd=C:\LINUX\INITRD.GZ root=/dev/ram0
<p>
       init=/linuxrc rw
<p>
LILO ÀÇ °æ¿ì, /etc/lilo.conf ¾È¿¡ Àüü ¼½¼Ç À̳ª ȤÀº ÇØ´çÇÏ´Â ¼½¼Ç¿¡
INITRD=<path> ¿É¼ÇÀ» Ãß°¡ÇÑ´Ù. ±×¸®°í APPEND ¸¦ ÀÌ¿ëÇÏ¿© ¿É¼ÇÀ» ³Ñ°ÜÁØ´Ù.
¿¹¸¦ µé¸é,

<p>
  image = /bzImage
<p>
    initrd = /boot/initrd.gz
<p>
    append = "root=/dev/ram0 init=/linuxrc rw"
<p>
±×¸®°í /sbin/lilo ¸¦ ½ÇÇà½ÃŲ´Ù.

<p>
´Ù¸¥ ºÎÆ® ·Î´õ´Â ÇØ´çÇÏ´Â ¹®¼­¸¦ ÂüÁ¶Ç϶ó.

<p>
ÀÌÁ¦ ºÎÆÃÀ» ÇÒ ¼ö ÀÖ°í initrd ¸¦ »ç¿ëÇÏ´Â °ÍÀ» Áñ±æ ¼ö ÀÖ´Ù.

</enum>


<sect>·çÆ® ÀåÄ¡ ¹Ù²Ù±â

<p>
linuxrc °¡ ÀÚ½ÅÀÇ ÇÒÀÏÀ» ³¡³»¸é, ·çÆ® ÀåÄ¡¸¦¸¦ º¯°æÇÏ¿©, "ÁøÂ¥" ·çÆ® ÀåÄ¡¿¡¼­
¸®´ª½º ½Ã½ºÅÛÀ» ½ÃÀÛÇÔÀ¸·Î½á °è¼Ó ÁøÇà½ÃŲ´Ù.

<p>
±× °úÁ¤Àº ´ÙÀ½ÀÇ °úÁ¤À» Æ÷ÇÔÇÑ´Ù.

<itemize>
<item>»õ·Î¿î ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ ¸¶¿îÆ®Çϱâ
<item>±×°ÍÀ» ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î ¹Ù²Ù°í
<item>ÀÌÀüÀÇ (initrd) ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ¸·ÎÀÇ ¸ðµç ¾ï¼¼½º¸¦ Á¦°ÅÇϰí
<item>initrd ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ð¸¶¿îÆ®Çϰí RAM µð½ºÅ©¸¦ ÇØÁ¦ÇÑ´Ù.(de-allocate)
</itemize>

<p>
»õ·Î¿î ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ® ÇÏ´Â °ÍÀº ½±´Ù: ´ÜÁö ÇöÀçÀÇ ·çÆ® ¾Æ·¡ÀÇ
µð·ºÅ丮¿¡ ¸¶¿îÆ®¸¸ µÇ¸é µÈ´Ù. ¿¹¸¦ µé¸é:

<p>
# mkdir /new-root
<p>
# mount -o ro /dev/hda1 /new-root

<p>
·çÆ® º¯°æÀº pivot_root ½Ã½ºÅÛ ÄÝÀ» ÀÌ¿ëÇÏ¿© ÀÌ·ïÁø´Ù. ÀÌ ½Ã½ºÅÛ ÄÝÀº
pivot_root À¯Æ¿¸®Æ¼ ( pivot_root(8) ¸Ç ÆäÀÌÁö¸¦ ÂüÁ¶; pivot_root ´Â util-linux
¹öÀü 2.10h ÀÌ»óÀ¸·Î ¹èÆ÷µÈ´Ù [3]) ¸¦ ÅëÇØ¼­µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. pivot_root ´Â
ÇöÀçÀÇ ·çÆ®¸¦ »õ·Î¿î ·çÆ® ¾Æ·¡ÀÇ µð·ºÅ丮·Î º¯°æÇϰí, »õ·Î¿î ·çÆ®¸¦ ±× ÀÚ¸®¿¡
À§Ä¡½ÃŲ´Ù. ÀÌÀüÀÇ ·çÆ®¸¦ À§ÇÑ µð·ºÅ丮´Â pivot_root ¸¦ È£ÃâÇϱâ Àü¿¡
Á¸ÀçÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é:

<p>
# cd /new-root
<p>
# mkdir initrd
<p>
# pivot_root . initrd

<p>
ÀÌÁ¦ linuxrc ÇÁ·Î¼¼½º´Â ¿©ÀüÈ÷ ÀÌÀüÀÇ ·çÆ®¸¦ Á¢±ÙÇÒ Áöµµ ¸ð¸£´Âµ¥,
ÀÌ °æ·Î´Â ½ÇÇà ÆÄÀÏ, °øÀ¯ ¶óÀ̺귯¸®, Ç¥ÁØ ÀÔ·Â/Ãâ·Â/¿¡·¯, ±×¸®°í
±×°ÍÀÇ ÇöÀç ·çÆ® µð·ºÅ丮ÀÌ´Ù. 
ÀÌ·¯ÇÑ ¸ðµç ÂüÁ¶´Â ´ÙÀ½ÀÇ ¸í·ÉÀ» ÀÌ¿ëÇØ Á¦°ÅµÈ´Ù.

<p>
# exec chroot . what-follows <dev/console >dev/console 2>&1

<p>
what-follow ´Â »õ·Î¿î ·çÆ® ¾Æ·¡¿¡ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¿¹¸¦ µé¸é /sbin/init
¸¸¾à »õ·Î¿î ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÌ devfs ¿Í ÇÔ²² ÀÌ¿ëµÉ °ÍÀ̰í À¯È¿ÇÑ
/dev µð·ºÅ丮¸¦ °®°í ÀÖÁö ¾Ê´Ù¸é, devfs ´Â /dev/console À» Á¦°øÇϱâ À§ÇØ
chroot °¡ ºÒ·ÁÁö±â Àü¿¡ ¸¶¿îÆ® µÇ¾î¾ß ÇÑ´Ù.

<p>
ÁÖÀÇ: pivot_root ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ±¸Çö ³»¿ëÀº ½Ã°£¿¡ µû¶ó ¹Ù²ð¼ö ÀÖ´Ù.
ȣȯ¼ºÀ» È®½ÇÇÏ°Ô Çϱâ À§ÇØ, ´ÙÀ½ÀÇ ¿ä¼ÒµéÀÌ °üÂûµÇ¾î¾ß ÇÑ´Ù.

<itemize>
<item>pivot_root ¸¦ È£ÃâÇϱâ Àü¿¡, È£ÃâÇÏ´Â ÇÁ·Î¼¼½ºÀÇ ÇöÀç µð·ºÅ丮°¡
   »õ·Î¿î ·çÆ® µð·ºÅ丮¸¦ °¡¸®ÄÑ¾ß ÇÑ´Ù
<item>ù° ÀÎÀÚ·Î . À» »ç¿ëÇϰí, ÀÌÀüÀÇ ·çÆ®¸¦ À§ÇÑ _»ó´ëÀûÀÎ_ °æ·Î¸¦
   µÎ¹øÂ° ÀÎÀÚ·Î »ç¿ëÇÑ´Ù
<item>chroot ÇÁ·Î±×·¥Àº ÀÌÀü°ú »õ·Î¿î ·çÆ®¿¡¼­ »ç¿ë °¡´ÉÇØ¾ß ÇÑ´Ù
<item>°á±¹ »õ·Î¿î ·çÆ®·Î chroot ÇÑ´Ù
<item>exec ¸í·É¿¡¼­ dev/consoleÀ» À§ÇØ »ó´ëÀû °æ·Î¸¦ »ç¿ëÇÑ´Ù
</itemize>

<p>
ÀÌÁ¦, initrd ´Â ¾ð¸¶¿îÆ®µÇ¾î RAM µð½ºÅ©¿¡ ÇÒ´çµÈ ¸Þ¸ð¸®°¡ ÇØÁ¦µÉ ¼ö
ÀÖ´Ù.

<p>
# umount /initrd
<p>
# blockdev --flushbufs /dev/ram0    # devfs ¸¦ »ç¿ëÇÒ °æ¿ì 

<p>
NFS ¸¶¿îÆ®µÈ ·çÆ®¿¡ initrd ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖÀ¸¸ç, ÀÚ¼¼ÇÑ »çÇ×Àº
pivot_root(8) ¸Ç ÆäÀÌÁö¸¦ ÂüÁ¶Ç϶ó.

<p>
ÁÖÀÇ: ¸¸¾à linuxrc ³ª ±×·ÎºÎÅÍ exec µÇ´Â ¾î¶² ÇÁ·Î±×·¥À̵çÁö ¾î¶²
ÀÌÀ¯¿¡¼­ Á¾·áµÇ¸é, ±¸½ÄÀÇ change_root ¸ÞÄ¿´ÏÁòÀÌ ºÒ·ÁÁø´Ù("±¸½Ä
±¸Æ® º¯°æ ¸ÞÄ¿´ÏÁò" Ç׸ñÀ» ÂüÁ¶).


<sect>»ç¿ë ½Ã³ª¸®¿À

<p>
initrd ±¸Çö¿¡ ´ëÇÑ ÁÖ¿ä µ¿±â´Â ½Ã½ºÅÛ ¼³Ä¡½Ã¿¡ ¸ðµâ½ÄÀÇ Ä¿³Î ¼³Á¤À»
°¡´ÉÇÏ°Ô Çϱâ À§Çؼ­¿´´Ù. ±× °úÁ¤Àº ´ÙÀ½°ú °°ÀÌ µ¿ÀÛÇÑ´Ù.

<enum>
<item>½Ã½ºÅÛÀº Ç÷ÎÇdzª ´Ù¸¥ ¸Åü¿¡¼­ ÃÖ¼ÒÈ­µÈ Ä¿³Î·Î ºÎÆÃÇÑ´Ù(¿¹,
     RAM µð½ºÅ©, initrd, a.out, Ext2 FS Áö¿ø) ±×¸®°í initrd ¸¦
     ·ÎµåÇÑ´Ù
<item>/linurc ´Â (1) "ÁøÂ¥" ·çÆ® FS (Áï, µð¹ÙÀ̽º Á¾·ù, µð¹ÙÀ̽º µå¶óÀ̹ö,
     ÆÄÀÏ ½Ã½ºÅÛ) ¸¦ ¸¶¿îÆ® Çϴµ¥, (2) ¹èÆ÷ ¸Åü(Áï, CD-ROM, ³×Æ®¿÷,
     Å×ÀÙ µî) ¿¡ ÇÊ¿äÇÑ °ÍÀÌ ¹«¾ùÀÎÁö °áÁ¤ÇÑ´Ù. À̰ÍÀº »ç¿ëÀÚ¿¡°Ô ¹¯°Å³ª,
     ÀÚµ¿À¸·Î Á¶»çÇϰųª, µÑÀ» ÇÕÄ£ ¹æ¹ý¿¡ ÀÇÇØ ¼öÇàµÈ´Ù.
<item>linuxrc ´Â ÇÊ¿äÇÑ Ä¿³Î ¸ðµâÀ» ·ÎµåÇÑ´Ù
<item>linuxrc ´Â ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» »ý¼ºÇϰí Á¤Âø½ÃŲ´Ù (À̰ÍÀº
     ¾ÆÁ÷±îÁö´Â ÃÖÀûÀÇ »ç¿ëÇÒ¸¸ÇÑ ½Ã½ºÅÛÀÏ ÇÊ¿ä´Â ¾ø´Ù)
<item>linuxrc ´Â pivot_root ¸¦ È£ÃâÇÏ¿© ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¹Ù²Ù°í
     chroot ¸¦ ÀÌ¿ëÇØ ¼³Ä¡¸¦ °è¼ÓÇÒ ÇÁ·Î±×·¥À» exec ÇÑ´Ù
<item>ºÎÆ® ·Î´õ°¡ ¼³Ä¡µÈ´Ù
<item>ºÎÆ® ·Î´õ´Â ½Ã½ºÅÛÀ» °¡µ¿Çϱâ À§ÇØ »ç¿ëµÈ ¸ðµâÀÇ ÁýÇÕÀ» °¡Áø
     initrd ¸¦ ·ÎµåÇϵµ·Ï ¼³Á¤µÈ´Ù(¿¹, /initrd ´Â ¼öÁ¤µÇ°í, ³ªÁß¿£
     ¾ð¸¶¿îÆ®µÇ°í, ¸¶Áö¸·À¸·Î À̹ÌÁö´Â /dev/ram0 ³ª /dev/rd/0 ¿¡¼­
     ÆÄÀÏ·Î ¾²¿©Áú ¼ö ÀÖ´Ù)
<item>ÀÌÁ¦ ½Ã½ºÅÛÀº ºÎÆ® °¡´ÉÇϰí Ãß°¡ÀûÀÎ ¼³Ä¡ ÀÛ¾÷ÀÌ ¼öÇàµÈ´Ù
</enum>

<p>
¿©±â¼­ initrd ÀÇ ÁÖ ¿ªÇÒÀº (¾µµ¥¾øÀÌ) ºÎÇ®·ÁÁø "¹ü¿ë" Ä¿³ÎÀ» »ç¿ëÇÏÁö
¾Ê°í Ä¿³ÎÀ» ´Ù½Ã ÄÄÆÄÀÏÇϰųª ¸µÅ©ÇÏÁö ¾Ê°íµµ º¸ÅëÀÇ ½Ã½ºÅÛ ÀÛ¾÷ µ¿¾È
¼³Á¤ ÀڷḦ Àç»ç¿ëÇϱâ À§ÇÔÀÌ´Ù.

<p>
µÎ¹øÂ° ½Ã³ª¸®¿À´Â ´ÜÀÏ °ü¸®ÀûÀÎ ¹üÀ§¾È¿¡ ÀÖ´Â ¼­·Î ´Ù¸¥ Çϵå¿þ¾î ¼³Á¤À» °¡Áø
½Ã½ºÅÛ¿¡ ¸®´ª½º¸¦ µ¹¸®´Â °æ¿ìÀÇ ¼³Ä¡ÀÌ´Ù. ±×·¯ÇÑ °æ¿ì¿¡, Ä¿³ÎÀÇ ÃÖ¼Ò
ÁýÇÕ (ÀÌ»óÀûÀ¸·Î´Â ¿ÀÁ÷ Çϳª) ¸¸À» ¸¸µé°í ¼³Á¤ Á¤º¸ÀÇ ½Ã½ºÅÛ Æ¯Á¤ ºÎºÐÀº
°¡´ÉÇÑ ÀÛ°Ô À¯ÁöÇÏ´Â °ÍÀÌ ÀÌ»óÀûÀÌ´Ù. ÀÌ °æ¿ì, °øÅëÀÇ initrd ¸ðµâÀÌ
¸ðµç ÇÊ¿äÇÑ ¸ðµâÀ» °¡Áö°í »ý¼ºµÉ ¼ö ÀÖ´Ù. ±×ÈÄ, ¿ÀÁ÷ ±×°Í¿¡ ÀÇÇØ ÀÐÇôÁö´Â
/linuxrc ³ª ÆÄÀϸ¸ÀÌ ´Ù¸£°Ô µÉ °ÍÀÌ´Ù.

<p>
¼¼¹øÂ° ½Ã³ª¸®¿À´Â º¸´Ù Æí¸®ÇÑ º¹±¸ µð½ºÅ©ÀÌ´Ù. ¿Ö³ÄÇÏ¸é ºÎÆÃ½Ã¿¡ ·çÆ®
FS ÆÄƼ¼ÇÀÇ À§Ä¡°°Àº Á¤º¸µéÀÌ Á¦°øµÉ Çʿ䰡 ¾ø±â ¶§¹®ÀÌ´Ù. ±×·¯³ª initrd
¿¡¼­ ·ÎµåµÈ ½Ã½ºÅÛÀº »ç¿ëÀÚ Ä£È­ÀûÀÎ ´ëȭâÀ» ÅëÇØ ¸î¸îÀÇ Á¤È®µµ °Ë»ç¸¦
¼öÇàÇÒ ¼ö ÀÖ´Ù(ȤÀº ÀÚµ¿ ŽÁöÀÇ ¾î¶² ÇüÅ·μ­µµ)

<p>
¸¶Áö¸·À¸·Î, CD-ROM ¹èÆ÷ÀÚµéÀº º¸´Ù ³ªÀº CD ¿¡¼­ÀÇ ¼³Ä¡¸¦ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±× ¿¹·Î ºÎÆ® Ç÷ÎÇǸ¦ »ç¿ëÇÏ°í º¸´Ù Å« RAM µð½ºÅ©¸¦ CD·ÎºÎÅÍ initrd¸¦ ÅëÇØ ºÎÆ®½ºÆ®·¡ÇÎ Çϰųª, LOADLIN °°Àº ·Î´õ¸¦ ÅëÇØ¼­³ª Á÷Á¢ CD-ROM ¿¡¼­ ºÎÆÃÇϰí, Ç÷ÎÇǰ¡ ÇÊ¿ä ¾øÀÌ CD ¿¡¼­ RAM µð½ºÅ©¸¦ ÀоîµéÀÌ´Â °ÍÀÌ´Ù.


<sect>±¸½Ä ·çÆ® º¯°æ ¸ÞÄ¿´ÏÁò

<p>
´ÙÀ½ÀÇ ¸ÞÄ¿´ÏÁòÀº pivot_root °¡ µµÀԵDZâ Àü¿¡ »ç¿ëµÇ¾ú´Ù.
ÇöÀçÀÇ Ä¿³ÎÀº ¿©ÀüÈ÷ ±×°ÍÀ» Áö¿øÇÏÁö¸¸ ±×°ÍÀÇ Áö¼ÓÀûÀÎ »ç¿ë°¡´É¼º¿¡ ´ëÇØ¼­
ÀÇÁ¸Çؼ­´Â _¾È_µÈ´Ù.

<p>
±×°ÍÀº "ÁøÂ¥" ·çÆ® ÀåÄ¡ (Áï, Ä¿³Î À̹ÌÁö ¾È¿¡ rdev ·Î ¼³Á¤µÇ°Å³ª ºÎÆ®
¸í·ÉÇà¿¡¼­ root=... ·Î ¼³Á¤µÈ °Í) ¸¦ linuxrc °¡ Á¾·áÇÒ¶§ ·çÆ® ÆÄÀÏ
½Ã½ºÅÛÀ¸·Î ¸¶¿îÆ®ÇÔÀ¸·Î¼­ µ¿ÀÛÇÑ´Ù. initrd ÆÄÀÏ ½Ã½ºÅÛÀº ±×¸®°í ³ª¼­,
¾ð¸¶¿îÆ®µÇ´ø°¡, ¿©ÀüÈ÷ »ç¿ëÁßÀ̶ó¸é »õ·Î¿î ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ¿¡ /initrd
°°Àº µð·ºÅ丮°¡ Á¸ÀçÇÒ °æ¿ì ¿©±â·Î ¿Å°ÜÁø´Ù.

<p>
ÀÌ ¸ÞÄ¿´ÏÁòÀº »ç¿ëÇϱâ À§ÇØ, ºÎÆ® ¸í·É ¿É¼ÇÀÎ root, init, rw ¸¦ ÁöÁ¤ÇÒ
ÇÊ¿ä´Â ¾ø´Ù. (¸¸¾à ÁöÁ¤µÇ¾ú´Ù¸é, initrd ȯ°æÀÌ ¾Æ´Ñ ½ÇÁ¦ ·çÆ® ÆÄÀÏ
½Ã½ºÅÛ¿¡ ¿µÇâÀ» ¹ÌÄ¥ °ÍÀÌ´Ù.)

<p>  
¸¸¾à /proc °¡ ¸¶¿îÆ®µÈ´Ù¸é, "ÁøÂ¥" ·çÆ® ÀåÄ¡´Â linuxrc ¾È¿¡¼­ »õ·Î¿î
·çÆ® FS ÀåÄ¡ÀÇ ¹øÈ£¸¦ Ư¼ö ÆÄÀÏÀÎ /proc/sys/kernel/real-root-dev¿¡
±â·ÏÇÔÀ¸·Î½á ¹Ù²ð ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é

<p>
  # echo 0x301 >/proc/sys/kernel/real-root-dev

<p>
ÀÌ ¸ÞÄ¿´ÏÁòÀº NFS ¿Í ÀÌ¿Í À¯»çÇÑ ÆÄÀÏ ½Ã½ºÅÛ°ú ȣȯµÇÁö ¾ÊÀ½¿¡ ÁÖÀÇÇ϶ó.

<p>
ÀÌ ±¸½ÄÀÇ ºñ³­¹Þ´Â ¸ÞÄ¿´ÏÁòÀº º¸Åë "change_root" ¶ó°í ºÒ¸®´Â ¹Ý¸é,
 »õ·Ó°í ÁöÁö¹Þ´Â ¸ÞÄ¿´ÏÁòÀº "pivot_root" ¶ó°í ºÒ¸°´Ù.


<sect>Âü°íÀÚ·á

<p>
[1] <url url="ftp://icaftp.epfl.ch/pub/people/almesber/booting/bootinglinux-current.ps.g" name="Almesberger, Werner; "Booting Linux: The History and the Future"">

<p>
[2] <url url="ftp://icaftp.epfl.ch/pub/people/almesber/misc/newlib-linux/" name="newlib package (experimental), with initrd example">
    
<p>
[3] <url url="ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/" name="Brouwer, Andries; "util-linux: Miscellaneous utilities for Linux"">

</article>


ID
Password
Join
Your mode of life will be changed for the better because of new developments.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-12-23 09:12:24
Processing time 0.0223 sec