定制Ubuntu Live CD镜像系统
从昨天到现在废了好大的劲儿才找出来了能够定制Ubuntu Live系统的方法,可是费了不少劲,花了不少的精力和时间,成功的那一瞬间连自己都感动了……(各位大神不要鄙视,俺只是菜鸟,能做到这一步正的不容易了)。
做出来的最终效果就是能够在Live CD中使用定制的“皮”,不再是Ubuntu官方的皮肤,同时软件包神马的也都能改变。十分渴望有高手能够指导一下有木有什么简单的方法来定制Live CD(如果里面的镜像系统不能修改就不要说了)!本文的方法来自:
https://help.ubuntu.com/community/LiveCDCustomization
我简单总结了一下自己的步骤。
一、准备工作
1、 Ubuntu原版镜像,这个是为了展开squashfs文件系统而准备的,我们需要它作为最基本的原型。
2、 两个工具,squashfs-tools和genisoimage,用apt-get命令即可
3、 加载squashfs模块。命令:$ sudo modprobe squashfs
二、展开光盘内容
将事前准备好的原版镜像进行展开,从而编辑/casper目录下的filesystem.squash文件。
具体步骤如下:
在你的目录下建立一个文件夹(我的是mylive),将光盘镜像拷贝到这个目录下,并且进入这个目录。然后建立一个mnt目录,把光盘镜像挂载到mnt中,命令为
$sudo mount –o loop Ubuntu-12.04.iso mnt
接下来,展开其中的其中的filesystem.squashfs镜像文件系统。
$mkdir extract-cd
$rsync --exclude=/mnt/casper/filesystem.squashfs -a mnt/ extract-cd
然后再挂载squashfs文件系统。
$mkdir squashfs
$sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
进行到这一步文件系统就算展开完毕了,但是对它是没有权限进行编辑的,还需要把其中的内容拷贝到别的目录下才能编辑,接下来做的就是这件事:
$mkdir edit
$sudo cp squashfs/* edit/
三、进行个性化定制
这里的个性化定制就决定了你最后生成的Live CD中的镜像系统是什么样子的,但是可修改的东西有很多,具体可做的修改可以参考我在上文中提到的Ubuntu官网来做,这里就不再赘述了。
四、重生成文件
1、 重生成需要安装的文件列表,命令如下:
$chmod +w extract-cd/casper/filesystem.manifest
$sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}/n' > extract-cd/casper/filesystem.manifest
$sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
$sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
$sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
2、 重生成squashfs文件系统
$sudo rm extract-cd/casper/filesystem.squashfs
$sudo mksquashfs edit extract-cd/casper/filesystem.squashfs
3、 重生成MD5校验码
$rm extract-cd/md5sum.txt
$cat extract-cd/md5sum.draft | grep -v md5sum.draft | grep -v isolinux/boot.cat > extract-cd/md5sum.txt
五、制作iso镜像文件
现在,在extract-cd的目录下已经得到了我们要用的Livd CD镜像系统了,最后一步只需要将其打包成iso即可了。不过,打包过程挺恶心的,我花了好长时间才找到了合适的参数配置,如下:
$cd extract-cd/
$sudo rm -f md5sum.txt
$sudo genisoimage -D -joliet-long -L -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat -o ../test.iso ~/mylive/extract-cd
对了,最后还要把挂载上得文件系统都卸载啊,不然系统的运行会乱掉的。好了,下载在mylive下就得到了一个名为test.iso的文件了,这就是我们做好的Live CD,剩下的就是测试并且刻录了。
最后再提一次,希望哪位大神有能够更加方便、可靠地定制Live CD的方法能够不吝赐教!
By Air_Fighter
2012.07.26