制做LiveCD包的工具备很多,其中比较出名的就是UCK和Reconstructor。可是这两个工具都不能把当前的操做系统制成LiveCD,备份当前操做系统,并制成LiveCD的工具也有,好比国人编写的工具UClone,它的使用说明在http://www.linuxidc.com/Linux/2011-04/34098.htm。这里我要介绍另一种方法,能够将当前的操做系统打包,并制成LiveCD。node
制做LiveCD包,须要与当前Ubuntu版本相同的desktopd ISO安装包,我这里用到的是ubuntu-10.10-desktop-i386.iso,这个ISO文件实际上就是一个现成的LiveCD,咱们只要利用它的结构,就能够方便快捷的生成本身的最小系统LiveCD了。这里主要作的事情是首先,将已安装操做系统上的文件备份成一个squashfs归档文件,而后将ubuntu-10.10-desktop-i386.iso里的内容拷贝出来,用新的 squashfs文件替换掉里面已有的文件,再调整一些配置,而后将其生成新的ISO文件,再将其刻录成CD或者制成USB引导盘,这个过程就算大功告成了。linux
可是若是当前的操做系统比较大,好比八、9个G会出什么结果,我并没测试,因此也不能保证这样的LiveCD就必定可以很好的运行。shell
1.将当前操做系统备份成squashfs归档文件,有不少工具,其中最简便的就数Live Ubuntu Backup V2.2了,尤为是它还支持中文提示,在http://www.linuxidc.com/Linux/2011-04/34096.htm 能够下载,而且还有使用说明。这是一个shell脚本写成的Ubuntu备份工具,直接运行便可。ubuntu
将lub拷贝到/home下,$sudo chmod 777 /home/lub 而后执行$sudo /home/lub -b,而后按e或c来选择是英文提示,仍是中文提示。第一次执行时,可能会提示须要安装lupin-casper和squashfs-tools,其中 lupin-casper能够忽略,而squashfs-tools必须安装,运行$sudo apt-get install squashfs-tools便可。工具
以后再次运行$sudo /home/lub -b,依提示运行,就能在用户文件夹下生成一个backup-2011.01.05的目录了,其中有的backup-2011.01.05.squashfs文件就是咱们想要的。oop
2.再将ubuntu-10.10-desktop-i386.iso拷贝到用户目录下,好比/home/jxg/下,测试
执行$sudo mkdir /home/jxg/mnt 建立一个目录,ui
而后执行$sudo mount -o loop /home/jxg/ubuntu-10.10-desktop-i386.iso /home/jxg/mnt,将ISO挂载到/home/jxg/mnt下,而后用执行$sudo mkdri /home/jxg/livecd 建立一个livecd的工做目录操作系统
再用 $sudo rsync --exclude=/home/jxg/mnt/casper/filesystem.squashfs -a /home/jxg/mnt/ /home/jxg/livecd 将/home/jxg/mnt下的内容除了casper/filesystem.squashfs,同步到了/home/jxg/livecd目录下htm
下面,咱们要对/home/jxg/livecd/casper/目录下的filesystem.squashfs、 filesystem.manifest、filesystem.manifest-desktop这三个文件进行操做,因为它们只有读权限,因此先执行$sudo chmod o+w /home/jxg/livecd/casper/filesystem.*
将刚才lub生成的那个backup-2011.01.05.squashfs文件,拷贝成/home/jxg/livecd/casper/filesystem.squashfs
执行: $sudo cp /home/jxg/backup-2011.01.05/backup2011.01.05.squashfs /home/jxg/livecd/casper/filesystem.squashfs
此外,还要更新/home/jxg/livecd/casper/目录下的filesystem.manifest和filesystem.manifest-desktop,这两个文件其实是系统所装包的列表,经过如下方式更新
$sudo dpkg -l | grep ii | awk '{print $2,$3}' > /home/jxg/livecd/casper/filesystem.manifest
$sudo dpkg -l | grep ii | awk '{print $2,$3}' > /home/jxg/livecd/casper/filesystem.manifest-desktop
实际上filesystem.manifest-desktop和filesystem.manifest是有所不一样的,主要是少了 ubiquity casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4 这几个包,咱们这里忽略了这些影响。
3.退回的LiveCD的工做目录 /home/jxg/livecd 下,
执行$sudo rm md5sum.txt
再执行$find -type f -print0 | sudo xargs -0 md5sum | grep -v ./isolinux/ | grep -v ./md5sum.txt | sudo tee md5sum.txt
更新原来的md5sum
4.将工做目录下的内容打包成ISO
先运行$sudo apt-get install mkisofs 安装ISO打包工具,
执行$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-jxg-test.iso .
这个必定要在工做目录的跟下执行,而且命令最后的 . 必定不要忘记。命令完成后,就能够在上一级的目录下发现ubuntu-jxg-test.iso文件了。