PXE无人值守安装Linux
一、网络(PXE)装机概述
1.传统装机的局限性
1.1需要用到固定的光驱、U盘等物理介质
1.2如果批量安装多台计算机,都用到物理介质,显然不太现实。
2.PXE装机的优点
2.1规模化:可以同时安装多台计算机,实现批量安装。
2.2自动化:完全无需人为操作,实现无人值守安装(不需要点击下一步下一步之类的交互式操作)
2.3远程实现:不再需要固定的物理介质
3.PXE概述
3.1什么是PXE网络
PXE(Pre-boot eXecution Environment):预启动执行环境
--在操作系统之前运行
--可用于远程安装,实现无盘工作站
3.2PXE工作模式
PXE client 集成在网卡的ROM里面
--当计算机引导时,BIOS吧PXE client调入内存中执行获取PXE server的配置、显示菜单,根据用户选--择将远程操作系统下载到本机运行。
3.3 PXE组件及过程分析
3.3.1
PXE需要那些服务?
--DHCP服务:给客户端分配IP地址,定位引导程序
--DNS服务:为客户端分配主机名(可选)
--TFTP服务:提供引导程序下载(因为网卡PXE只提供了TFTP客户端)
--FTP服务(或者HTTP/NFS):提供安装系统所需要的软件包(yum源)
3.3.2
客户端需要具备的条件(^-^下面两点貌似有点废话了)
--网卡ROM必须支持PXE协议(目前市面上的网卡基本都支持PXE)
--主板需要支持网络启动
4.PXE工作流程
虚线里面的服务器可以是一台也可以分开做
二、配置PXE服务器
1.配置思路
--安装所需服务(DHCP/TFTP/FTP)
--拷贝引导程序到FTP共享目录下
--拷贝启动文件到FTP共享目录下
--复制RHEL6.5光盘下的所有文件到FTP的pub目录下
2.配置并启用服务
2.1 安装配置DHCP服务
2.1.1
安装服务(记得设置开机自动启动
[root@svr5 桌面]# yum -y install dhcp service dhcpd start chkconfig --levle 35 dhcpd
2.1.2
配置DHCP服务,使客户端能够获取到和PXE服务同一网段的IP地址
[root@svr5 dhcp]# vim dhcpd.conf ...... //添加以下两行 next-server 192.168.4.5; //TFTP服务器IP地址 filename "pxelinux.0"; //网卡引导文件名 [root@svr5 dhcp]# /etc/init.d/dhcpd restart
2.2 安装配置TFTP服务
2.2.1
TFTP概述
tftp是基于xinetd运行的,所以没有xinetd的话需要安装xinetd)
监听端口:UDP 69
TFTP根目录:/var/lib/tftpboot/
[root@svr5 /]# grep tftpboot /etc/xinetd.d/tftp server_args = -s /var/lib/tftpboot
2.2.2
安装TFTP
[root@svr5 /]# yum -y install tftp-server [root@svr5 /]# /etc/init.d/xinetd restart [root@svr5 /]# chkconfig --level 35 xinetd on
2.2.3
修改TFTP配置文件
[root@svr5 /]# vim /etc/xinetd.d/tftp disable = no //修改为no(yes为禁用tftp服务)
2.3安装ftp
2.3.1
安装FTP
[root@svr5 /]# yum -y install vsftpd [root@svr5 /]# /etc/init.d/vsftpd restart [root@svr5 /]# chkconfig --level 35 vsftpd on
注意:ftp使用匿名访问就可以了,所以这里就不许要配置其他了.
2.3.2
拷贝光盘文件到ftp的共享目录,为这里使用的是ftp的默认共享目录(/var/ftp/pub)
[root@svr5 /]# cp -r /misc/cd/* /var/ftp/pub/
4.部署网卡启动程序
4.1 syslinux工具
启动程序可以使用syslinux工具生成,也可从光盘中提取
[root@svr5 /]# yum -y install syslinux [root@svr5 /]# cd /usr/share/syslinux/ [root@svr5 syslinux]# cp pxelinux.0 /var/lib/tftpboot/
4.2 部署安装内核和初始化镜像文件
从系统光盘中提取安装内核和初始化镜像文件
[root@svr5 isolinux]# cd /misc/cd/isolinux/ [root@svr5 isolinux]# cp * /var/lib/tftpboot/ [root@svr5 isolinux]# ll /var/lib/tftpboot/
4.3 测试TFTP服务能否下载到pxelinux.0
文件
[root@svr5 桌面]# yum -y install tftp [root@svr5 桌面]# tftp 192.168.4.5 -c get pxelinux.0 [root@svr5 桌面]# ls -lh pxelinux.0 -rw-r--r-- 1 root root 27K 5月 7 22:27 pxelinux.0
5.为PXE配置启动菜单
5.1 创建pxe启动配置
先创建pxelinux.cfg文件夹
[root@svr5 桌面]# cd /var/lib/tftpboot/ [root@svr5 tftpboot]# mkdir pxelinux.cfg [root@svr5 tftpboot]# cp /misc/cd/isolinux/isolinux.cfg ./pxelinux.cfg/default
5.2 修改pxe启动配置
通过 /pxelinux.cfg/default
文件进入默认引导标签
default linux //默认从那个标签引导系统 prompt 1 //是否等到用户选择 timeout 600 //进入系统的等待超时时间(十分之一秒) label linux //定义名为linux的标签 kernel vmlinuz //下载指定内核并运行 append initrd=initrd.img //下载指定初始文件并运行
6.pxe引导配置
6.1 启用tftp服务器,准备引导文件
网卡启动程序:pxelinux.0
内核及初始文件:vmlinuz
initrd.img
6.2 建立pxe启动配置
6.2.1在TFTP目录下创建pxelinux.cfg
配置目录,
[root@svr5 tftpboot]# mkdir pxelinux.cfg
6.2.2 建立默认配置default
[root@svr5 tftpboot]# cp /misc/cd/isolinux/isolinux.cfg ./pxelinux.cfg/default
到这里为们基本上完成一大半的操作了,如果配置没有出错的话应该可以实现半自动化安装了.
7.kickstart(自动应答文件)
7.1 生成kickstart文件的方法
--手动写入
--根据/root/anaconda-ks.cfg修改
--使用system-config-kickstart工具生成
7.2 安装kickstart工具
[root@svr5 /]# yum -y install kickstart
7.3 使用kickstart工具生成自动应答文件
[root@svr5 /]# system-config-kickstart
选择"文件" 菜单 ---> 保存到 /var/ftp/ks.cfg
7.4 修改PXE启动菜单
生成应答文件后需要做最后一步,在/var/lib/tftpboot/pxelinux.cfg/default
文件中引用该应答文件.
添加一行ks=ftp://192.168.4.5/ks.cfg
append initrd=initrd.img ks=ftp://192.168.4.5/ks.cfg
三、测试PXE客户端是否正常安装
可以看到我在自动应答文件里面的配置都生效了(安装完成自动重启系统;新建一个用户stone;.....),至此,所有配置完成.终极目标完美实现.
『PS:写了差不多3个多小时,一边写一边用虚拟机实验,真心累!如果以上内容出现错误,请各位留言告知.非常感谢!』
- 上一篇: 冒泡
- 下一篇: RHEL下KVM虚拟化部署-安装虚拟化