jrg*_*jrg 14 live-cd iso custom-distributions
是否可以从清单文件构建 ISO,或者清单文件只是
dpkg --get-selections放入文本文件中?
相关,排序:
Pan*_*her 23
filesystem.manifest 是使用以下命令生成的:
dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest
Run Code Online (Sandbox Code Playgroud)
因此package_name version,语法是,例如:
xserver-xorg-video-nouveau 1:0.0.16+git20110411+8378443-1
Run Code Online (Sandbox Code Playgroud)
格式dpkg --get-selections略有不同,package_name install
例子
xserver-xorg-video-nouveau install
Run Code Online (Sandbox Code Playgroud)
所以你可以使用该文件,可能不止一种方式,
apt-get install -y $(awk '{print $1}' filesystem.manifest)
Run Code Online (Sandbox Code Playgroud)
老实说,在多年来制作了一些自定义 iso 之后,它的工作方式有一个学习曲线。了解了一些东西,也不算太难,只是需要的知识量适中,没有单一的、最新的信息来源。
您使用 2 个构建目录
~/custom - build directory for the iso
~/rootfs - build directory for the root file system.
Run Code Online (Sandbox Code Playgroud)
custom - 此目录包含将进入最终 iso 的所有文件。它包含根文件系统、内核、initramfs 和 isolinux。
rootfs - 此目录包含 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
Run Code Online (Sandbox Code Playgroud)
2)了解isolinux - 这使得iso 可启动,以及您的CD(启动)菜单。参见Arch Linux Wiki syslinux。
您可以使用 grub2 作为 isolinux 的替代方案,但是您需要了解 grub2 的工作原理;)。大多数live CD 仍然使用isolinux。
3)如何制作initramfs。initramfs 是第二个文件系统,用于引导。通常,当您遇到问题(自定义引导映像不起作用,内核模块未加载)并且您不明白为什么查看根文件系统时,答案很可能在 initramfs.conf 中。
#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
Run Code Online (Sandbox Code Playgroud)
然后将新的 initrd.lz 移动到自定义构建目录, custom/casper/initrd.lz
4)卡斯帕。Casper 和 casper 脚本位于 3 个位置,并且所有 3 个都可以发挥作用。它们都是 bash 脚本,并且在某些时候您几乎肯定会想要查看它们。
主持人 - /usr/share/initramfs-tools/scripts/casper
B. 根文件系统——custom/usr/share/initramfs-tools/scripts/casper
C. 在 initramfs 中 - 查看 /scripts 目录。
5)你进行自定义,以在用户界面/应用程序/usr/share,/usr/share/gnome*例如精确位置与版本而变化,/usr/share/gnome-background-properties/ubuntu-wallpapers.xml是一个典型的和整个相当标准的版本。
6)如果您不能在 中进行自定义/usr/share/,请使用/etc/skel,这/etc/skel/.bashrc是一个经典,该文件被复制到 ~/.bashrc 。您可以将各种配置文件放在那里,用于 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 .
Run Code Online (Sandbox Code Playgroud)
8)坚持。您可以对许多 live CD 使用持久性,包括 ubuntu-desktop cd 和自定义 cd,这是由 casper 实现的。
A. root-casper 将casper-rw在 / 上挂载一个标记为牛覆盖的分区或文件。如果您随后安装软件包或修改配置文件,则更改将在重新启动后持续存在。
谨慎使用这个。如果更新所有包,将占用大量空间。我还发现这种方法有时会出错。
B. Home - casper sill 将标记为 aas 的分区或文件挂载home-rw为 /home 上的母牛覆盖。
我更喜欢这个,因为我的 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
Run Code Online (Sandbox Code Playgroud)
放入home-rw/(在分区的根目录中)或闪存驱动器(不在子目录中)。
当你启动 live CD 时,敲击F6键,他们Esc,将选项添加persistent到启动参数中,在 '--' 前面
quiet splash persistent --
Run Code Online (Sandbox Code Playgroud)
然后 casper 引导脚本会自动找到一个挂载它。
请参阅Ubuntu wiki Persistence - ubuntu wiki 页面仅讨论了 casper-rw,但在 casper 脚本中引用了 home-rw 并且工作方式相同,只是名称已更改。
请参阅Ubuntu 论坛上的这篇文章以了解屏幕截图(尽管有不同的选项)。
C. 您可以使用多种图形工具启用持久性,例如 unetbootin。图形工具(据我所知)使用casper-rw.
好的,现在一旦你理解了这一切,这两页就会开始变得更有意义
你将需要谷歌。你会在互联网上找到建议的片段。
现在您了解了所有这些,请使用Debian Live脚本。不要被这个名字骗了,这些脚本在任何 .deb 系统上都可以正常工作,包括 Mint 和 Ubuntu。
安装
sudo apt-get install live-build
Run Code Online (Sandbox Code Playgroud)
有图形界面
sudo apt-get install live-magic
Run Code Online (Sandbox Code Playgroud)

了解 live-magic gui 可能会失败,就像 remastersys 和其他 gui 失败一样。在这种情况下,您将退回到实时构建脚本(live-magic 将生成一个构建目录)。
学习实时构建脚本和目录布局/结构需要一段时间
参见Debian Live Manuel Aye,它很长,一次只完成一个 ISO。
实时构建脚本的优势在于,一旦您了解了实时 CD 的组件,脚本就会自动完成 90+% 的构建,而进行更改只需简单编辑配置文件(通常)或有时构建 initramfs。
如果这对您来说太长,请深呼吸,放松,并一次处理一部分信息。我保证它会开始变得有意义,你会发现时间是值得的。
如果您从另一个工具集开始,请回到这组工具,在几次 iso 之后,您将欣赏这组说明;)
我的自定义 12.04 版本,它支持开箱即用的 gma500,仅 2d(没有 3d)(将在接下来的几天内向 gma 500 人群公开提供 iso)。

| 归档时间: |
|
| 查看次数: |
6345 次 |
| 最近记录: |