实验过程: 本文在一台RHEL6.5机器上,通过向原生CentOS7.2 iso中添加kickstart启动脚本ks.cfg和读取脚本的开机选项,再对该iso镜像重新封装的方式,完成CentOS7.2自动安装光盘的制作,并新建
实验过程:
本文在一台RHEL6.5机器上,通过向原生CentOS7.2 iso中添加kickstart启动脚本ks.cfg和读取脚本的开机选项,再对该iso镜像重新封装的方式,完成CentOS7.2自动安装光盘的制作,并新建一台虚拟机挂载该光盘,来验证操作系统的自动安装。
所需工具:
1. 一台RHEL6.5主机(虚拟机也可以,但本文涉及要在该主机上新建虚拟机,因此建议该主机应支持KVM或别的虚拟机技术)
2. virt-manager 可视化的虚拟机管理工具
3. virt-install 虚拟机安装工具
4. qemu-img QEMU磁盘工具,用于建立虚拟机磁盘
5. CentOS-7-x86_64-DVD-1511.iso CentOS官网下载的iso镜像
6. mkisofs(genisop_w_picpath) 制作光盘工具
实验步骤:
1. 挂载镜像:
mount -o loop -t iso9660 /root/CentOS-7-x86_64-1511.iso /mnt
2. 复制目录的中所有内容到其他本地目录:
cp -a /mnt/* /cloud/iso/centos7.2/
3. 复制编写的可以完成自动安装的ks.cfg脚本到目录中。
cp /root/ks.cfg /cloud/iso/centos7.2/
4. 进入复制的目录,编辑isolinux/isolinux.cfg文件,仿照其他启动菜单格式,加入如下开机选项:
label ks
menu label Install CentOS 7 by the ^kickstart
menu default
kernel vmlinuz
append initrd=initrd.img inst.ks=cdrom:/ks.cfg inst.stage2=hd:LABEL=asika
5. 编辑EFI/BOOT/grub.conf文件,仿照其他启动菜单格式,加入如下内容:
menuentry 'Install CentOS 7 by kickstart' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /p_w_picpaths/pxeboot/vmlinuz inst.ks=cdrom:/ks.cfg inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
initrdefi /p_w_picpaths/pxeboot/initrd.img
}
6. 使用genisop_w_picpath命令制作光盘
genisop_w_picpath -v -cache-inodes -joliet-long -R -J -T -V asika \
-o ./CentOS-x86_64-7-1511-my-ks.iso \
-c isolinux/boot.cat -b isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot -b p_w_picpaths/efiboot.img -no-emul-boot ./centos7.2/
7. 建立虚拟机,并测试该镜像
qemu-img create -f qcow2 CentOS7-ks-test.img 20G
virt-install --name CentOS7-ks-test --vcpus=2 --ram 2048 \
--disk path=/cloud/vm_imgs/CentOS7-ks-test.img,format=qcow2,bus=virtio \
--network network:default --os-type=linux --vnc --autostart \
--cdrom /cloud/iso/CentOS-x86_64-7-1511-my-ks.iso \
--keymap=en-us
注:
1. inst.ks的内容应指定为ks.cfg在cdrom中的路径。比如你的ks.cfg文件放置在isolinux目录下,inst.ks应等于cdrom:/isolinux/ks.cfg。
2. 制作光盘时指定的光盘ID ,即-V选项的内容应与isolinux.cfg中添加的label中hd:LABEL选项内容一致,多次实验中,表明内容不一致导致系统无法从光盘中正常加载,同时实验表明光盘ID无需同BOOT/grub.conf中添加行的hd:LABEL内容一致。。。
参考文章:
http://xiaoli110.blog.51cto.com/1724/1617541