文件放在httpd服务器的主目录里。 anaconda支持http协议,不用再使用tftp了。
[root@localhost ~]# ls /var/www/html
centos6 centos6.cfg 同时ks文件中所指定的url就是仓库的位置,我这里就在相同目录的centos6下面。
设置引导菜单。
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 #加载vesamenu.c32程序
#prompt 1
timeout 20 #超时2秒
menu background splash.jpg #背影图片
menu title Welcome to CentOS 6.7! #主标题
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 linux #这个是一个菜单项的总称,在boot:后面手动输入这个名称,就表示执行这个菜单项,与选择菜单功能一样。
menu label ^Install CentOS6 #显示的菜单项
menu default #如果有多个label,默认选择这个
kernel vmlinuz #内核文件
append initrd=initrd.img ks=http://192.168.40.100/centos6.cfg #传递给内核的参数 把用不到的都删除了。 并且添加参数ks。 就是从哪里下载ks文件。
现在我们引导的第一阶段和第二阶段看起来都完成了。内核如果加载顺利,并启动anaconda,然后再成功下载ks文件,anaconda如果可以顺利的按着ks文件安装完成,也就算安装完成了。
ks文件:
install
keyboard --vckeymap=cn --xlayouts='cn'
reboot
rootpw --iscrypted $6$3hHx9zVZ$ShB3kPo0UeHpetxNXEJr2GynXg2rcg2lgCflfTbuxN1yfUbrUmBJu3P/ncD/X467M1jN2yxiNWnBExozzjafg1
timezone Asia/Shanghai
url --url="http://192.168.40.100/centos7"
lang zh_CN
firewall --disabled
network --bootproto=dhcp --device=eth0
auth --useshadow --passalgo=sha512
text
firstboot --disable
selinux --permissive
ignoredisk --only-use=sda
bootloader --location=mbr --boot-drive=sda
zerombr
clearpart --all --initlabel
part /boot --asprimary --fstype="xfs" --size=512
part swap --fstype="swap" --size=2048
part /usr --fstype="xfs" --size=20480
part / --fstype="xfs" --size=20480
%packages
@base
@core
%end 来看一下现在的httpd的根目录:
[root@localhost html]# ls
centos6 centos6.cfg centos7 centos7.cfg 复制一下内核文件 : 当前目录在tftp根目录。
cp /mnt/cdrom1/images/pxeboot/initrd.img initrd.7.img
cp /mnt/cdrom1/images/pxeboot/vmlinuz vmlinuz.7
[root@localhost tftpboot]# ls
initrd.7.img initrd.img pxelinux.0 pxelinux.cfg splash.jpg vesamenu.c32 vmlinuz vmlinuz.7 注意:不要复制成centos6的内核了。
修改启动菜单。
default vesamenu.c32
timeout 100 #时间改长了一点,现在是10秒。
menu background splash.jpg
menu title Welcome to CentOS 6.7!
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 linux
menu label ^Install CentOS6
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.40.100/centos6.cfg
label linux
menu label ^Install CentOS7
kernel vmlinuz.7
append initrd=initrd.7.img ks=http://192.168.40.100/centos7.cfg
~ 也就是多了4行用于centos7的菜单。menu default是用于默认启动的。
我们来缕一下,dhcp发送启动引导文件。客户机收到文件启动引导,开始加载第二阶段。成功以后,会开始加载内核文件,内核文件再启动anaconda。anaconda加载ks文件,开始安装过程。
default vesamenu.c32
timeout 600
menu clear
menu background splash.png
menu title CentOS 7
menu vshift 8
menu rows 18
menu margin 8
#menu hidden
menu helpmsgrow 15
menu tabmsgrow 13
# Border Area
menu color border * #00000000 #00000000 none
# Selected item
menu color sel 0 #ffffffff #00000000 none
# Title bar
menu color title 0 #ff7ba3d0 #00000000 none
# Press [Tab] message
menu color tabmsg 0 #ff3a6496 #00000000 none
# Unselected menu item
menu color unsel 0 #84b8ffff #00000000 none
# Selected hotkey
menu color hotsel 0 #84b8ffff #00000000 none
# Unselected hotkey
menu color hotkey 0 #ffffffff #00000000 none
# Help text
menu color help 0 #ffffffff #00000000 none
# A scrollbar of some type? Not sure.
menu color scrollbar 0 #ffffffff #ff355594 none
# Timeout msg
menu color timeout 0 #ffffffff #00000000 none
menu color timeout_msg 0 #ffffffff #00000000 none
# Command prompt text
menu color cmdmark 0 #84b8ffff #00000000 none
menu color cmdline 0 #ffffffff #00000000 none
# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
menu tabmsg Press Tab for full configuration options on menu items.
menu separator # insert an empty line
menu separator # insert an empty line
label linux
menu label ^Install CentOS 7
kernel vmlinuz.7
append initrd=initrd.7.img ks=http://192.168.40.100/centos7.cfg
label check
menu label install CentOS 6
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.40.100/centos6.cfg
menu end 启动测试: