如何在 CentOS 中创建自定义 ISO 映像

如何在 CentOS 中创建自定义 ISO 映像

我正在尝试创建一个自定义 ISO 映像,它将安装所需的最小 RPMS 以及我的应用程序的一些自定义编写的 RPM。并且还想执行一些安装后步骤,例如配置我的应用程序和 VPN 配置等。

我在谷歌上看到了一些链接,但它们都指向从已挂载的磁盘或 ISO 映像创建 repo 和 ISO。

谢谢 Ramesh

答案1

  1. 创建一个目录来挂载您的源。

    mkdir /tmp/bootiso
    
  2. 循环安装您正在修改的源 ISO。(从 Red Hat / CentOS 下载。)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. 为您的自定义媒体创建工作目录。

    mkdir /tmp/bootisoks
    
  4. 将源媒体复制到工作目录。

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. 卸载源 ISO 并删除目录。

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. 更改工作目录的权限。

    chmod -R u+w /tmp/bootisoks
    
  7. 将已经针对软件包修改过的 Kickstart 脚本复制%post到工作目录。

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. 将任何其他 RPM 复制到目录结构并更新元数据。

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. 将 kickstart 添加到启动选项。

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. 创建新的 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/. .
    
  11. (可选)isohybrid如果您想将ddISO 文件传输到可启动的 USB 密钥上使用。

    isohybrid /tmp/boot.iso
    
  12. 添加 MD5 校验和(以允许测试媒体)。

    implantisomd5 /tmp/boot.iso
    

如果你需要更多帮助创建 Kickstart脚本,我建议从 Red Hat 官方文档开始。

相关内容