Linux用PXE自动化安装系统和制作引导盘
2017-09-17 17:53
615 查看
用到的主要文件
这些文件主要在光盘里面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代表光盘路径
mkisofs选项:
-o 指定映像文件的名称。
-b 指定在制作可开机光盘时所需的开机映像文件。
-c 制作可开机光盘时,会将开机映像文件中的 no-eltoritocatalog 全部内容作成一个文件。
-no-emul-boot 非模拟模式启动。
-boot-load-size 4 设置载入部分的数量
-boot-info-table 在启动的图像中现实信息
-R 或 -rock 使用 Rock RidgeExtensions
-J 或 -joliet 使用 Joliet 格式的目录与文件名称
-v 或 -verbose 执行时显示详细的信息
-T 或 -translation-table 建立文件名的转换表,适用于
不支持 Rock Ridge Extensions 的系统上
PXE安装
因为centos6和centos7命令有所不同,安装的过程会有差异centos7
1.安装前准备:关闭防火墙和SELINUX, DHCP服务器配置静态IP2.所需软件包并启动服务
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源
centos6
1.安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IPyum 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详解
相关文章推荐
- 使用U盘制作linux启动盘,并且成功安装Linux系统后,拔掉无法再次启动linux,修复引导区到硬盘
- Linux系统安装的引导镜像制作
- 基于PXE的linux系统的自动化安装部署(图文并茂,绝对详细)
- PXE网络引导自动化安装系统详解
- 【系统安装】PXELINUX(网络安装引导启动)
- PXE网络引导自动化安装系统详解
- Linux学习pxe自动化安装系统
- Linux下PXE和KickStart实现自动化安装系统
- 初涉定制linux系统之——自动化安装Centos系统镜像制作
- Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)
- Linux入门之pxe网络自动安装系统----“高级的自动化”
- 制作iso镜像U盘自动化安装linux系统
- PXE技术实现Linux系统自动化安装
- PXE+TFTP+DHCP网络自动引导安装Linux
- SystemImager自动化安装Linux系统(下)
- PXE+TFTP+DHCP网络自动引导安装Linux
- 光盘引导和网络安装linux系统
- Kictstart Pxe 自动安装Linux系统
- Kickstart Pxe 自动批量安装Linux系统
- linux 系统安装方式大全1-引导盘安装