最近看到论坛很多朋友抱怨: 每次重装ubuntu之后,都要重复安装中文支持,配置系统等工作。如果能定制ubuntu的livecd,事先把这些工作做了,就可以省下不少时间了。
这可以通过定制ubuntu-livecd的iso来实现,为什么不选alternate,先看它们的区别:
ubuntu-8.04-alternate-i386.iso VS ubuntu-8.04-livecd-i386.iso
alternate里面是一大堆的按顺序排列的包,安装时可以选择desktop,server,然后根据选择安装不同的包。
livecd里面最大的文件是一个文件系统映像,即filesystem.squashfs,其实就是squashfs格式的压缩包。
下面以 ubuntu-8.04-desktop-i386.iso为例,在ubuntu-804测试通过:
1。 取出iso里面的所有内容
sudo mkdir oldiso newiso sudo mount ubuntu-8.04-desktop-i386.iso oldiso -o loop sudo cp oldiso/* newiso/ -rp sudo umount oldiso
2。 解压filesystem.squashfs,必须解压到linux分区, 它位于newiso/casper/filesystem.squashfs
sudo unsquashfs newiso/casper/filesystem.squashfs
耐心等待,解压出来是一个squashfs-root目录,大小约是原来的3倍左右,新安装的系统是不是差不多是这个大小呢?
3。开始定制系统
sudo cp /etc/resolv.conf squashfs-root/etc sudo chroot squashfs-root
mount none /proc -t proc apt-get update sudo apt-get install language-pack-gnome-zh language-pack-zh ttf-arphic-uming ttf-wqy-zenhei ## 安装中文支持,和中文字体
apt-get clean ##删除文件列表包 autoremove ##删除旧版本包 rm /etc/resolv.conf umount /proc
搞定之后,按ctrl+d 退出系统!!!
4.生成安装软件列表
sudo chroot squashfs-root dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee newiso/casper/filesystem.manifest
sudo cp -v newiso/casper/filesystem.manifest{,-desktop}
5. 重新压缩映像。
删掉原来newiso/casper/filesystem.squashfs,还是先备份吧。。
sudo mksquashfs squashfs-root newiso/casper/filesystem.squashfs ##等待一段时间
6. 编辑diskdefines,这里定义一些版本信息。
nano newiso/README.diskdefines
$ cat README.diskdefines
#define DISKNAME Ubuntu 8.04.1 "Hardy Heron" - Release i386
#define TYPE binary
#define TYPEbinary 1
#define ARCH i386
#define ARCHi386 1
#define DISKNUM 1
#define DISKNUM1 1
#define TOTALNUM 0
#define TOTALNUM0 1
7. 生成各个文件的md5值.
sudo -s<br /> (cd newiso && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)<br /> exit
8. 重新制作iso
cd newiso<br /> sudo mkisofs -r -V "my ubuntu" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o "../myubuntu-804-livecd-iso" .<br /> cd ../ ### 这才是最重要的
定制好的iso文件是:myubuntu-804-livecd-iso, 先用虚拟机器试试吧。。 kvm/qemu用以下命令:
sudo kvm -cdrom myubuntu-804-livecd-iso -localtime -m 300 ##300是分配的内存
我还写过一个帖子,把当前使用的ubuntu做成livecd/usb,上述步骤只是它的一个部分。从中可以看出制作基于ubuntu发行版的思路来。
希望对朋友们有用,欢迎交流: <script type="text/javascript">eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%7a%68%6f%6e%67%78%69%6e%2e%68%75%61%6e%67%40%67%6d%61%69%6c%2e%63%6f%6d%22%3e%7a%68%6f%6e%67%78%69%6e%2e%68%75%61%6e%67%40%67%6d%61%69%6c%2e%63%6f%6d%3c%2f%61%3e%27%29%3b'))</script>