PXE远程安装linux
时间:2009-03-23 来源:sjhf
1) 什么是PXE
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
PXE协议的成功运行需要解决以下两个问题:
![]() =============+==========+===========+============+============ service tftp { disable = no (默认是yes,这里改成no,启用它) socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -u nobody -s /tftpboot //-s 表示用/tftpboot作为tftp目录的根目录. per_source = 11 cps = 100 2 flags = IPv4 } tftp是由xinted来启动的,修改完后要记得service xinetd restart # vi /etc/dhcpd.conf =============+==========+===========+============+============ ddns-update-style interim; ignore client-updates; default-lease-time 21600; max-lease-time 43200; authourtative; next-server 192.168.1.103; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; range 192.168.1.1 192.168.1.100; default-lease-time 21600; max-lease-time 43200; filename "/pxelinux.0"; option domain-name-servers 202.106.0.20; } 这里的 pxelinux.0就是上面提到的bootstrap,上面已经指定了tftp的根目录,所以这里用相对路径. next-server 192.168.1.103;这句一开始我并没有加上,当要安装系统的机器启动以后,在查找pxelinux.cfg目录下的配置文件的时候,就死活找不到了.经过很长时间的等待,出现一个boot:的提示符,告诉我:can't load kernel image:linux,一开始以为是/tftpboot/pxelinux.cfg/default的配置文件有误,检查后没问题. google了半天,总算查到了一个帖子,说可能是dhcp3.0的一个bug,需要加上这个参数来指定DHCP SERVER的IP.修改配置文件加入此句后,重启dhcp,然后再重新启动客户机,这次速度大大加快,顺利通过. 3 配置支持PXE # mkdir /tftpboot # cp /usr/lib/syslinux/pxelinux.0 /tftpboot 把LINUX第一张安装光盘上/image/pxeboot/initrd.img和vmlinuz 以及isolinux/*.msg考到/tftpboot目录下(*.msg也可以不拷,重点是initrd.img和vmlinuz,没有内核是无法引导的) # cd /tftpboot # mkdir pxelinux.cfg # vi defaultdefault centos5 prompt 1 timeout 30 label centos5 kernel vmlinuz append ks=nfs:192.168.1.103:/root/inst/ks initrd=initrd.img devfs=nomount ramdisk_size=9216 #append initrd=initrd.img devfs=nomount ramdisk_size=9216 这里的ks=nfs:192.168.1.103:/root/inst/ks 文件是指定kickstart配置文件,可以在安装中不用人工干预,自动按预设的参数安装.实现安装过程的全自动. 4 配置NFS服务 # vi /etc/exports /root/inst 192.168.1.0/24(ro,sync) //这里是/root/inst 而不是/root/inst/ # mkdir /home/iso 拷贝安装LINUX的ISO文件到这个目录 5 需要开启的系统服务 /dhcpd/network/nfs/portmap/syslog/tftp/xinetd/ service dhcpd start service portmap start service nfs start 最后附上ks文件的内容. install nfs --server=192.168.1.103 --dir=/root/inst lang en_US.UTF-8 keyboard us network --device eth0 --bootproto static --ip 192.168.1.220 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 192.168.1.1 #network --device eth0 --bootproto DHCP rootpw --iscrypted $1$WvFbqnpm$m94fa4AopXI/kfYOYbWMW. firewall --enabled --port=22:tcp #firewall --disabled authconfig --enableshadow --enablemd5 selinux --disabled timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=sda --append="rhgb quiet" clearpart --all zerombr yes clearpart --linux --initlabel part /boot --fstype ext2 --size=256 part / --fstype ext3 --size=8192 part /opt --fstype ext3 --size=8192 part /usr --fstype ext3 --size=16384 part swap --size=4096 part /home --fstype ext3 --size=1 --grow reboot //加入这行后装完系统后可以自动重启,需要注意的是机器的启动顺序不能是网卡优先,否则会循环装系统........ %packages --resolvedeps @ everything grub kernel kernel-devel e2fsprogs |
相关阅读 更多 +