我正在尝试创建一个自定义CD/DVD来部署RHEL 7与kickstart文件。以下是我所做的:
- 编辑
isolinux.cfg
(在ISOLinux文件夹中)和grub.cfg
文件(在EFIBOOT
文件夹中)。 - 使用mkisofs创建ISO。
但它不起作用。我使用正确的文件/方法吗?
编辑ISO镜像文件,放入刚才创建的ks.cfg
文件。最好将ks.cfg
文件放在ks
目录中。
需要使用new
命令。下面是一个有效的例子:
- 将kickstart文件添加到您的下载和爆炸ISO中。
-
在ISO和kickstart的区域运行此命令,并指向另一个位置来构建ISO:
genisoimage -r -v -V "OEL6 with KS for OVM Manager" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o OEL6U6_OVM_Manager.iso /var/www/html/Template/ISO/
我找到了从RHEL7页面创建自定义DVD的方法。
-
挂载下载的映像
mount -t iso9660 -o loop path/to/image.iso /mnt/iso
-
创建一个工作目录——一个存放ISO镜像内容的目录。
mkdir /tmp/ISO
-
将挂载映像的所有内容复制到新的工作目录。确保使用-p选项来保留文件和目录的权限和所有权。
cp -pRf /mnt/iso /tmp/ISO
-
卸载镜像。
umount /mnt/iso
-
确保当前工作目录是提取的ISO映像的顶级目录-例如/tmp/ISO/ISO。使用genisoimage:
创建新的ISO映像genisoimage -U -r -v -T -J -joliet-long -V "RHEL-7.1 Server.x86_64" -Volset "RHEL-7.1 Server.x86_64" -A "RHEL-7.1 Server.x86_64" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -o ../NEWISO.iso .
由于发布的评论,我正在编辑我的回答。这里有一个更全面的解决方案:
(A)需要正确创建ISO。
这里是我实际结束的行,对于我的MBR/UEFI ISO创建:mkisofs -U -A "<Volume Header>" -V "RHEL-7.1 x86_64" -volset "RHEL-7.1 x86_64" -J -joliet-long -r -v -T -x ./lost+found -o ${OUTPUT}/${HOST}.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -boot-load-size 18755 /dir/where/sources/for/ISO/are/located
小心使用-V参数,因为它必须匹配内核为inst.stage2定义的内容。在引导盘中包含的默认grub.conf中,它被配置为"hd:LABEL=RHEL-7.1x20x86_64",与上面的设置相匹配。
(B)您需要正确设置RHEL7的EFI。由于某种原因,这与RHEL6不同,在RHEL6中,您可以使用/EFI/BOOT/BOOTX64.conf。现在它使用/EFI/BOOT/grub.cfg文件。Red Hat手册中建议在内核行中添加inst.ks=参数。RHEL7引导iso的/EFI/BOOT目录中的grub.cfg实际上具有linuxefi参数,而不是内核参数,我猜它们的工作原理相同。如果你在CD中包含KS文件,这应该能帮你实现。好运!