1、PXE 无人值守网络安装 RedHat Linux 操作系统 2010-09-07 23:24:03标签: PXE 无人值守网络安装 RedHat 操作系统 推送到技术圈 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http:/ RedHat Linux 操作系统,每次都是挂载光盘、分区等等操作,感觉到自己在机械的做一件事情,于是我就想,用 PXE 来个无人值守网络安装多好啊,有了这个想法后就立刻动手把它给实现了,终于解决了痛苦之忧啊。现在就把这个详细配置过程分享给需要的博友们。配置过程:一、DHCP 服务的配置首先安装软件
2、:yum -y install dhcp修改主配置文件# vim /etc/dhcpd.confddns-update-style interim;ignore client-updates;allow booting; /定义能够 PXE 启动allow bootp; / 定义支持 bootpnext-server 192.168.175.133; /tftp 服务器 ip 地址filename “pxelinux.0“; /pxe 启动文件位置subnet 192.168.175.0 netmask 255.255.255.0 option routers 192.168.175.2; /
3、默认网关option subnet-mask 255.255.255.0; /子网掩码range dynamic-bootp 192.168.175.10 192.168.175.254; /地址池范围default-lease-time 21600;max-lease-time 43200;# chkconfig dhcpd on /开机自动启动然后重启 DHCP 服务#service dhcpd restart二、tftp 服务的配置必要的软件:yun y install tftp-server修改配置文件vim /etc/xinetd.d/tftp将 disable 一项改为 no 如下
4、:service tftpsocket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpbootdisable = no per_source = 11cps = 100 2flags = IPv4# chkconfig xinetd on /开机自动启动启动 tftp 服务#service xinetd start三、PXE 引导配置(bootstrap )创建 tftp 目录#mkdir /tftpbootcp /usr/lib/syslinux/
5、pxelinux.0 /tftpboot/将光盘镜像里的相关组件拷到相应的目录里# cp /dev/cdrom/images/pxeboot/vmlinuz,initrd.img /tftpboot/接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件。# mkdir /tftpboot/pxelinux.cfg将光盘中的 isolinux/isolinux.cfg 文件复制为 /tftpboot/pxelinux.cfg/defaultcp /dev/cdrom/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg
6、/default编辑 default 文件#vim /tftpboot/pxelinux.cfg/default# 默认启动的是 label linux 中标记的启动内核default linux # 显示 boot: 提示符。为 0 时则不提示,将会直接启动 default 参数中指定的内容。prompt 1 # 在用户输入之前的超时时间,单位为 1/10 秒。timeout 60 #显示某个文件的内容,注意文件的路径。默认是在 /tftpboot 目录下。也可以指定位类似 install/rhel4.4-inst/boot.msg 这样的,路径+ 文件名。display boot.msg
7、F1 boot.msg #按下 F1 这样的键后显示的文件。注意路径。默认是 /tftpboot。注:syslinux 官方网站上说目前只能使用 F1-F10。F2 options.msgF3 general.msgF4 param.msgF5 rescue.msg# label 指定你在 boot: 提示符下输入的关键字。# 比如:# boot: linuxENTER# 这个会启动 label linux 下标记的 kernel 和 initrd.img 文件。# 这里还定义了其它几个关键字:# boot: text# boot: ks# kernel 参数指定要启动的内核。同样要注意路径,
8、默认是 /tftpboot 目录。# append 指定追加给内核的参数,能够在 gurb 里使用的追加给内核的参数,在这里也都可以使用。# 使用 kickstart 安装。# 可以在 ks 参数后直接指定 kickstart 文件的位置。label linuxkernel vmlinuzappend ks=nfs:192.168.175.1:/mnt/install/ks.cfg initrd=initrd.imglabel textkernel vmlinuzappend initrd=initrd.img textlabel kskernel vmlinuzappend ks initr
9、d=initrd.img 四、配置 NFS 服务安装介质存储在服务器上的一个目录中,可以使用各种网络协议访问它,这里使用 NFS 服务来提供安装介质,只需要将系统光盘内容拷贝放到共享目录下即可。创建共享目录,并将光盘内容拷贝到共享目录中:#mkdir /iso/install然后将光盘镜像上传至/iso/install 下配置共享# vim /etc/exports/iso *(ro,sync)重启服务使配置生效。service portmap restartservice nfs start检查目录/mnt/install 是否被正确共享:shoumount e# chkconfig -le
10、vel 35 nfs on五、配置 Kickstart通常,我们在安装操作系统的过程需要大量的人机交互过程,减少交互过程,为了提高安装效率 Red Hat Linux 开始支持一个称为 kickstart 的功能。使用这种方法,只需事先定义好一个 Kickstart 自动应答配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。我们可以通过多种方法生成 Kickstart 配置文件,无论使用哪种方法无非就是创建一个应答文件,当你安装好一台 Red Hat Linux 机器
11、,Red Hat Linux 安装程序都会创建一个 kickstart 配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的 kickstart 配置文件来生成你自己的 kickstart 配置文件。 该文件位于/root/anaconda-ks.cfg。这里我贴出我的配置:#vim /iso/ks.cfg# Kickstart file automatically generated by anaconda.text /文本模式安装nfs -server=192.168.175.133 -dir=/iso/iso /指定到服务器 192.168.175.133的
12、 NFS 共享目录/iso/iso 下寻找安装介质key -skip /跳过密钥输入lang en_US.UTF-8keyboard us#xconfig -startxonbootnetwork -device eth0 -bootproto dhcp /设置网卡的模式为 DHCProotpw -iscrypted $1$Ebukjmti$kfUXk5k5V8XnTLXwpMkjT/firewall -disabled /设置防火墙状态为不可用authconfig -enableshadow -enablemd5selinux -permissive /SElinux 状态为关闭timezo
13、ne -utc Asia/Shanghaibootloader -location=mbr -driveorder=sda -append=“rhgb quiet“# The following is the partition information you requested# Note that any partitions you deleted are not expressed# here so unless you clear all partitions first, this is# not guaranteed to workzerombrclearpart -all -i
14、nitlabelpart /boot -fstype ext3 -size=100part pv.7 -size=100000volgroup vol0 pv.7logvol /home -fstype ext3 -name=home -vgname=vol0 -size=4096logvol /var -fstype ext3 -name=var -vgname=vol0 -size=20480logvol / -fstype ext3 -name=root -vgname=vol0 -size=51200logvol swap -fstype swap -name=swap -vgname
15、=vol0 -size=1024reboot%packages#admin-toolsbasechinese-supportcore#development-libs#development-toolseditorsgnome-desktop#graphical-internet#java#legacy-software-development#legacy-software-support#printing#system-toolstext-internetbase-xcreaterepodstatxorg-x11-utilsdialog-Deployment_Guide-zh-CN-Dep
16、loyment_Guide-zh-TW%postmkdir -v /media/cdrom & /dev/nullmkdir -v /media/floppy & /dev/nullsed -i s/id:5:initdefault:$/id:3:initdefault:/ /etc/inittab &/dev/null /设置默认启动界面为命令行模式cat /root/.bashrc /etc/yum.repos.d/media.repo /etc/issueecho -e “Please login as root with password redhat.n“ /etc/issueuseradd redhat & /root/postinstall.log注意:关闭服务器端防火墙和 SELINUX最后设置客户端 BIOS 选择从网卡启动。具体方法因 BIOS 版本不同而异。网卡中的 PXE 代码会联系 DHCP 服务器来获取 IP 地址以及启动镜像,然后启动镜像被载入并运行。好了 至此 PXE 无人值守网络安装 RedHat Linux 操作系统 制作完成。