´ÙÀ½ ÀÌÀü Â÷·Ê

4. ¼³Ä¡

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

# mkdir /initrd

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

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

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

# mknod /dev/initrd b 1 250

# chmod 400 /dev/initrd

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

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

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

  1. ·çÇÁ¹é ºí·° ÀåÄ¡°¡ Ä¿³Î ¾È¿¡ ¼³Á¤µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù.

  2. ÀûÀýÇÑ Å©±âÀÇ ºó ÆÄÀÏ ½Ã½ºÅÛÀ» »ý¼ºÇÑ´Ù. ¿¹¸¦ µé¸é,

    # dd if=/dev/zero of=initrd bs=300k count=1

    # mke2fs -F -m0 initrd

    (¸¸¾à °ø°£ÀÌ Áß¿äÇÏ´Ù¸é, Ext2 ´ë½Å¿¡ Minix FS ¸¦ »ç¿ëÇÒ¼öµµ ÀÖ´Ù.)

  3. ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ®ÇÑ´Ù. ¿¹¸¦ µé¸é,

    # mount -t ext2 -o loop initrd /mnt

  4. ÄÜ¼Ö ÀåÄ¡¸¦ »ý¼ºÇÑ´Ù(devfs¸¦ »ç¿ëÇÑ´Ù¸é ²À ÇÊ¿äÇÏÁö´Â ¾ÊÀ¸³ª, ¾î·µç ¹®Á¦ ¸¦ ¹®Á¦¸¦ ÀÏÀ¸Å°Áö´Â ¾Ê´Â´Ù) :

    # mkdir /mnt/dev

    # mknod /mnt/dev/console c 5 1

  5. initdrd ȯ°æÀ» ÀûÀýÇÏ°Ô »ç¿ëÇϱâ À§ÇØ ÇÊ¿äÇÑÆÄÀϵéÀ» º¹»çÇÑ´Ù. °¡Àå Áß¿äÇÑ ÆÄÀÏÀÎ /linuxrc ¸¦ ÀØÁö ¸»¶ó. /linuxrc ÀÇ Æ۹̼ÇÀº x (½ÇÇà) À» Æ÷ÇÔÇØ¾ß ÇÔ¿¡ ÁÖÀÇÇ϶ó.

  6. initrd ȯ°æÀÌ ÇÒ ¼ö ÀÖ´Â Á¤È®ÇÑ ÀÛµ¿Àº ¸®ºÎÆà ÇÏÁö ¾Ê°íµµ ´ÙÀ½ÀÇ ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ÀÚÁÖ Å×½ºÆ® ÇÒ ¼ö ÀÖ´Ù.

    # chroot /mnt /linuxrc

    ¹°·Ð ÀÌ°ÍÀº ÀϹÝÀûÀÎ ½Ã½ºÅÛ »óŸ¦ ¹æÇØÇÏÁö ¾Ê´Â initrd¿¡¸¸ ÇÑÁ¤µÈ´Ù (¿¹, ³×Æ®¿÷ ÀÎÅÍÆäÀ̽º¸¦ Àç¼³Á¤, ¸¶¿îÆ®µÈ µð¹ÙÀ̽º¿¡ µ¤¾î¾²±â, ÀÌ¹Ì ½ÇÇàÁßÀÎ µ¥¸óÀ» ´Ù½Ã ¶ç¿ì±â µî¿¡ ÀÇÇؼ­. ±×·¯³ª ±×·¯ÇÑ chroot µÈ initrd ȯ°æ¿¡¼­µµ pivot_root ¸¦ »ç¿ëÇÏ´Ù´Â °Í¿¡ ÁÖ¸ñÇ϶ó.)

  7. ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ð¸¶¿îÆ®ÇÑ´Ù.

    # umount /mnt

  8. ÀÌÁ¦ initrd ´Â ÆÄÀÏ "initrd" ¾È¿¡ ÀÖ´Ù. ÇÊ¿äÇÏ´Ù¸é ¾ÐÃàÇÒ¼öµµ ÀÖ´Ù.

    # gzip -9 initrd

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

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

    ¸¸¾à devfs ¸¦ »ç¿ëÇÑ´Ù¸é,

    root=/dev/ram0 init=/linuxrc rw

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

    root=/dev/rd/0 init=/linuxrc rw

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

    LOADLIN < kernel > initrd= <disk_image>

    ¿¹) LOADLIN C:\LINUX\BZIMAGE initrd=C:\LINUX\INITRD.GZ root=/dev/ram0

    init=/linuxrc rw

    LILO ÀÇ °æ¿ì, /etc/lilo.conf ¾È¿¡ Àüü ¼½¼Ç À̳ª ȤÀº ÇØ´çÇÏ´Â ¼½¼Ç¿¡ INITRD=<path> ¿É¼ÇÀ» Ãß°¡ÇÑ´Ù. ±×¸®°í APPEND ¸¦ ÀÌ¿ëÇÏ¿© ¿É¼ÇÀ» ³Ñ°ÜÁØ´Ù. ¿¹¸¦ µé¸é,

    image = /bzImage

    initrd = /boot/initrd.gz

    append = "root=/dev/ram0 init=/linuxrc rw"

    ±×¸®°í /sbin/lilo ¸¦ ½ÇÇà½ÃŲ´Ù.

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

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


´ÙÀ½ ÀÌÀü Â÷·Ê