我正在创建自定义 RHEL 6.4 iso,以便在重建独立主机时节省时间。
在我自定义菜单并添加额外的 kickstart 文件之前,我尝试了简单的解压 -> 重新打包,以确保 iso 映像确实有效。
我的所有版本都无法加载 grub 菜单,只是停留在提示符处,而不是加载 grub 菜单。
boot:
我正在使用以下脚本转储并重新创建 iso
ISOFILE="/home/matt/isobuild/rhel-server-6.4-x86_64-dvd.iso"
STAGEDIR="/home/matt/isobuild/rhel6.4/"
FINALISOFILE="/tmp/autoiso.iso"
TMPMOUNT="/mnt/dvd"
mkdir $TMPMOUNT
mount -o loop,ro $ISOFILE $TMPMOUNT
rsync -av --progress $TMPMOUNT $STAGEDIR
umount $TMPMOUNT
cd $STAGEDIR
chmod a+w isolinux/isolinux.bin
mkisofs -o /tmp/rhel6.4.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-r -T -J -V "RHEL 6.4 Custom Install DVD" .
它如预期那样给我留下了 iso 文件/tmp/rhel6.4.iso
,但是 grub 似乎失败了。
对于为什么会出现这种情况,您有什么想法吗?或者您能建议我如何进行调试吗?
谢谢!
马特
答案1
我敢打赌你的问题出在这个步骤中的子目录上mkisofs
。我曾多次使用这些步骤来创建自定义启动媒体。
- 创建一个目录来挂载您的源
mkdir /tmp/bootiso
。 - 循环安装您正在修改的源 ISO。(从 Red Hat / CentOS 下载。)
mount -o loop /path/to/some.iso /tmp/bootiso
- 为您的自定义媒体创建工作目录。
mkdir /tmp/bootisoks
- 将源媒体复制到工作目录。
cp -r /tmp/bootiso/* /tmp/bootisoks/
- 卸载源 ISO 并删除目录
umount /tmp/bootiso && rmdir /tmp/bootiso
。 - 更改工作目录的权限。
chmod -R u+w /tmp/bootisoks
- 将已针对软件包和 %post 修改的 Kickstart 脚本复制到工作目录。
cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
- 将任何其他 RPM 复制到目录结构并更新元数据。
cp /path/to/*.rpm /tmp/bootisoks/Packages/.
cd /tmp/bootisoks/Packages && createrepo -dpo .. .
- 创建新的 ISO 文件。
cd /tmp/bootisoks && mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T isolinux/
答案2
有一个名为 ISO Master 的工具,您可以使用它将文件添加到原始映像,而不是重新创建它。