我可以从清单构建 Ubuntu ISO 吗?

我可以从清单构建 Ubuntu ISO 吗?

这个答案讨论 ISO 清单 -例子在这里。

是否可以从清单文件构建 ISO,或者清单文件只是 dpkg --get-selections放入文本文件中?

相关,有点:

答案1

filesystem.manifest 使用以下命令生成:

dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest

语法如下package_name version,例如:

 xserver-xorg-video-nouveau  1:0.0.16+git20110411+8378443-1

的格式dpkg --get-selections略有不同,package_name install

例子

xserver-xorg-video-nouveau  install 

因此你可以用多种方式使用该文件,

apt-get install -y $(awk '{print $1}' filesystem.manifest)

说实话,多年来制作了一些自定义 iso 后,它的工作原理有一个学习曲线。一旦你理解了一些事情,它就不太难了,只是所需的知识量比较大,而且没有单一、最新的信息来源。

您使用 2 个构建目录

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

风俗- 此目录包含最终 iso 中将包含的所有文件。它包含根文件系统、内核、initramfs 和 isolinux。

根文件系统- 此目录包含 live CD 文件系统,您可以压缩此目录(使用 mksquashfs)并将其包含在 CD 中。您可以使用 debootstrap 构建它(从头开始构建 live D),也可以从 ubuntu-desktop.iso 中提取文件系统(自定义 live CD)。有关详细信息,请参阅下面的 ubuntu wiki 链接。

关键点

1)了解 mksquashfs - 使用 mksquashfs 将根文件系统压缩为casper/filesystem.squashfs

sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2)了解 isolinux - 这使得 iso 可启动,以及您的 CD(启动)菜单。请参阅Arch Linux 维基 syslinux

您可以使用 grub2 替代 isolinux,但您需要了解 grub2 的工作原理 ;)。大多数 live CD 仍在使用 isolinux。

3)如何制作 initramfs。initramfs 是用于引导的第二个文件系统。通常,当您遇到问题(自定义引导映像不起作用、内核模块未加载)并且您无法理解原因时,查看根文件系统,答案很可能在 initramfs 中。

#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz

然后将新的 initrd.lz 移动到自定义构建目录,custom/casper/initrd.lz

4)casper。Casper,Casper 脚本位于 3 个位置,所有 3 个都可以发挥作用。它们都是 bash 脚本,在某些时候你几乎肯定会想要查看它们。

一个举办方 -/usr/share/initramfs-tools/scripts/casper

B. 根文件系统 - custom/usr/share/initramfs-tools/scripts/casper

C. 在 initramfs 中——查看 /scripts 目录。

Ubuntu 人卡斯珀

5)您可以对用户界面/应用程序进行自定义/usr/share/usr/share/gnome*例如,确切的位置随版本而变化,/usr/share/gnome-background-properties/ubuntu-wallpapers.xml这是一种经典且在各个版本之间相当标准。

6)如果您无法在 中进行自定义/usr/share/,请使用/etc/skel,这/etc/skel/.bashrc是一个经典方法,该文件将被复制到 ~/.bashrc 。您可以将各种 confg 文件放在那里,用于 firefox 或 gnome 或其他,但如果可能的话, /usr/share 更好(因设置而异)。

7)mkisofs - 使用 mkisofs 将构建目录转换为 iso

cd ~/custom
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .

8)持久性。您可以将持久性与许多 Live CD 一起使用,包括 ubuntu-desktop cd 和自定义 cd,这是由 casper 实现的。

A. root - casper 将在 / 上挂载标记为 cow overlay 的分区或文件casper-rw。如果您随后安装软件包或修改配置文件,则更改将在重启后保留。

谨慎使用。如果更新所有软件包,则会占用大量空间。我还发现这种方法有时存在错误。

B. 主页 - casper 将在 /home 上安装一个标记为 aas 的分区或文件home-rw作为 cow 覆盖。

我更喜欢这个,因为我的 Firefox 书签和私人数据将在启动过程中保存,而且我发现它更可靠。

持久主目录(更改为 casper-rw 以获得持久 / )

# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000

# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here

#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw

放入home-rw/(在分区的根目录中)或闪存驱动器(而不是在子目录中)。

当你启动 Live CD 时,按下F6键,他们Esc会将选项添加persistent到启动参数中,在“--”前面

quiet splash persistent --

然后 casper 启动脚本将自动找到并安装它。

Ubuntu 维基 持久性- ubuntu wiki 页面仅讨论了 casper-rw,但 home-rw 在 casper 脚本中被引用并且工作方式相同,只是名称有所改变。

这个帖子在 Ubuntu 论坛上查看屏幕截图演示(尽管选项不同)。

C. 您可以使用多种图形工具启用持久性,例如 unetbootin。图形工具(据我所知)使用casper-rw

好的,现在一旦你理解了所有这些,这两个页面将开始变得更有意义

从头开始制作 Ubuntu wiki Live CD

Ubuntu wiki 定制 Live CD

谷歌

你需要谷歌一下。你会在互联网上找到零碎的建议。

例子 :如何更改 Live CD 启动画面

Debian Live

现在您已经了解了所有这些,请使用Debian Live脚本。不要让名称欺骗您,这些脚本可以在任何 .deb 系统上正常工作,包括 Mint 和 Ubuntu。

安装

sudo apt-get install live-build

有一个图形界面

sudo apt-get install live-magic

现场魔术

了解 live-magic gui 可能会失败,就像 remastersys 和其他 gui 失败一样。在这种情况下,您可以退回到 live-build 脚本(live-magic 将生成一个构建目录)。

学习实时构建脚本和目录布局/结构需要一段时间

查看Debian Live 手册是的,它很长,只需一次处理一个 iso 即可。

实时构建脚本的优势在于,一旦您了解了实时 CD 的组件,脚本就会自动完成 90% 以上的构建,并且进行更改只需简单地编辑配置文件(通常)或有时构建 initramfs。

太长

如果这对你来说太长了,请深吸一口气,放松一下,然后一点一点地理解这些信息。我保证你会开始明白其中的意思,你会发现花时间是值得的。

如果您从另一套工具开始,再回到这套工具,经过几次 iso 之后,您就会欣赏这套说明 ;)

我的自定义 12.04 版本,它开箱即用,仅支持 gma500、2d(无 3d)(将在未来几天内向 gma 500 人群公开提供 iso)。

通用机械协会 500

相关内容