Gentoo PXE 環境搭建

PXE(域執行環境)簡介php

PXE(preboot execute environment)是由Intel公司開發的最新技術,工做於Client/Server的網絡模式,支持工做站經過網絡從遠端服務器下載映像,並由此支持來自網絡的操做系統的啓動過程,其啓動過程當中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中並執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操做系統。PXE能夠引導多種操做系統,如:Windows95/98/2000,linux等。linux

  機房操做不可能去,一個一個安裝服務器,可是服務器如何快速的安裝系統出了腳本,必不可少的就是PXE,以上的簡介不難看出咱們所須要的都有些什麼軟件包。sql

 若是要安裝Gentoo系統首先要掛在Gentoo鏡像文件,如下幾個是咱們所須要的,固然咱們還要簡單的進行操做。bootstrap

  
  
  
  
  1. isolinux/gentoo 
  2. isolinux/gentoo.igz 
  3. p_w_picpath.squashfs 

 

 

軟件包:dhcp tftp syslinuxvim

系統:Linux 3.1.6-gentoo服務器

環境:Vmware8網絡

                     安裝配置DHCPapp

  
  
  
  
  1. #emerge dhcp 
  2. #vim /etc/dhcp/dhcpd.conf 
  3.    #配置文件內容以下 
  4. subnet 192.168.1.0 netmask 255.255.255.0 { 
  5.    range 192.168.1.100 192.168.1.254; 
  6.    filename "pxelinux.0";  
  7.    next-server 192.168.1.101; 
  8.  

 

                    安裝配置tftpide

 

  
  
  
  
  1. #emerge tftp-hpa 
  2. #vim /etc/conf.d/in.tftpd  
  3. #配置文件內容以下,去掉NTFTPD_PATH="/tftproot/"的註釋 
  4. ------------------------------------------------------ 
  5. INTFTPD_PATH="/tftproot/" 
  6. INTFTPD_OPTS="-R 4096:32767 -s ${INTFTPD_PATH}" 

                    製做gentoo啓動文件oop

 1.掛在光盤&&拷貝啓動文件

  
  
  
  
  1. #若是是光盤,先掛在光驅設備 
  2. # dmesg | grep hd  查看光盤設備名稱 
  3. hdc: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive 
  4. hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4 
  5. hdc: UDMA/33 mode selected 
  6. ide-cd: hdc: ATAPI 1X DVD-ROM DVD-R/RAM CD-R/RW drive, 32kB Cache 
  7. #mkdir /mnt/cdrom 
  8. #mount /dev/hdc /mnt/cdrom 
  9. #mkir /tftproot 
  10. #cp /mnt/cdrom/isolinux/gentoo /tftproot 
  11. #cd /mnt 
  12. #mkdir tmpdir 
  13. #cd tmpdir 
  14. #cp /mnt/cdrom/isolinux/gentoo.igz ./ 
  15. #cp /mnt/cdrom/p_w_picpath.squashfs ./ 
  16. #mkdir gentoo.dir 
  17. #cd gentoo.dir 
  18. #zcat ../gentoo.igz |cpio -idv 
  19. #mkdir mnt 
  20. #mkdir mnt/cdrom 
  21. #cp ../p_w_picpath.squashfs mnt/cdrom 

 2.編輯init文件

  
  
  
  
  1. --- init        2008-03-22 01:10:58.000000000 -0600 
  2. +++ init        2008-03-22 01:14:27.000000000 -0600 
  3. @@ -283,11 +283,6 @@ 
  4.                 [ ! -e ${NEW_ROOT}/dev/tty1 ] && mknod ${NEW_ROOT}/dev/tty1 c 4 1 
  5.         fi     
  6.  
  7. -       if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ] 
  8. -       then 
  9. -               bootstrapCD 
  10. -       fi 
  11.         if [ "${REAL_ROOT}" = '' ] 
  12.         then 
  13.                 echo -n -e "${WARN}>>${NORMAL}${BOLD} No bootable medium found. Waiting for new devices" 
  14. @@ -387,7 +382,7 @@ 
  15.                 else 
  16.                         bad_msg "Block device ${REAL_ROOT} is not a valid root device..." 
  17.                         REAL_ROOT="" 
  18. -                http://2828602.blog.51cto.com/addblog.php       got_good_root=0 
  19. +                       got_good_root=1 
  20.                 fi 
  21.         done     
  22.  
  23. @@ -489,7 +484,6 @@ 
  24.                 fi 
  25.         fi     
  26.  
  27. -       cache_cd_contents 
  28.         # Setup the loopback mounts     
  29.  
  30.         if [ "${LOOPTYPE}" = 'normal' ] 
  31. @@ -503,7 +497,7 @@ 
  32.         elif [ "${LOOPTYPE}" = 'squashfs' ] 
  33.         then 
  34.                 good_msg 'Mounting squashfs filesystem' 
  35. -               mount -t squashfs -o loop,ro ${NEW_ROOT}/mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd 
  36. +               mount -t squashfs -o loop,ro /mnt/cdrom/${LOOPEXT}${LOOP} ${NEW_ROOT}/mnt/livecd     
  37.  
  38.                 test_success 'Mount filesystem' 
  39.                 FS_LOCATION='mnt/livecd' 

  3.從新打包gentoo.igz

 

  
  
  
  
  1. cd /mnt/tmpdir/gentoo.dir 
  2. find . -print |cpio -H newc -o --quiet > ../gentoo.igz 
  3. cd .. 
  4. cp gentoo.igz /tftproot
    cp /usr/share/syslinux/pxelinux.0 /tftproot
    cd /tftproot
  5. mkdir pxelinux.cfg
    cd pxelinux.cfg

 4,手動編輯

   

  
  
  
  
  1. cd /tftproot/pxelinux.cfg 
  2. vim default 
  3. -------------------------------------------------
  4. +kernel gentoo 
  5. +append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc loop=/p_w_picpath.squashfs looptype=squashfs cdroot=1 real_root=/ 

5,啓動服務 

 

  
  
  
  
  1. /etc/init.d/dhcpd start 
  2. /etc/init.d/in.tftpd start 

6,添加啓動級別

 

  
  
  
  
  1. #rc-update add dhcpd default 
  2. #rc-update add in.tftpd default 

啓動服務,以後pxe就能夠啓動新的服務器了~網卡要設置pxe啓動哦·

相關文章
相關標籤/搜索