我正在尝试创建自定义 CD/DVD 以使用 kickstart 文件部署 RHEL 7。这是我所做的:
- 已编辑
isolinux.cfg
(在 ISOLinux 文件夹中)和grub.cfg
文件(在EFI\BOOT
文件夹中)。 - 使用 mkisofs 创建 ISO。
但它不起作用。我是否使用正确的文件/方法?
您需要使用该new
命令。这是一个可行的示例:
在带有 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/
编辑 ISO 映像并放置ks.cfg
您创建的文件。最好将ks.cfg
文件放在ks
目录中。更多信息可以在这里找到。
我找到了从 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。我在这个 URL中找到了有用的信息。
对于我的 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.1\x20x86_64”,与上述设置相匹配。
(B) 您需要为 RHEL7 正确设置 EFI。出于某种原因,这与 RHEL6 不同,您可以只使用 /EFI/BOOT/BOOTX64.conf。现在它使用 /EFI/BOOT/grub.cfg。红帽手册中的常识表明将 inst.ks= 参数添加到内核行。RHEL7 启动 iso 的 /EFI/BOOT 目录中的 grub.cfg 实际上具有 linuxefi 参数,而不是内核参数,我猜它们的工作方式相同。如果您在 CD 上包含 KS 文件,这应该可以帮助您。 祝你好运!