2006/09/14

TLD Live

正在把 Thiz Linux Live CD 改造成一個個的模塊, 代替原來一個600M的filesystem image。
方法:
1. 把原来 live CD 的 /casper/filesystem.squashfs (整个系统的映象文件) 解开,放到一個新目录(例如 /mnt/base)。
2. 用 chroot 在里面执行 apt-get remove thizoffice*, 然后用 dpkg --purge 移去所有 Thiz Office 有关的文件。
3. 把/mnt/base的内容,重新制作成一个 "基本系统" squashfs 文件。
4. 新建另一个目录,用来制作unionfs, 例如 /mnt/thizoffice 。
5. 确定已经安装unionfs-utils 。
6. 制作一个新的合拼用目录( 例如 /mnt/union ),把刚才的目录(例如 /mnt/base 和 /mnt/thizoffice) 合拼成一个新目录, 并且用 thizoffice 目录作为 base 目录的覆盖(overlay): mount -t unionfs -o dirs=/mnt/thizoffice=rw:/mnt/base=ro unionfs /mnt/union
7. 执行 mount 指令之后, /mnt/union 便成为一个新的文件系统,内容是 /mnt/base 加上 /mnt/thizoffice 的了,而 /mnt/base 是只读, /mnt/thizoffice 是可写入。
8. 在 /mnt/union 内用chroot 加上 apt-get, 安装 Thiz Office 相关软件包。
9. 正常的话应该可以在 /mnt/thizoffice 中看到有新文件,这些就是在 /mnt/union 中,但不在/mnt/base 中的文件了。
10. 把 /mnt/union 目录卸载掉,然后把 /mnt/thizoffice 的内容制作成一个 squashfs 文件,例如 thizoffice.squashfs。
11. 把 filesystem.squashfs 和 thizoffice.squashfs 一拼放到光盘中的 /casper 目录中。
12. 有两点要留意的是, 要支持这个新的文件系统合拼, 要用新一点的 casper 和 udev 软件包,另外就是squashfs的文件名称,在live CD系统开机时会顺字母次序装载的,所以建议用 00-tld-base.squashfs, 10-thizoffice.squashfs 之类的方式命名。