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启动哦·

相关文章
相关标签/搜索