如何创建修改后的 Fedora ISO

如何创建修改后的 Fedora ISO

我的目标是创建一个自定义的 fedora 20 netinst iso 映像。我曾多次使用 scientific linux 执行此操作,以便向映像添加自定义 kickstart 文件。但 fedora 似乎以不同的方式工作以支持 efi。需要哪些命令才能从官方 iso 文件的修改内容创建可启动的 fedora 映像?

答案1

你看过 Fedora 文档吗:如何创建 Fedora 安装 ISO 以供测试


本页向您展示如何构建可用于测试的 Fedora ISO 映像。示例引用了 Fedora Rawhide 存储库,但相同的说明适用于任何版本的 Fedora。本教程要求您打开 root shell。要访问 root shell,请打开终端并运行命令 su -,并提供 root 密码。

设置

为了创建 Fedora ISO 映像,您必须使用与所需 ISO 映像版本匹配的 Fedora 版本。例如,要创建 Fedora Rawhide 映像,您需要运行 Fedora Rawhide。本文档中的示例使用 Package-x-generic-16.pngmock 来模拟目标环境并创建 ISO 映像。如果您已经有可用的系统运行目标版本,则无需使用 mock。

首先,安装必要的软件包

yum install mock

调整模拟配置以允许支持组合图像生成所需的绑定挂载。将以下行添加到适当的模拟配置中。例如,对于 Fedora Rawhide,更新 /etc/mock/fedora-rawhide-x86_64.cfg 以包含以下内容:

config_opts['plugin_conf']['bind_mount_enable'] = True
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev','/dev/'))
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/pts','/dev/pts/'))
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/shm','/dev/shm/'))

Initialize the mock chroot

mock -r fedora-rawhide-$(uname -i) --init

Note.png

幕后... Mock 在幕后做了很多工作。如果您想查看它在 chroot 中运行了哪些命令,请添加 --verbose 选项。

通过将软件包安装到 chroot 中来准备运行 pungi 的模拟 chroot

mock -r fedora-rawhide-$(uname -i) --install spin-kickstarts pungi ${EDITOR:-vi}

创建本地镜像(可选)

此部分是可选的。您可以通过宽带连接使用附近的官方 Fedora 镜像。但是,如果您定期参与测试,您可能会发现在本地镜像 Rawhide 很有用。请注意,Package-x-generic-16.pngmirrormanager 包在某些情况下可能会有用。有关更多信息,请参阅详细的 MirrorManager 页面。

如果你没有在快速的本地链接上使用 Rawhide,你可能希望使用 rsync 在本地镜像它。在以下位置查找附近的镜像:http://mirrors.fedoraproject.org

mkdir -p /var/www/fedora/linux/development/x86_64/os
cd /var/www/fedora/linux/development/x86_64/os
rsync -Pavy --delete-after <MIRROR_NEAR_YOU>::/pub/fedora/linux/development/rawhide/$(uname -i)/os/ .

在模拟 chroot 中,编辑 pungi 使用的 kickstart 配置文件。

mock -r fedora-rawhide-$(uname -i) --shell ${EDITOR:-vi} /usr/share/spin-kickstarts/fedora-install-fedora.ks

删除(或注释掉)现有的 repo --name=fedora 行,并为本地镜像添加新条目。使用上面的示例,您最终会得到...

repo --name=fedora --baseurl=file:///var/www/fedora/linux/development/$basearch/os

完成后,保存更改并按 Ctrl-D 或输入 logout 退出 chroot

构建 boot.iso

本节假设您已安装 Package-x-generic-16.pngmock 软件包并按照 #Setup 中的建议准备了模拟 chroot。如果您尚未完成这些步骤,请立即完成。本节仅提供有关创建 PXEboot 和 boot.iso 映像的说明。要创建可安装的 -DVD.iso 映像,请参阅 #Build_a_DVD_ISO。

在模拟 chroot 中激活 shell

mock -r fedora-rawhide-$(uname -i) --shell

接下来,创建 DVD(这可能需要一段时间)

pungi --nosource --nodebuginfo -G -C -B \
  --flavor Fedora --name Fedora --ver rawhide \
  -c /usr/share/spin-kickstarts/fedora-install-fedora.ks

如果上一个命令完成且没有错误,则现在您的 chroot 中已有 PXEboot 映像和 boot.iso。退出模拟 shell,并将 ISO 映像从 chroot 中复制出来。

mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/os/images/boot.iso /tmp/

构建 DVD.iso

本部分假设您已安装 Package-x-generic-16.pngmock 包并按照 #Setup 中的建议准备好模拟 chroot。如果您尚未完成这些步骤,请立即完成。

Activate a shell inside the mock chroot

mock -r fedora-rawhide-$(uname -i) --shell

Next, create a DVD (this may take a while)

pungi --nosource --nodebuginfo \
  --flavor Fedora --name Fedora --ver rawhide \
  -c /usr/share/spin-kickstarts/fedora-install-fedora.ks

如果您已经按照 #Build_a_boot.iso 中的步骤操作,则可以通过指示 pungi 仅构建 -DVD.iso 映像来节省时间。运行上述 pungi 命令时,添加 -I 参数以仅构建 ISO 文件,并跳过之前执行的步骤。

如果上一个命令完成且没有错误,则您的 chroot 中现在有一个 DVD ISO 映像。在继续之前,请使用 sha256sum 命令验证 ISO 映像

cd /rawhide/Fedora/$(uname -i)/iso
sha256sum -c Fedora-rawhide-$(uname -i)-CHECKSUM 

退出模拟 shell,并将 ISO 映像从 chroot 中复制出来并享受乐趣...

mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/iso/Fedora-rawhide-$(uname -i)-DVD.iso /tmp/

相关内容