制定 LiveCD 可参照这个来做:https://help.Ubuntu.com/community/LiveCDCustomization
我们要做的 *.rofs 则是要把增加的内容或修改的内容分离出来,
所以可以用 unionfs 或 aufs 文件系统把制定的内容分离出来,
但unionfs与aufs好象不能嵌套使用,所以在 Live CD 环境下不能用此法,
1、安装squashfs-tools(用来压缩)
sudo apt-get install squashfs-tools
sudo modprobe squashfs
2、挂载 Live CD 文件系统
sudo mount -o loop ubuntu-*.iso /cdrom
mkdir ~/livecd
sudo mount -t squashfs -o loop /cdrom/casper/filesystem.squashfs ~/livecd
3、使用unoinfs文件系统
mkdir ~/rwfs
mkdir ~/edit
sudo mount -t unionfs -o dirs=~/rwfs=rw:~/livecd=ro none ~/edit
4、进入edit中
sudo cp /etc/resolv.conf ~/edit/etc/
sudo cp /etc/hosts ~/edit/etc/
sudo chroot ~/edit
mount -t proc none /proc
mount -t sysfs none /sys
export HOME=/root
export LC_ALL=C
5、添加软件,进行设置等:
6、打包:
rm -rf /tmp/*
rm /etc/reumount /proc
umount /syssolv.conf
umount /sys
exit
sudo mksquashfs rwfs *.rofs
aufs 就是另一个联合文件系统,可用来替代 unionfs ,(unionfs 有 bug,不好用)
它的作用就是把多个文件系统或者说是文件夹联合起来,变成一个文件系统。
所有的Live CD要正常使用,都要用到这样的文件系统,因为Live CD 是只读的,而运行系统则要写入的。
一般Live CD启动时,会从内存中取出一部分做成虚拟磁盘,与 Live CD 联合起来,这样就把运行中的数据写入在虚拟磁盘中了,
当然也可以用一个分区,或其它文件夹来联合起来,这就是Live CD能保存数据的原理。
aufs 比较成熟,很多Live CD 已经在用它。
制作*.rofs法二 (feisty中文包就是这样做出来的,呵呵)
1、先用本引导程序启动,用ubuntu.fs文件保存配置,(选用256mb就可以了)
启动后,设置网络及下载的软件源,更新软件包列表。
2、接下来就要安装或制定程序,为了把安装的程序与个人或硬件信息分开,则必须要用新的ubuntu.fs文件来保存数据。
重启到XP或可操作的系统中,把 ubuntu.fs 重命名为 01.rofs
再解压一个新ubuntu.fs文件(可根据安装程序大小来选用ubuntu.fs大小),或在Linux分区上用一个文件夹来保存数据。
3、重启,进入到ubuntu中用新立得安装程序,并设置、配置系统。
为了后面的压缩,请安装 squashfs-tools 软件。
由于是在本live CD中安装的,故你可以看到当前的效果。
清除下载的软件包: sudo apt-get clean
4、制作*.rofs ,
cd /hd_rwfs/ubuntu.fs
mksquashfs etc bin usr opt var ... /media/d_win/feisty/02.rofs
在这里要排除 hd_rofs hd_rwfs home root 文件夹,
但不知mksquashfs 的 -e 怎么没有作用,只能用上在的命令做了。
再把原来的 ubuntu.fs 重命名或删去,用新的ubuntu.fs 可做出 03.rofs 04.rofs.......
在wsky586的要求下,重新做了下,修正一个小问题,
就是第二次以后的启动,不能自己挂载相关分区,
gutsy的引导程序做好后,没怎么说明,现在说明下新功能:
就是在硬件变化时,也就是 lspci 变化时,会自动重新配置fstab和显卡驱动
很适合放在U盘上和移动硬盘上,到别人机子上可方便使用。
欢迎大家测试。