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
- isolinux/gentoo
- isolinux/gentoo.igz
- p_w_picpath.squashfs
軟件包:dhcp tftp syslinuxvim
系統:Linux 3.1.6-gentoo服務器
環境:Vmware8網絡
安裝配置DHCPapp
- #emerge dhcp
- #vim /etc/dhcp/dhcpd.conf
- #配置文件內容以下
- subnet 192.168.1.0 netmask 255.255.255.0 {
- range 192.168.1.100 192.168.1.254;
- filename "pxelinux.0";
- next-server 192.168.1.101;
- }
安裝配置tftpide
- #emerge tftp-hpa
- #vim /etc/conf.d/in.tftpd
- #配置文件內容以下,去掉NTFTPD_PATH="/tftproot/"的註釋
- ------------------------------------------------------
- INTFTPD_PATH="/tftproot/"
- INTFTPD_OPTS="-R 4096:32767 -s ${INTFTPD_PATH}"
製做gentoo啓動文件oop
1.掛在光盤&&拷貝啓動文件
- #若是是光盤,先掛在光驅設備
- # dmesg | grep hd 查看光盤設備名稱
- hdc: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
- hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
- hdc: UDMA/33 mode selected
- ide-cd: hdc: ATAPI 1X DVD-ROM DVD-R/RAM CD-R/RW drive, 32kB Cache
- #mkdir /mnt/cdrom
- #mount /dev/hdc /mnt/cdrom
- #mkir /tftproot
- #cp /mnt/cdrom/isolinux/gentoo /tftproot
- #cd /mnt
- #mkdir tmpdir
- #cd tmpdir
- #cp /mnt/cdrom/isolinux/gentoo.igz ./
- #cp /mnt/cdrom/p_w_picpath.squashfs ./
- #mkdir gentoo.dir
- #cd gentoo.dir
- #zcat ../gentoo.igz |cpio -idv
- #mkdir mnt
- #mkdir mnt/cdrom
- #cp ../p_w_picpath.squashfs mnt/cdrom
2.編輯init文件
- --- init 2008-03-22 01:10:58.000000000 -0600
- +++ init 2008-03-22 01:14:27.000000000 -0600
- @@ -283,11 +283,6 @@
- [ ! -e ${NEW_ROOT}/dev/tty1 ] && mknod ${NEW_ROOT}/dev/tty1 c 4 1
- fi
- - if [ "${REAL_ROOT}" != "/dev/nfs" ] && [ "${LOOPTYPE}" != "sgimips" ]
- - then
- - bootstrapCD
- - fi
- -
- if [ "${REAL_ROOT}" = '' ]
- then
- echo -n -e "${WARN}>>${NORMAL}${BOLD} No bootable medium found. Waiting for new devices"
- @@ -387,7 +382,7 @@
- else
- bad_msg "Block device ${REAL_ROOT} is not a valid root device..."
- REAL_ROOT=""
- - http://2828602.blog.51cto.com/addblog.php got_good_root=0
- + got_good_root=1
- fi
- done
- @@ -489,7 +484,6 @@
- fi
- fi
- - cache_cd_contents
- # Setup the loopback mounts
- if [ "${LOOPTYPE}" = 'normal' ]
- @@ -503,7 +497,7 @@
- elif [ "${LOOPTYPE}" = 'squashfs' ]
- then
- good_msg 'Mounting squashfs filesystem'
- - 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
- test_success 'Mount filesystem'
- FS_LOCATION='mnt/livecd'
3.從新打包gentoo.igz
- cd /mnt/tmpdir/gentoo.dir
- find . -print |cpio -H newc -o --quiet > ../gentoo.igz
- cd ..
- cp gentoo.igz /tftproot
cp /usr/share/syslinux/pxelinux.0 /tftproot
cd /tftproot- mkdir pxelinux.cfg
cd pxelinux.cfg
4,手動編輯
- cd /tftproot/pxelinux.cfg
- vim default
- -------------------------------------------------
- +kernel gentoo
- +append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc loop=/p_w_picpath.squashfs looptype=squashfs cdroot=1 real_root=/
5,啓動服務
- /etc/init.d/dhcpd start
- /etc/init.d/in.tftpd start
6,添加啓動級別
- #rc-update add dhcpd default
- #rc-update add in.tftpd default
啓動服務,以後pxe就能夠啓動新的服務器了~網卡要設置pxe啓動哦·