PXE自动安装Linux系统
PXE安装系统是基于网络的方式安装的,所以需要网卡支持PXE才可以。
本次实验环境:
虚拟机:VMware-10.0.1 build-1379776
服务器端:CentOS 6.6
安装的版本:CentOS 6.6
本次搭建所有安装域下载的服务程序都是基于YUM安装的,如果不能外网安装请自建光盘YUM仓库,参考:http://kmk0226.blog.51cto.com/5975994/1662522
配置文件修改都为vim,如果没有需要安装
yum -y install vim
vim简单使用:
i进入编辑模式
退出编辑模式按esc
保存退出:wq,是冒号wq
需要强制保存的要加感叹号,如: :wq!
PXE环境搭建:
DHCP服务
tftp服务
http服务
dhcp服务搭建请参考:
http://kmk0226.blog.51cto.com/5975994/1670796
DHCP服务配置需要修改点:
CentOS 6 PXE设置
subnet 192.168.1.0(工作与哪个网络) netmask 255.255.255.0(子网掩码) {
range 192.168.1.100 192.168.1.120;:地址池,被分配的IP都存在于此
option routers(网关)192.168.1.1;
option domain-name-servers 61.153.177.196;:dns服务器地址
next-server 192.168.1.1;:告诉网卡下一个需要找的服务器是谁
filename "PXElinux.0";:PXElinux.0,类似于mbr这个文件,或isolinux.bin
}
tftp服务搭建:
配置tftp server
yum -y install tftp-server:安装tftp服务
chkconfig tftp on:将tftp设置成开机自启动
service xinetd restart:由于tftp服务是又xinetd服务代为监控的所以要重启xinetd服务
注意:如果没有安装xinetd服务的话,需要另外安装 yum -y install xinetd
xinet:超级守护进程
瞬时守护进程
所有瞬时守护进程的脚本都在/etc/xinetd.d/
配置启动:
1,chkconfig SERVICE_NAME on
2,编辑配置文件,确保没有被禁用
disable = no
修改后的生效需要重启超级守护进程:
service xinetd restart
ss -unl | grep :69 #查看udp协议上的69号端口是否已经启动
tftp服务启动之后,还要关闭防火墙与selinux否则不能通讯,PXE安装的时候会出现错误32。
防火墙与selinux关闭之后重启下网卡service network restart
由于本人没有还没学到防火墙配置与selinux配置所以都关闭了,适合新手学习。
防火墙关闭:service iptables stop,临时关闭防火墙
chkconfig iptables on,开机不启动防火墙
selinux关闭:setenforce 0 ,临时关闭
开机不启动:
vim /etc/selinux/config:打开配置文件
将SELINUX=enforcing改为SELINUX=disabled
提供PXE的工作环境
yum install syslinux:syslinux提供pxelinux.0这个启动文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/:将pxelinux.0文件复制到tftp服务目录下
pxelinux.0:pxe启动文档
提供引导内核等文件
挂载系统光盘,假设位置为/media/cdrom/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
复制:vmlinuz,initrd.img文件到tftp目录
cp /media/cdrom/isolinux{splash.jpg,vesamenu.c32,boot.msg} /var/lib/tftpboot
复制:splash.jpg,vesamenu.c32,boot.msg文件到tftp目录
mkdir /var/lib/tftpboot/pxelinux.cfg/:新建目录pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default
复制:isolinux.cfg文件到tftp目录下的pxelinux.cfg目录下改名为default,重要
这个文件为引导文件
vmlinuz:内核
initrd.img:引导文件
splash.jpg:启动后的背景文件
vesamenu.c32:启动后的图像界面文件
boot.msg:启动后提示文件
pexlinux.cfg:pxe引导文件,主要是显示vesamenu.32的菜单,
按esc之后进入boot界面
可以输入标签,或者其他命令来完成引导操作
由boot.msg文件来启动
一下三个文件组合显示界面的效果:
splash.jpg:启动后的背景文件
vesamenu.c32:启动后的图像界面文件
pexlinux.cfg:pxe引导文件,主要是显示vesamenu.32的菜单,
pxelinux.cfg文件配置:
重要
修改引导配置文件: vim /var/lib/tftpboot/pxelinux.cfg/default
找到一下选项
label linux:标签,选择界面的时候可以直接输入标签来确定选择什么选项
menu label ^Install or upgrade an existing system:选项显示的字符
menu default
kernel vmlinuz:选项选择的内核
append initrd=initrd.img :给内核传递默认参数,临时根
修改
label linux:标签,选择界面的时候可以直接输入标签来确定选择什么选项
menu label ^Install or upgrade an existing system:选项显示的字符
menu default
kernel vmlinuz:选项选择的内核
append initrd=initrd.img ks=192.168.1.1/centos6-ks.cfg:给内核传递默认参数,临时根,initrd.img,ks指向到192.168.1.1的ks文件(如果没加ks指向需要在boot下指定),ks文件具体在哪需要自己指定,本文的ks文件放在http目录下
HTTP服务:
http服务为提供安装源
yum -y install httpd:安装http服务
mkdir -pv /var/www/html/centos/6/x86_64:建立源目录,-pv代表有子目录,需要递增建立
mount --bind /media/cdrom /var/www/html/centos/6/x86_64:--bind是绑定cdrom与x86这个文件夹,代表两个文件内容一样了,映射一样
ks文件配置重要
参考:http://kmk0226.blog.51cto.com/5975994/1672995
配置好ks文件之后
cp centos6-ks.cfg /var/www/html:拷贝ks文件到html目录下
至此PXE的配置就完成了,可以开机使用网卡启动来验证是否成功
错误提示:
如果出现这个错误,代表主机硬件太新,系统不能识别,
可以在ks文件中添加:unsupported_hardware:忽略硬件过新而不能识别的问题