这些文件主要在光盘里面
solinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg: isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目, menu.c32版本是纯文本的菜单
Memtest:内存检测,这是一个独立的程序
splash.jgp:光盘启动界面的背景图
vmlinuz:是内核映像
initrd.img是ramfs (先cpio,再gzip压缩)
创建引导光盘:
只做启动引导,ks默认是光盘里的myks.cfg文件,可以在菜单界面手动输入ks文件路径
cp -r /misc/cd/isolinux/ /tmp/myiso/
vim /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.img text ks=cdrom:/myks.cfg
cp /root/myks.cfg /tmp/myiso/
cd /tmp;mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/
注意:以上命令的路径都是相对于光盘的根, 而和工作目录无关,/misc/cd代表光盘路径
因为centos6和centos7命令有所不同,安装的过程会有差异
1.安装前准备:关闭防火墙和SELINUX, DHCP服务器配置静态IP
2.所需软件包并启动服务
systemctl enable httpd
systemctl start httpd
systemctl enable tftp.socket (centos6:chkconfig tftp on)
systemctl start tftp.socket (centos6:service xinetd restart)
systemctl enable dhcpd
mkdir /var/www/html/centos/7
mount /dev/sr0 /var/www/html/centos/7
3.准备ks文件
/var/www/html/ks/ks6.cfg #注意:权限
kickstart详细介绍
4.配置DHCP服务并启动
vi /etc/dhcp/dhcpd.conf
option domain-name "example.org";
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
filename "pxelinux.0";
next-server 192.168.100.100;
}
systemctl start dhcpd
5.准备相关文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
6.弄好后的文件列表如下:
/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz
7.准备启动菜单
vi /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32 #启动菜单样式简约版
timeout 600 #等待60s进入默认菜单
menu title PXE INSTALL MENU #启动菜单大标题
label auto
menu label Install CentOS 7 Auto
menu default
kernel vmlinuz #内核文件,路径以tftpboot目录为根目录
append initrd=initrd.img ks=http://192.168.100.100/ks/ks7.cfg #kickstart文件路径
label manual
menu label Install CentOS 7 Manual
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/7 #远程yum源
1.安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IP
yum install dhcp httpd tftp-server syslinux
chkconfig tftp on
chkconfig xinetd on
chkconfig httpd on
chkconfig dhcpd on
service httpd start
service xinetd start
2.准备Yum 源和相关目录
mkdir -pv /var/www/html/centos/{6,ks}
mount /dev/sr0 /var/www/html/centos/6
3.准备kickstart文件
/var/www/html/centos/ks/centos6.cfg
chmod 644 /var/www/html/centos/ks/centos6.cfg
4.准备相关的启动文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /misc/cd/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot
cd /misc/cd/isolinux/
cp boot.msg vesamenu.c32 splash.jpg /var/lib/tftpboot
5.准备启动菜单文件
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 指定菜单风格
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to wang CentOS 6
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label auto
menu label ^Automatic Install Centos6
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.100.100/centos/ks/centos6.cfg
label manual
menu label ^Manual Install Centos
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.100.100/centos/6
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
6.目录结构如下:
tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│ └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz
7.配置dhcp服务并启动
vim /etc/dhcp/dhcpd.conf
option domain-name "hello.com"; #域名
option domain-name-servers 192.168.100.1;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200; #分配IP地址范围
option routers 192.168.100.1; #网关
filename "pxelinux.0"; #网络启动引导文件
next-server 192.168.100.100; #TFTP服务器IP
}
service dhcpd start
如果是实验要重新开一个虚拟网络,以防干扰现在的网络,虚拟机内存要大于1G,然后启动电脑进入BIOS选择网络启动
PXE安装的整体流程:
主机–>dhcp服务器–>获取IP–>访问TFTP服务器IP–>获取pxelinux.0–>内核、驱动、ks文件路径–>访问ks文件–>获取yum源路径–>下载系统所需安装包
过程中注意事项都在过程中详细列出,想了解kickstart文件格式请看 anaconda详解