Live CD 是伟大的,它使你能够不用安装就能够体验。它允许你在此之上运行你喜爱的程序,它还让手动恢复系统变得非常简单。
Ubuntu Live CD 已经与一些优秀的软件一起打包,你可以在 Live CD 上使用它,但是也有一些你不需要的软件也在其中,而你需要的软件可能没有。
有一个专业的解决办法就是自己去定制 Live CD 的映像文件
这个教程将逐步去定制一个 Ubuntu Live CD,删除其中的的一些组件和增加一些新的东西。
通过这个教程,我们将完成下面的细则重新制作一个我们自己的 Ubuntu 8.04 Live CD:
- 删除非英语的语言包
- 更新所有的软件包
- 启用 universe 和 multiverse 软件包类
- 安装 mp3 支持,RealPlayer
- 安装 Firefox flash-nonfree 插件
定制后的映像文件可能会大于800M,所以我们不能再用CD了,而将用DVD。
1. 预备主机
首先,我们需要下载当前版本的 Ubuntu 8.04 Live CD 映像文件并把它保存到 ~/Desktop,还需要安装一些扩展的工具软件用于重新建造 Live CD 映像文件:
$ sudo apt-get install squashfs-tools chroot
现在我们开始设置工作环境,首先,我们挂载ISO映像到 /tmp/livecd :
$ mkdir /tmp/livecd
$ sudo mount -o loop ~/Desktop/ubuntu-7.10-desktop-i386.iso /tmp/livecd
接着我们创建一个工作目录和定制的 CD 目录,再把挂载后的 Live CD 中除了 filesystem.squashfs 以外的所有文件都复制到 ~/livecd/cd 目录中。:
$ mkdir ~/livecd
$ mkdir ~/livecd/cd
$ rsync --exclude=/casper/filesystem.squashfs -a /tmp/livecd/ ~/livecd/cd
这是复制 filesystem.squashfs 以外的所有文件,filesystem.squashfs 是 Live CD 中的压缩根文件系统。
现在我们挂载 caspter/filesystem.squashfs 到 ~/livecd/squashfs 目录,从而复制里面的所有文件到 ~/livecd/custom 目录中,这个目录将是我们定制的根文件系统,最后压缩打包成新的 filesystem.squashfs
$ mkdir ~/livecd/squashfs
$ mkdir ~/livecd/custom
$ sudo modprobe squashfs
$ sudo mount -t squashfs -o loop /tmp/livecd/casper/filesystem.squashfs ~/livecd/squashfs/
$ sudo cp -a ~/livecd/squashfs/* ~/livecd/custom
最后,让我们复制 /etc/resolv.conf 和 /etc/hosts 到 ~/livecd/custom/etc 以致于我们能够访问网络:
$ sudo cp /etc/resolv.conf /etc/hosts ~/livecd/custom/etc/
2. 开始定制前准备
准备完成后,我们将 chroot 到 ~/livecd/custom 目录,挂载必要的虚拟文件系统 (/proc 和 /sys)。到这里,我们将开始定制我们的 Live CD。
$ sudo chroot ~/livecd/custom
# mount -t proc none /proc/
# mount -t sysfs none /sys/
# export HOME=/root
3. 开始定制
3.1. 删除不需要的软件包
先,我们将删除非英语的语言包和 gnome-games,以释放更多的空间。
# apt-get remove --purge gnome-games*
# apt-get remove --purge `dpkg-query -W --showformat='${Package}\n' | grep language-pack | egrep -v '\-en'`
或许你需要删除其它的软件包,你可以通过运行下面的命令查看安装了哪些软件包:
# dpkg-query -W --showformat='${Package}\n' | less
3.2. 更新所有的软件包
现在我们修改源配置文件和更新所有已安装的软件包:
打开并编辑 /etc/apt/sources.list
# vim /etc/apt/sources.list
如下:
deb http://archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu gutsy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu gutsy partner
deb-src http://archive.canonical.com/ubuntu gutsy partner
保存以后,运行下面的命令更新软件包:
# apt-get update
# apt-get dist-upgrade
3.3. 安装新的软件包
我们安装所有的多媒体软件包:
# apt-get install gstreamer0.10-ffmpeg gstreamer0.10-plugins-ugly \
gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse
接着下载(http://ftp.ubuntu.org.cn/home/aariz/realplayer_11.0.0-0.3_i386.deb 用户名:ubuntu 密码:ubuntuftp)并安装 RealPlayer:
# dpkg -i /tmp/realplay.deb
现在,我们安装一些压缩工具软件和Firefox的Flash插件:
# apt-get install rar unrar unace-nonfree flashplugin-nonfree
你还可安装一些自己需要的软件包,如中文语言支持包,中文软件法等, 这里就不一一讲解了。
4. 清除临时文件并退出 chroot
在我们安装软件包时,会使用一些临时文件,这里我们将他们清除来节省更多的空间:
# apt-get clean
同时也清除系统的临时目录中的文件:
# rm -rf /tmp/*
在 chroot 前,我们复制过两个文件(/etc/hosts 和 /etc/resolv.conf),这里也将其删除:
# rm -f /etc/hosts /etc/resolv.conf
最后,卸载两个虚拟文件系统 /proc 和 /sys,退出 chroot:
# umount /proc/
# umount /sys/
# exit
因为我们修改了一些软件包,所以我们需要重新创建 manifest 文件,重新创建 squashfs 和 ISO。
5. 重新创建映像文件
首先,重新创建 maniifest 文件。
$ chmod +w ~/livecd/cd/casper/filesystem.manifest
$ sudo chroot ~/livecd/custom dpkg-query -W --showformat='${Package} ${Version}\n' > ~/livecd/cd/casper/filesystem.manifest
$ sudo cp ~/livecd/cd/casper/filesystem.manifest ~/livecd/cd/casper/filesystem.manifest-desktop
接着重新创建 squashfs 根文件系统映像文件。
$ sudo mksquashfs ~/livecd/custom ~/livecd/cd/casper/filesystem.squashfs
现在,你还要自己定制 ~/livecd/cd/README.diskdefines 文件。 更新MD5校验文件 ~/livecd/cd/md5sum.txt
$ sudo rm ~/livecd/cd/md5sum.txt
$ sudo -s
# (cd ~/livecd/cd && find . -type f -print0 | xargs -0 md5sum > /tmp/md5sum.txt && mv /tmp/md5sum.txt .)
到这里,定制工作已经完成,下面就重新创建 ISO 映像文件:
$ cd ~/livecd/cd
$ sudo mkisofs -r -V "Ubuntu-Live-Custom" -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -J -l -no-emul-boot \
-boot-load-size 4 -boot-info-table -o ~/Desktop/Ubuntu-Live-8.04-custom.iso .
打包完成后,不要急于刻录,而是到虚拟机(VMware 或 qemu)调试没有问题后,再刻录。
6. 结论
通过一系列的工作,我们定制出一个符合我们自己需要的 Ubuntu Live CD,这里只是简单的叙述一下大概的定制过程,还有很多的有意思的东西等你们自己去研究,如桌面风格的修改、在引导菜单里可以选择GUI与CLI模式、支持 presistent等等,这算就抛砖引玉吧。:)
Live CD are great!
恩不错
这么详细哈哈
有时间自己一定要试一下:-)
其实这中介框架,不是很详细,在定制过程中将会有许多的细节,这些就留给你们自己去研究吧。
很棒阿 不错