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