现场 CD 定制查询

现场 CD 定制查询

我有几个问题与使用以下教程定制 Ubuntu 12.04 Live CD 有关https://help.ubuntu.com/community/LiveCDCustomization

对我来说,可以修改到我们将新软件安装到 Live CD 的部分(第 6.1.2 节)。之后,我直接跳转到位于的高级自定义(第 6.7 节)https://help.ubuntu.com/community/LiveCDCustomization#Advanced_Customizations。我的问题是:-

1) 当我运行以下命令来挂载 live cd 时,系统会显示一条警告,提示 iso 以只读方式挂载。这样可以吗,还是应该可写?

2) 在文件夹 livecdtmp 中创建了三个文件夹。它们是 edit、extract-cd 和 mnt。我的问题是,我应该编辑哪个文件夹以便更改发生在“自定义 live cd”上,以及编辑哪个文件夹以进行自定义 Ubuntu 安装?

3)extract-cd、edit 和 mnt 文件夹有什么用?

4) 教程说,要为 GNOME 自定义背景,我必须编辑 /usr/share/gnome-background-properties/ubuntu-wallpapers.xml 。我应该编辑哪个文件或哪个文件夹中的文件,才能使更改在 Live cd 和自定义安装中都发生。

5)然后,进入高级定制 --> 内核更新,一旦进入 chroot,我就无法发出以下命令:-

sudo cp edit/boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz
sudo cp edit/boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.lz

它说文件夹不存在。这应该在 chroot 环境内部完成吗?

6)教程说,为了编辑 inird.lz 文件,我必须执行以下步骤。

# cd extract-cd/casper
# mkdir lztempdir
# cd lztempdir
# lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

这应该在我们最初准备的 chroot 环境中完成吗?单独编辑此文件是否会对自定义的 live cd 以及从该 live cd 进行的安装进行更改?

当我运行最后一条命令时,出现错误,存档过早结束,或者未找到文件?

从 # 符号来看,这意味着我应该在 chroot 环境中运行它。但问题是,每当我运行命令 cd extract-cd/casper 时,它都会说,没有这样的目录,这实际上是真的,因为挂载的是“edit”文件夹。那么,应该怎么做呢?

7) 'extracr-cd' 和 'mnt' 中的 /casper 文件夹中都有 initrd.lz 文件。我应该将内核文件复制到这两个文件夹中吗?我需要编辑哪一个才能获得更新的内核、新的 plymouth 主题等?

8) 我希望将 gnome-classic 设置为包含在 live cd 中?要如何才能在 live cd 和使用该 cd 进行的安装中同时拥有 gnome-classic?

9) 如何删除 lightdm 登录屏幕并恢复 Ubuntu 9.10 左右最初存在的类似 gdm 的登录屏幕?

更新:- 当我在 chroot 之外运行以下命令时,出现以下错误。

roshan@roshan-Studio-1558:~/initrd$ lzma -dc -S .lz ../livecdtmp/extract-cd/casper/initrd.lz | cpio -imvd --no-absolute-filenames

lzma: ../livecdtmp/extract-cd/casper/initrd.lz: File format not recognized
cpio: premature end of archive

答案1

Edit 是您要 chroot 到的目录,mnt 是您挂载只读 ISO 的位置​​,extract-cd 是提取的 ISO。ISO 是只读的,据我所知,它挂载在 mnt。您不需要编辑 mnt,只需编辑提取的 CD。完成后,您将制作自己的 ISO。据我所知,您在 LiveCD 中编辑的任何内容都将反映在已安装的系统中。任何具有 extract-cd、edit 或 mnt 等文件夹的内容都不会在 chroot 中完成。至于内核 - 您需要在此处使用自己的内核,然后您可以

sudo cp /path/to/vmlinuz extract-cd/casper/vmlinuz
sudo cp /path/to/initrd extract-cd/casper/initrd.lz

完成内核后:

sudo chroot edit
mkinitramfs -o /initrd.lz [kernel version]
exit
mv edit/initrd.gz extract-cd/casper/

然后按照指南清理。希望这有效!

答案2

维基上的这些说明非常过时,而且现在有 Ubuntu Builder 等工具可用时,这些说明相当复杂。由于您正在自定义 Gnome,我强烈推荐您按照以下步骤操作这个答案其中明确讨论了使用 Gnome-Classic 轻松定制 12.04 LiveCD。

对于您提出的问题,以下是答案:

  • 1、2、3:Ubuntu-Builder 不再需要,查看答案
  • 4 - 背景:查看答案, 部分5. 自定义 2:背景和主题
  • 5、6、7-内核更新:查看答案,只需sudo apt-get update && sudo apt-get dist-upgrade在文本中运行chroot从 Ubuntu-Builder 开始
  • 8 – Gnome-Classic 代替或补充 Unity:查看答案, 部分3.更新、添加Gnome Classic和其他包管理
  • 9-妊娠期糖尿病:查看答案sudo apt-get install gdm从 UB chroot 运行,并选择它而不是光调制在里面软件包弹出窗口

答案3

  • 1-没问题,iso 应该以只读方式安装。

  • 2,3 - 您主要更改 edit,因为这是“chroot”的位置。不过,当您更新内核时,您必须将内核和您在 chroot 中安装的 initrd.img-...“转储”到“extract-cd”中的 casper 文件夹中。因此,要更新内核:在 chroot 中,执行 apt-get install linux-mage-XXX-whatever 以获取新内核版本。这将安装两个东西:linux-image-XXX-whatever 内核映像和 /boot 目录中的 initrd-XXX-whatever(在 chroot 之外时,此目录将是 edit/boot)。如果您盲目地遵循 wiki,首先,将这两个转储到 extract-cd/casper 中,那么您的 initrd 会有两个问题:一是它是使用 gzip 压缩的(扩展名为 .gz),而您需要将其作为 initrd.lz(使用 lzma 压缩),二是安装新内核包时附带的 initrd 可能没有 squashfs 模块支持,无法读取您的 live-cd。这两个问题都可以在 chroot 内部解决(当“edit”文件夹暂时成为您的“root”环境时,通过使用 mkinitramfs 为您想要更新到的新内核版本生成一个新的 initrd.lz。这可以一次性解决两个问题。

  • 5 应该在 chroot 环境之外完成,在 chroot 内部使相关文件运行之后(请参阅我上面的评论)

  • 6 这是在 chroot 之外完成的,但只有当您确实想向 initrd 添加新模块和其他内容时才需要这样做。否则请遵循我上面的评论,使用 mkinitramfs 重新生成 initrd.lz。

  • 7 由于 mnt 是只读的,因此您无需在此处执行任何操作。所有内容都已复制到“edit”(解压后的 squash-fs 文件)或“extract-cd”。您需要更新 extract-cd/casper,以便 vmlinuz 和 initrd.lz 实际上是您想要的新版本。

相关内容