Ubuntu定制live cd

最近在捣鼓系统的制作和安装(从写的文章也可以隐约看出)。之前研究了一下debootstrap,后面又发现live cd其实也是可以自己定制的。本文就简单记录一下自己的学习笔记。
在制作过程中,要用到和squash文件系统有关的压缩和解压工具,因而需要安装:
sudo apt-get install squashfs-tools
本文使用的镜像是ubuntu目前最新版本:ubuntu-14.04.1-desktop-i386.iso
定制过程十分简单:解压iso->解压iso光盘的squash根文件系统->用chroot切换系统->自定义软件(删除或添加)->压缩成squash文件->重新制作iso光盘文件。
1、解压iso文件。
pwd
/home/latelee/iso
mkdir foo newiso
sudo mount ubuntu-14.04.1-desktop-i386.iso foo/ -o loop
cp -v  -a  foo/* newiso/
sudo umount foo/
这一步要注意看foo下的.disk目录有没有拷贝成功,我就是因此没有拷贝这个隐藏的目录而失败了很多次后才发现的。


2、解压filesystem.squashfs文件
cd newiso
sudo unsquashfs casper/filesystem.squashfs
(复制到上一层,不再占用newiso空间了)
mv squashfs-root ../
cd ..


3、切换新系统
(拷贝主机的DNS配置到新的目录,因为要连外网)
cp /etc/resolv.conf   squashfs-root/etc
(使用chroot进入新的系统)
chroot  squashfs-root
mount none  /proc -t  proc
进入新的系统后输入命令遇到错误:
Fatal Python error: Failed to open /dev/urandom
解决十分简单,创建该文件即可:
mknod /dev/urandom c 1 9


4、自制定
在新的系统中,可以自行添加软件,比如像gcc等,ubuntu默认是没有安装的,可以自己时行安装。而像office这类比较大的软件,不需要的,可以删除。我曾经乱删一些自认为不必要的文件,结果发现做出来的live cd启动不了,后来不敢随便删除了。


(退出新系统,回到原来的主机系统)
exit
pwd
/home/latelee/iso


5、重新配置,压缩新的根文件系统
这一点主要是做什么,我也没研究很深,ubuntu官网有教程的,直接抄。
chmod +w newiso/casper/filesystem.manifest
sudo chroot squashfs-root dpkg-query -W --showformat='${Package} ${Version}\n' > newiso/casper/filesystem.manifest
sudo cp newiso/casper/filesystem.manifest newiso/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' newiso/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' newiso/casper/filesystem.manifest-desktop


sudo rm newiso/casper/filesystem.squashfs
sudo mksquashfs squashfs-root newiso/casper/filesystem.squashfs


printf $(sudo du -sx --block-size=1 squashfs-root | cut -f1) > newiso/casper/filesystem.size
(注:最好用cat newiso/casper/filesystem.size查看一下大小)
cd newiso
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt


6、重新制作iso光盘
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 .
cd ..


参考:
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日中午,发表前好几天已写好文章

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值