实验过程:
本文在一台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-oloop-tiso9660/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文件,仿照其他启动菜单格式,加入如下开机选项:
labelks menulabelInstallCentOS7bythe^kickstart menudefault kernelvmlinuz appendinitrd=initrd.imginst.ks=cdrom:/ks.cfginst.stage2=hd:LABEL=asika
5. 编辑EFI/BOOT/grub.conf文件,仿照其他启动菜单格式,加入如下内容:
menuentry'InstallCentOS7bykickstart'--classfedora--classgnu-linux--classgnu--classos{ linuxefi/images/pxeboot/vmlinuzinst.ks=cdrom:/ks.cfginst.stage2=hd:LABEL=CentOS\x207\x20x86_64quiet initrdefi/images/pxeboot/initrd.img }
6. 使用genisoimage命令制作光盘
genisoimage-v-cache-inodes-joliet-long-R-J-T-Vasika\ -o./CentOS-x86_64-7-1511-my-ks.iso\ -cisolinux/boot.cat-bisolinux/isolinux.bin\ -no-emul-boot-boot-load-size4-boot-info-table\ -eltorito-alt-boot-bimages/efiboot.img-no-emul-boot./centos7.2/
7. 建立虚拟机,并测试该镜像
qemu-imgcreate-fqcow2CentOS7-ks-test.img20G virt-install--nameCentOS7-ks-test--vcpus=2--ram2048\ --diskpath=/cloud/vm_imgs/CentOS7-ks-test.img,format=qcow2,bus=virtio\ --networknetwork: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内容一致。。。
参考文章: