我正在尝试创建一个自定义 ISO 映像,它将安装所需的最小 RPMS 以及我的应用程序的一些自定义编写的 RPM。并且还想执行一些安装后步骤,例如配置我的应用程序和 VPN 配置等。
我在谷歌上看到了一些链接,但它们都指向从已挂载的磁盘或 ISO 映像创建 repo 和 ISO。
谢谢 Ramesh
答案1
创建一个目录来挂载您的源。
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
将已经针对软件包修改过的 Kickstart 脚本复制
%post
到工作目录。cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
将任何其他 RPM 复制到目录结构并更新元数据。
cp /path/to/*.rpm /tmp/bootisoks/Packages/. cd /tmp/bootisoks/Packages && createrepo -dpo .. .
将 kickstart 添加到启动选项。
sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
创建新的 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 -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
(可选)
isohybrid
如果您想将dd
ISO 文件传输到可启动的 USB 密钥上使用。isohybrid /tmp/boot.iso
添加 MD5 校验和(以允许测试媒体)。
implantisomd5 /tmp/boot.iso
如果你需要更多帮助创建 Kickstart脚本,我建议从 Red Hat 官方文档开始。