將現(xiàn)有Ubuntu系統(tǒng)做成LiveCD
將現(xiàn)有Ubuntu系統(tǒng)制作成LiveCD包的工具有不少,其中比較出名的就是UCK和Reconstructor。但是這兩個(gè)工具都不能把當(dāng)前的操作系統(tǒng)制成LiveCD,這里我要介紹另外一種方法,可以將當(dāng)前的操作系統(tǒng)打包,并制成LiveCD。
制作LiveCD包,需要與當(dāng)前Ubuntu版本相同的desktopd ISO安裝包,我這里用到的是ubuntu-10.10-desktop-i386.iso,這個(gè)ISO文件實(shí)際上就是一個(gè)現(xiàn)成的LiveCD,我們只要利用它的結(jié)構(gòu),就可以方便快捷的生成自己的最小系統(tǒng)LiveCD了。這里主要做的事情是首先,將已安裝操作系統(tǒng)上的文件備份成一個(gè)squashfs歸檔文件,然后將ubuntu-10.10-desktop-i386.iso里的內(nèi)容拷貝出來(lái),用新的 squashfs文件替換掉里面已有的文件,再調(diào)整一些配置,然后將其生成新的ISO文件,再將其刻錄成CD或者制成USB引導(dǎo)盤,這個(gè)過(guò)程就算大功告成了。
但是如果當(dāng)前的操作系統(tǒng)比較大,比如8、9個(gè)G會(huì)出什么結(jié)果,我并沒(méi)測(cè)試,所以也不能保證這樣的LiveCD就一定能夠很好的運(yùn)行。
1. 將當(dāng)前操作系統(tǒng)備份成squashfs歸檔文件,有很多工具,其中最簡(jiǎn)便的就數(shù)Live Ubuntu Backup V2.2了,尤其是它還支持中文提示,這是一個(gè)shell腳本寫成的Ubuntu備份工具,直接運(yùn)行即可。將lub拷貝到/home下,執(zhí)行:
$sudo chmod 777 /home/lub
然后執(zhí)行:
$sudo /home/lub -b
然后按e或c來(lái)選擇是英文提示,還是中文提示。第一次執(zhí)行時(shí),可能會(huì)提示需要安裝lupin-casper和squashfs-tools,其中 lupin-casper可以忽略,而squashfs-tools必須安裝,運(yùn)行$sudo apt-get install squashfs-tools即可。
之后再次運(yùn)行$sudo /home/lub -b,依提示運(yùn)行,就能在用戶文件夾下生成一個(gè)backup-2011.01.05的目錄了,其中有的backup-2011.01.05.squashfs文件就是我們想要的。
2. 再將Ubuntu-10.10-desktop-i386.iso拷貝到用戶目錄下,比如/home/jxg/下,
執(zhí)行$sudo mkdir /home/jxg/mnt 創(chuàng)建一個(gè)目錄,然后執(zhí)行
$sudo mount -o loop /home/jxg/Ubuntu-10.10-desktop-i386.iso /home/jxg/mnt
將ISO掛載到/home/jxg/mnt下,然后用執(zhí)行$sudo mkdri /home/jxg/livecd 創(chuàng)建一個(gè)livecd的工作目錄。再用
$sudo rsync --exclude=/home/jxg/mnt/casper/filesystem.squashfs -a /home/jxg/mnt/ /home/jxg/livecd
將/home/jxg/mnt下的內(nèi)容除了casper/filesystem.squashfs,同步到了/home/jxg/livecd目錄下。
下面,我們要對(duì)/home/jxg/livecd/casper/目錄下的filesystem.squashfs、 filesystem.manifest、filesystem.manifest-desktop這三個(gè)文件進(jìn)行操作,由于它們只有讀權(quán)限,所以先執(zhí)行
$sudo chmod o+w /home/jxg/livecd/casper/filesystem.*
將剛才lub生成的那個(gè)backup-2011.01.05.squashfs文件,拷貝成/home/jxg/livecd/casper/filesystem.squashfs,執(zhí)行:
$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,這兩個(gè)文件實(shí)際上是系統(tǒng)所裝包的列表,通過(guò)以下方式更新
$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
實(shí)際上filesystem.manifest-desktop和filesystem.manifest是有所不同的,主要是少了 ubiquity casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4 這幾個(gè)包,我們這里忽略了這些影響。
3. 退回的LiveCD的工作目錄 /home/jxg/livecd 下,執(zhí)行
$sudo rm md5sum.txt
再執(zhí)行
$find -type f -print0 | sudo xargs -0 md5sum | grep -v ./isolinux/ | grep -v ./md5sum.txt | sudo tee md5sum.txt
更新原來(lái)的md5sum
4. 將工作目錄下的內(nèi)容打包成ISO
先運(yùn)行$sudo apt-get install mkisofs 安裝ISO打包工具,執(zhí)行
$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
這個(gè)一定要在工作目錄的跟下執(zhí)行,并且命令最后的 . 一定不要忘記。命令完成后,就可以在上一級(jí)的目錄下發(fā)現(xiàn)Ubuntu-jxg-test.iso文件了。
【編輯推薦】