将现有Ubuntu系统做成LiveCD

系统 Linux
本篇文章主要是向读者介绍了一种可以将当前的Ubuntu操作系统打包,并制成LiveCD的方法,个人觉得非常实用,在这里推荐给大家!

将现有Ubuntu系统制作成LiveCD包的工具有不少,其中比较出名的就是UCK和Reconstructor。但是这两个工具都不能把当前的操作系统制成LiveCD,这里我要介绍另外一种方法,可以将当前的操作系统打包,并制成LiveCD。

制作LiveCD包,需要与当前Ubuntu版本相同的desktopd ISO安装包,我这里用到的是ubuntu-10.10-desktop-i386.iso,这个ISO文件实际上就是一个现成的LiveCD,我们只要利用它的结构,就可以方便快捷的生成自己的最小系统LiveCD了。这里主要做的事情是首先,将已安装操作系统上的文件备份成一个squashfs归档文件,然后将ubuntu-10.10-desktop-i386.iso里的内容拷贝出来,用新的 squashfs文件替换掉里面已有的文件,再调整一些配置,然后将其生成新的ISO文件,再将其刻录成CD或者制成USB引导盘,这个过程就算大功告成了。

但是如果当前的操作系统比较大,比如8、9个G会出什么结果,我并没测试,所以也不能保证这样的LiveCD就一定能够很好的运行。

1. 将当前操作系统备份成squashfs归档文件,有很多工具,其中最简便的就数Live Ubuntu Backup V2.2了,尤其是它还支持中文提示,这是一个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,这两个文件实际上是系统所装包的列表,通过以下方式更新

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

【编辑推荐】

  1. Ubuntu网卡IP设置
  2. Ubuntu 11.04的四大新特性
  3. Ubuntu系统下实现终端嵌入桌面
  4. Ubuntu 11.04 Natty常见问题答疑
  5. Ubuntu 11.10可能不提供 Gnome Classic 界面
     
责任编辑:冯宇 来源: Linux社区
相关推荐

2011-04-01 14:36:11

将MRTG做成系统服务

2011-09-19 11:01:10

ubuntu11.04LiveCD

2009-06-11 14:43:48

ubuntufedoragrub

2010-03-12 14:44:54

Ubuntu Live

2011-02-22 08:49:38

NoSQL

2011-04-29 09:09:40

Ubuntu 11.0

2010-06-13 13:17:51

Ubuntu9.10

2011-01-13 16:59:12

2015-06-23 22:32:59

2022-05-05 11:39:07

智能技术智能建筑

2011-07-26 10:15:19

CentOS 6.0

2013-11-25 09:07:31

Ubuntu桌面系统移动系统

2009-10-23 08:32:52

Linux操作系统Ubuntu

2010-06-13 10:11:46

Ubuntu Grub

2012-02-09 18:48:03

云计算CDN

2012-06-13 11:06:05

WiFi

2009-02-18 09:09:03

惠普Ubuntu

2012-07-09 14:45:34

Ubuntulinux

2010-06-17 12:48:05

livecd 修复Gr

2016-10-28 05:26:54

SSD闪存科技新闻早报
点赞
收藏

51CTO技术栈公众号