最近在捣鼓系统的制作和安装(从写的文章也可以隐约看出)。之前研究了一下debootstrap,后面又发现live cd其实也是可以自己定制的。本文就简单记录一下自己的学习笔记。
在制作过程中,要用到和squash文件系统有关的压缩和解压工具,因而需要安装:
1 | sudo apt-get install squashfs-tools |
本文使用的镜像是ubuntu目前最新版本:ubuntu-14.04.1-desktop-i386.iso 定制过程十分简单:解压iso->解压iso光盘的squash根文件系统->用chroot切换系统->自定义软件(删除或添加)->压缩成squash文件->重新制作iso光盘文件。
1、解压iso文件。
1 | pwd |
这一步要注意看foo下的.disk目录有没有拷贝成功,我就是因此没有拷贝这个隐藏的目录而失败了很多次后才发现的。
2、解压filesystem.squashfs文件
1 | cd newiso |
3、切换新系统
1 | (拷贝主机的DNS配置到新的目录,因为要连外网) |
进入新的系统后输入命令遇到错误:
1 | Fatal Python error: Failed to open /dev/urandom |
解决十分简单,创建该文件即可:
1 | mknod /dev/urandom c 1 9 |
4、自制定
在新的系统中,可以自行添加软件,比如像gcc等,ubuntu默认是没有安装的,可以自己时行安装。而像office这类比较大的软件,不需要的,可以删除。我曾经乱删一些自认为不必要的文件,结果发现做出来的live cd启动不了,后来不敢随便删除了。
1 | (退出新系统,回到原来的主机系统) |
5、重新配置,压缩新的根文件系统
这一点主要是做什么,我也没研究很深,ubuntu官网有教程的,直接抄。
1 | chmod +w newiso/casper/filesystem.manifest |
6、重新制作iso光盘
1 | sudo mkisofs -D -r -V "My ubuntu-14.04.1" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-14.04.1-desktop-i386-custom.iso . |
参考:
https://help.ubuntu.com/community/LiveCDCustomization
https://hev.cc/5.html
http://forum.ubuntu.org.cn/viewtopic.php?f=161&t=134333
注: 本文所述命令、目录,懂其意思即可,不一定要局限于所有路径的做法(如最后几步,我实际上是用脚本来完成的)。
李迟,于2014年10月21日中午,发表前好几天已写好文章