最近突发奇想,打算定制一个Ubuntu 10.10桌面最小系统,并且将其制成LiveCD。以下是我的制作过程。
1.首先要下载ubuntu-10.10-alternate-i386.iso和ubuntu-10.10-desktop-i386.iso镜像,之所以要用2个镜像是因为需要通过ubuntu-10.10-alternate-i386.iso来安装命令行系统,再在命令行的基础上安装X11环境和GNOME环境,而ubuntu-10.10-desktop-i386.iso则是用来制作LiveCD。alternate版和desktop版的区别主要就是安装原理的不同desktop版差不多于一个LiveCD,安装时就是从光盘将Ubuntu系统“恢复”到硬盘,而alternate版才是真正意义上的安装程序,并且可以只安装命令行系统。
2.用ubuntu-10.10-alternate-i386.iso引导开机,选择好语言后,按F4选择安装模式为“安装命令行系统”,再按“安装Ubuntu”,就可以开始了。
3.安装完,重启后执行 $sudo apt-get update 更新源下载文件,再执行
$sudo apt-get install openssh-server
安装ssh server,
4.下载并安装X-window环境,执行
$sudo apt-get install x-window-system-core
5.再就要安装显卡驱动了,由于我用的VMWare虚拟机的显卡驱动已经被Ubuntu集成了,所以这一步可以跳过
6.安装GNOME桌面环境
$sudo apt-get install gnome-core
安装gnome-core需要的包较多,可能会下载比较长的时间
7.安装Compiz窗口管理器
$sudo apt-get install compiz
按道理这个不需要装的,但是不安装的话,ubuntu新开窗口不能移动,缩放。
8.安装输入法管理器与小企鹅输入法
$sudo apt-get install im-switch
$sudo apt-get install fcitx
某些情况下可能,在安装了fcitx输入法以后可能会出现和SCIM并存的问题,只要用im-switch把默认输入法改成fcitx就可以了:
$sudo im-switch -a fcitx
$im-switch -a fcitx
9.设置英语界面中文输入环境,一旦不需要输入汉字的话,8、9两步可以省略
$sudo vim.tiny /etc/environmont
添加LC_CTYPE=zh_CN.UTF-8
10.安装中文字体(一旦执行了第8步,这一步可以省略)
$sudo apt-get install ttf-arphic-uming
11.现在运行$sudo startx就可以进入Ubuntu的图形界面了。第一次进入界面,会看到"OAFILD:Gnome_FastUserSwitch Applet"的出错窗口,这实际上是一个快速切换用户的功能包,要解决的话,要执行
$sudo apt-get install indicator-applet-session
12.再安装gdm这样下次重启就能直接进入GNOME界面了,
$sudo apt-get install gdm
也可以把startx写到/etc/rc.d/local下
13.执行$sudo apt-get clean,再执行df -h可以看到装完整个系统用了大约1.2G的空间。
安装系统到此可以告一段落了,接下来就可以开始制作LiveCD了。前文已经说过,Ubuntu-10.10-desktop-i386.iso实际上就是一个现成的LiveCD,大家只要利用它的结构,就可以方便快捷的生成自己的最小系统LiveCD了。这里主要做的事情是首先将已安装操作系统上的文件备份成一个squashfs归档文件,然后将ubuntu-10.10-desktop-i386.iso里的内容拷贝出来,用新的squashfs文件替换掉里面已有的文件,再调整一些配置,然后将其生成新的ISO文件,再将其刻录成CD或者制成USB引导盘,这个过程就算大功告成了。
1.将当前操作系统备份成squashfs归档文件,有很多工具,其中最简便的就数国内某大牛写的Live Ubuntu Backup V2.2了,尤其是它还支持中文提示,可以看到使用说明。这是一个shell脚本写成的Ubuntu备份工具,直接运行即可。
将lub拷贝到/home下,$sudo chmod 777 /home/lub 然后执行$sudo /home/lub -b,然后按e或c来选择是英文提示,还是中文提示。第一次执行时,可能会提示需要安装lupin-casper和squashfs-tools,其中lupin-casper可以忽略,而squashfs-tools必须安装,运行$sudo apt-get install squashfs-tools即可。
之后再次运行$sudo /home/lub -b,依提示运行,就能在用户文件夹下生成一个backup-2011.01.05的目录了,其中有的backup-2011.01.05.squashfs文件就是大家想要的。
2.再将ubuntu-10.10-desktop-i386.iso拷贝到用户目录下,比如/home/jxg/下,
创建一个目录,用来挂载ubuntu-10.10-desktop-i386.iso
$sudo mkdir /home/jxg/mnt ,
将ISO挂载到/home/jxg/mnt下
$sudo mount -o loop /home/jxg/ubuntu-10.10-desktop-i386.iso /home/jxg/mnt
创建一个livecd的工作目录
$sudo mkdri /home/jxg/livecd
将mnt目录下casper/filesystem.squashfs以外的内容,同步的livecd工作目录上
$sudo rsync --exclude=/home/jxg/mnt/casper/filesystem.squashfs -a /home/jxg/mnt/ /home/jxg/livecd
接下来,大家要对/home/jxg/livecd/casper/目录下的filesystem.squashfs、filesystem.manifest、filesystem.manifest-desktop这三个文件进行操作,由于它们只有读权限,所以先执行
$sudo chmod o+w /home/jxg/livecd/casper/filesystem.*
将刚才lub生成的那个backup-2011.01.05.squashfs文件,拷贝成/home/jxg/livecd/casper/filesystem.squashfs
执行:
$sudo cp /home/jxg/backup-2011.01.05/backup2011.01.05.squashfs /home/jxg/livecd/casper/filesystem.squashfs
此外,还要更新/home/jxg/livecd/casper/目录下的filesystem.manifest和filesystem.manifest-desktop,这两个文件实际上是LiveCD系统内所装包的列表,通过以下方式更新
$sudo dpkg -l | grep ii | awk '{print $2,$3}' > /home/jxg/livecd/casper/filesystem.manifest
$sudo dpkg -l | grep ii | awk '{print $2,$3}' > /home/jxg/livecd/casper/filesystem.manifest-desktop
实际上filesystem.manifest-desktop和filesystem.manifest是有所不同的,主要是少了ubiquity casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4这几个包,这里我将其忽略了。
3.退回的LiveCD的工作目录 /home/jxg/livecd 下,
执行
$cd /home/jxg/livecd
$sudo rm md5sum.txt
$find -type f -print0 | sudo xargs -0 md5sum | grep -v ./isolinux/ | grep -v ./md5sum.txt | sudo tee md5sum.txt
更新原有的md5sum
4.将工作目录下的内容打包成ISO
安装ISO打包工具
$sudo apt-get install mkisofs
将livecd内的内容打成ISO包,执行
$sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../Ubuntu-jxg-test.iso .
这个一定要在工作目录的跟下执行,并且命令最后的 . 一定不要忘记。命令完成后,就可以在上一级的目录下发现ubuntu-jxg-test.iso文件了,大小为407MB
总结,实际上我的制作过程中,对包的选择比较粗放,很多包比如 indicator-applet-session 、 gdm 、fcitx包都可以不装,并且对linux的内核也没有裁剪,限于时间所限,当前只能做到这一步了,其实还有Ubuntu精简还有很大的潜力。我使用LXDE替代GNOME制作了一个LiveCD包,只有350多M,过程参见基于LXDE的Ubuntu桌面最小系统LiveCD。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。