实验过程:
本文在一台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(genisoimage) 制作光盘工具
实验步骤:
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 /images/pxeboot/vmlinuz inst.ks=cdrom:/ks.cfg inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
initrdefi /images/pxeboot/initrd.img
}
6. 使用genisoimage命令制作光盘
genisoimage -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 images/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://www.linuxidc.com/Linux/2017-01/140081.htm