· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
UsingBOOTP

BOOTP¸¦ ÀÌ¿ëÇÑ ¿ø°ÝºÎÆÃ

  • ÀÛ¼ºÀÚ
    Á¶ÀçÇõ(Mminzkn@minzkn.com)

  • °íÄ£°úÁ¤
    2010³â 8¿ù 10ÀÏ : óÀ½¾¸

½ÃÀÛÇϱâÀü¿¡

ÇÊÀÚ´Â ¼­¹ö¿Í ³ÝºÏÀ» ÀÌ¿ëÇϴµ¥ ³ÝºÏ¿¡´Â ODDÀåÄ¡°¡ ¾ø½À´Ï´Ù. ÀÌ °æ¿ì ³ÝºÏ¿¡ OSÇѹø ¼³Ä¡ÇÏ·Á¸é ¸Å¿ì º¹ÀâÇØÁý´Ï´Ù. ¼­¹ö´Â ÀÖÀ¸´Ï ¼­¹ö·ÎºÎÅÍ ¿ø°Ý ºÎÆÃÀ» ÇÒ¼ö ÀÖÀ¸¸é ÁÁ°Ú´Ù´Â »ý°¢À» ¸¹ÀÌ Çß¾ú´Âµ¥ ±× ÇØ´äÀÌ ÀÖ¾ú½À´Ï´Ù. ¹Ù·Î BOOTP°¡ µÇ°Ú½À´Ï´Ù. ÀÌÁ¦ PXE¸¦ Áö¿øÇÏ´Â BIOS¸¦ °¡Áø ÄÄÇ»ÅÍ´Â ¸ðµÎ ¿ø°ÝºÎÆÃÇÒ¼ö ÀÖ°Ô È¯°æÀ» ±¸ÃàÇغ¸·Á°í ÇÕ´Ï´Ù.

Kernel ¼³Á¤


Gentoo Linuxȯ°æ¿¡¼­ Gentoo LiveCD¸¦ ÀÌ¿ëÇÑ ¿ø°Ý ºÎÆñ¸Ãà

¼³¸íÀÇ ÆíÀǸ¦ À§Çؼ­ ´ÙÀ½°ú °°Àº ȯ°æº¯¼ö¸¦ »ç¿ëÇÏ°Ú½À´Ï´Ù.
export PATH_LIVECD="/mnt/cdrom"
export PATH_TEMP="/tftpboot/tmp"
export PATH_TFTPROOT="/tftpboot"
  1. ÀÛ¾÷¿¡ ÇÊ¿äÇÑ (ÀÓ½Ã)µð·ºÅ丮µéÀ» ¸¸µì´Ï´Ù.
    mkdir -p ${PATH_LIVECD}
    mkdir -p ${PATH_TEMP}
    mkdir -p ${PATH_TEMP}/gentoo.init.dir
    mkdir -p ${PATH_TFTPROOT}
    mkdir -p ${PATH_TFTPROOT}/netboot
    mkdir -p ${PATH_TFTPROOT}/netboot/pxelinux.cfg
    mkdir -p ${PATH_TFTPROOT}/netboot/gentoo
    
  2. DHCP server¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
    emerge net-misc/dhcp
    
    option domain-name "example.com";
    option domain-name-servers 168.126.63.1, 168.126.63.2, 210.94.0.7, 164.124.101.2, 203.248.252.2, 210.181.1.24, 203.255.112.34;
    
    default-lease-time 600;
    max-lease-time 7200;
    
    # <<< ÀÌ ºÎºÐ Ãß°¡ >>>
    allow booting;
    allow bootp;
    
    ddns-update-style none;
    log-facility local7;
    
    subnet 10.0.0.0 netmask 255.0.0.0 {
        option broadcast-address 10.255.255.255;
        option routers 10.0.0.1;
    
    #   <<< Booting ¿¡ ÀÌ¿ëÇÒ pxelinux.0ÀÇ À§Ä¡ ¹× TFTP server IPÁÖ¼Ò ¼³Á¤ >>>
        filename "netboot/pxelinux.0";
        next-server 10.0.0.1;
    
        pool {
            range 10.0.0.100 10.0.0.200;
            allow unknown-clients;
          }
    
    #    group {
    #        host bootp_client {
    #            hardware ethernet XX:XX:XX:XX:XX:XX;
    #            fixed-address 10.0.0.200;
    #        }
    #    }
    }
    
  3. TFTP server¸¦ ¼³Ä¡ÇÕ´Ï´Ù. À̶§ ÁÖÀÇÇÒ°ÍÀÌ netkit-tftp package´Â Á¦´ë·Î Áö¿øÇÏÁö ¸øÇϹǷΠtftp-hpa package¸¦ ¼³Ä¡ÇÏ¼Å¾ß ÇÕ´Ï´Ù. ±×¸®°í ¹æÈ­º®ÀÌ ÀÖ´Â °æ¿ì "/etc/conf.d/in.tftpd"¿¡¼­ ÀûÀýÇÑ port´ë¿ªÀ» ¼³Á¤ÇØÁÖ°í ¹æÈ­º®¿¡¼­ ÇØ´ç port´ë¿ªÀ» udp¿¡ ´ëÇÏ¿© Çã¿ëÇϵµ·Ï ÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù.
    emerge net-ftp/tftp-hpa
    
  4. syslinux package¸¦ ¼³Ä¡ÇÏ°í ÇÊ¿äÇÑ ÆÄÀϵ鸸 "${PATH_TFTPROOT}/netboot" ÇÏÀ§¿¡ º¹»çÇÕ´Ï´Ù.
    emerge sys-boot/syslinux
    cp /usr/share/syslinux/pxelinux.0 ${PATH_TFTPROOT}/netboot
    cp /usr/share/syslinux/memdisk ${PATH_TFTPROOT}/netboot
    
  5. Gentoo minimal install CD image¸¦ ´Ù¿î·Îµå ¹Þ½À´Ï´Ù.
  6. ´Ù¿î·Îµå ¹ÞÀº Gentoo minimal install CD image¸¦ "${PATH_LIVECD}"¿¡ mount ÇÕ´Ï´Ù.
    mount -o loop install-XX-minimal-XXXXXXXX.iso ${PATH_LIVECD}
    
  7. "${PATH_LIVECD}/isolinux/gentoo" Ä¿³ÎÆÄÀÏÀ» "${PATH_TFTPROOT}/netboot/gentoo"¿¡ º¹»çÇÕ´Ï´Ù.
    cp ${PATH_LIVECD}/isolinux/gentoo ${PATH_TFTPROOT}/netboot/gentoo
    
  8. gentoo.igz ÆÄÀÏÀ» Àӽõð·ºÅ丮 "${PATH_TEMP}/gentoo.init.dir"¿¡ ¾ÐÃàÇØÁ¦ÇÕ´Ï´Ù.
    cd ${PATH_TEMP}/gentoo.init.dir
    gunzip -c ${PATH_LIVECD}/isolinux/gentoo.igz | cpio -idv
    
  9. "${PATH_TEMP}/gentoo.init.dir/mnt/cdrom"µð·ºÅ丮¸¦ ¸¸µé°í ±× ¹Ø¿¡ "image.squashfs"ÆÄÀÏÀ» º¹»çÇÕ´Ï´Ù.
    mkdir -p ${PATH_TEMP}/gentoo.init.dir/mnt/cdrom
    cp ${PATH_LIVECD}/isolinux/image.squashfs ${PATH_TEMP}/gentoo.init.dir/mnt/cdrom
    
  10. "${PATH_TEMP}/gentoo.init.dir/init" ÆÄÀÏÀ» "${PATH_TEMP}/gentoo.init.dir/init.org"·Î ¹é¾÷ÇÕ´Ï´Ù.
    cp ${PATH_TEMP}/gentoo.init.dir/init ${PATH_TEMP}/gentoo.init.dir/init.org
    
  11. "${PATH_TEMP}/gentoo.init.dir/init" ÆÄÀÏ¿¡¼­ ´ÙÀ½ºÎºÐÀ» ã¾Æ¼­ ¼öÁ¤ÇÕ´Ï´Ù.
    -- if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ]
    ++ if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] && [ "${REAL_ROOT}" != "/" ]
    
    -- elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ]
    ++ elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ] || [ "${REAL_ROOT}" = "/" ]
    
    -- cache_cd_contents
    
    -- mount -t squashfs -o loop,ro ${NEW_ROOT}/mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd
    ++ mount -t squashfs -o loop,ro /mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd
    
  12. "${PATH_TEMP}/gentoo.init.dir"À» ´Ù½Ã ¾ÐÃàÇÏ°í "${PATH_TFTPROOT}/netboot/gentoo"·Î º¹»çÇÕ´Ï´Ù.
    cd ${PATH_TEMP}/gentoo.init.dir
    find . -print | cpio -o -H newc |gzip -9 -c - > ${PATH_TFTPROOT}/netboot/gentoo/initrd.gz
    
  13. "${TFTPROOT}/netboot/pxelinux.cfg/default"À¸·Î ´ÙÀ½ÀÇ ³»¿ëÀ» ÆíÁýÇÏ¿© ¸¸µì´Ï´Ù.
    default gentoo_x86
    prompt 1
    timeout 600
    
    label gentoo_x86
      kernel gentoo/gentoo
      append initrd=gentoo/initrd.gz ip=dhcp root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/ vga=normal dokeymap
    label local
      LOCALBOOT 0
    

ID
Password
Join
Stop searching forever. Happiness is unattainable.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2012-01-26 11:16:46
Processing time 0.0043 sec