SDB:创建定制化安装源

跳转到:导航搜索

简介

本文档描述了如何创建一个定制化的安装源,稍后可用于通过 YaST 进行安装,主要用于调试目的。

对于 openSUSE 11.0 及更高版本,请使用本文档。

这有什么用?

假设您想调试安装过程中的某个问题。或者测试您报告的错误是否已修复,但该修复尚未包含在官方介质(DVD、FTP 镜像等)中。您可能有一个想要测试的补丁,整个修复的 rpm 包,或者您可能需要添加一些额外的软件包、脚本或库来简化调试,并希望在安装过程中使用它们。

对于所有这些,您都需要定制化的安装源。

如何操作(逐步指南)

1. 首先,镜像一个现有的安装源。例如:

 wget -r -np -nH ftp://cool-suse-mirror.example.org/pub/suse/$build

用于网络安装源。或者,您可以下载 DVD iso,通过 loopback 设备挂载它,并将它的内容复制到您的本地目录。

2. 在包含下载的安装源数据的本地目录中,执行:

 cd boot/$your_arch
 mkdir inst-sys

其中 $your_arch 代表您想要使用的架构(i386、x86_64、ppc)

3. 暂时将名为 boot/$your_arch/root 的镜像挂载到 /mnt 目录,通过 loopback 设备:

 mount -o loop root /mnt

注意:这种挂载 cramfs 镜像不是跨平台的,也就是说,您通常无法在 i386 架构上挂载和创建来自 ppc 镜像的 inst-sys。

4. 将 /mnt 目录中的目录结构复制到 inst-sys(由于需要保留硬链接,您需要使用 rsync;简单的 cp 不够,因为它无法做到这一点)。

rsync -AHPSXav /mnt/ inst-sys/

5. 为了让 YaST 优先使用 inst-sys 目录而不是 root 镜像,并在出现问题时能够回滚,备份 root 镜像:

 mv root root.backup

6. 现在您已经准备好了 inst-sys 目录结构(请注意,它实际上与真实运行系统中的目录结构类似),您可以对它进行任何操作 - 应用补丁,解包 rpm 内容(为此使用 rpm 的 content.cpio),编辑文件,创建新的错误……

7. 准备好后,通过 nfs 导出您的包含定制化安装源数据的本地目录。您可以使用 yast2-nfs-server 模块来完成此操作,或者通过编辑 /etc/exports 文件手动完成(不要忘记之后执行 exportfs -rv)。

您甚至可以从中创建新的 ftp 或 http 安装源,但 nfs 方式是最简单的方法。由于通过 http 或 ftp 访问的 inst-sys 目录无法挂载,您必须重新创建 root 镜像。

 mkfs.cramfs inst-sys root

8. 您几乎完成了。现在,从 mini-iso 启动您的测试计算机,并通过在启动命令行中设置此参数将安装源指向您的定制化源:

 install=nfs://your.server.ip:/directory/on/your/server

(有关启动参数的更多信息,请参阅 Linuxrc 文章)

就这样。享受安装调试和测试吧 :-)

制作定制化安装 ISO

此过程的一个常见用途是获取官方分发 ISO 并创建一个添加 AutoYaST 文件或具有一组更新的软件包的定制 ISO。显然,最好的方法是使用 OBS 并创建您自己的项目。但是,有时由于网络限制、源限制等原因,通过本地修改分发 ISO 这样做“更容易”。

为此,我们需要:1. 解包官方分发 ISO

 mkdir $HOME/ISOBuild
 sudo mount -o loop openSUSE-official.iso /mnt
 rsync -AHPSXav /mnt/ $HOME/ISOBuild/

2. 进行所需的本地编辑

这可能是使用不同版本的软件包重建基本仓库,更改安装程序逻辑,更新 grub 菜单等。示例

 cp My-AutoYaST.xml $HOME/ISOBuild/autoinst.xml

3. 压缩并创建定制 ISO

 xorriso -as mkisofs -no-emul-boot -boot-load-size 4 -boot-info-table -iso-level 4 -b boot/x86_64/loader/isolinux.bin -c boot/x86_64/loader/boot.cat -eltorito-alt-boot -e boot/x86_64/efi -no-emul-boot -o $HOME/openSUSE-MyCustom.iso $HOME/ISOBuild
 isohybrid -u $HOME/openSUSE-MyCustom.iso

将您的镜像刻录到您将要使用的任何介质(DVD/闪存驱动器/等)。享受您的定制化安装 ISO。