盒子
盒子

系统安装与备份

本文主要介绍将ubuntu系统备份成一个LiveCD的方法,做个小结。

菜鸟就是有点苦逼,装系统这种事干的太多了,于是就来总结下,希望早点告别菜鸟,特写下此文。

首先,介绍烧写iso文件到U盘的方法,我一般使用的软件有两个,即UltraISO和Universal-USB-Installer,前者很强大,后者对Linux系统的iso文件的烧写比较给力。

接着,就要说一下本文的重点,将现有的ubuntu系统备份成liveCD。

我开始尝试的是手动方法,后来经人指导,知道了remastersys,用法很简单,基本操作方法如下:

1
2
3
4
5
sudo remastersys backup myback.iso    #系统备份到myback.iso. 
sudo remastersys dist #产生一个可发布(包含个人文档)的 livecd/dvd
sudo remastersys dist cdfs #产生一个纯净的可发布的 livecd/dvd
sudo remastersys dist iso mubuntu.iso #产生一个可发布(包含个人文档)的
sudo remastersys clean #清除由 remastersys产生的临时文件

然后是半自动化的方法,参考文章将现有Ubuntu系统做成LiveCD

这里列举主要操作步骤:

1.当前操作系统备份成squashfs归档文件,有很多工具,其中最简便的就数Live Ubuntu Backup V2.2了,尤其是它还支持中文提示,在http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=206287 可以下载,并且还有使用说明。这是一个shell脚本写成的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文件就是我们想要的。

2.再将ubuntu-10.10-desktop-i386.iso拷贝到用户目录下,比如/home/jxg/下,执行sudo mkdir /home/jxg/mnt创建一个目录.
然后执行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目录下.下面,我们要对/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,这两个文件实际上是系统所装包的列表,通过以下方式更新

1
2
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文件了。