http://www.cnblogs.com/kulin/archive/2012/07/27/2611834.html
在另一篇兰若空灵的博文中已经提及了定制一张Ubuntu安装光盘的方法,但是其中并没有提及具体的定制操作,这里开始记录下自己做的一些具体的定制。首先是镜像系统的内核的替换。
官网上提到了内核的替换,他们的方法就是把/casper目录下的vmlinuz和initrd.lz替换即可,我将信将疑的试了一下,华丽丽地失败了,光盘引导过程中果断报错,连最基本的内核都没引导起来,于是只好动手自己试了。
根据在其他博文中已经提到的文件系统的展开,我在这里就不在赘述了,目录下对应的内容在我的其他文章中都可以找到的,这里直接说要做什么事。
一、准备工作
在这里只需要做一件事情——编译好你想替换的内核并且在主机上使用。
二、替换工作
替换工作主要是把主机上的几个文件拷贝到在编辑的光盘镜像目录下。有如下几个工作
1、 主机/boot目录下的内核文件对应的复制到edit/boot/目录下。
主机目录下的文件是:abi-3.5、config-3.5、initrd.img-3.5、System.map-3.5、vmlinuz-3.5(这里假设所有的版本都是3.5,当然这要根据你自己的需要来决定,但一定要保证这几个文件不能遗漏)
Edit是指展开的squashfs所在的位置(参考另一篇文章中的位置)。
2、 把所需的vmlinuz文件复制到casper文件夹中。
这里的vmlinuz文件是指在主机/usr/src/linux/目录下所对应的文件命名方式基本为vmlinuz-(Kernel_Version),但是复制过去后一定要命名为vmlinuz,没有后缀名。
3、 生成新的initrd.lz文件并且复制
先将根目录重挂载,chroot edit;然后,将重新生成initrd.lz文件:mkinitramfs -o /initrd.lz 3.5 。这里还必须说明一件事情,在Ubuntu9.04及之前都是initrd.gz的压缩方式,之后均是initrd.lz,但是原则是一样的——/casper目录下的名字是什么我们就命名成什么。生成了新的initrd文件之后,拷贝到extract-cd/casper/目录下即可。
4、 后续工作
这里所说的后续工作也就是重新生成squashfs文件系统,重新生成md5校验码,重新压缩为iso文件的工作,在我的另一篇文件中已经阐述过了,不再赘述。
以上就是在定制Live CD时的更换内核的方法,有不正之处,万望赐教!
总体来说,自定义 Ubuntu的 Live CD光盘,实际很简单,具体的制作有如下几个步骤:
1、准备工作
2、展开光盘中的内容
3、展开桌面系统
4、改变设置,以root身份来编辑桌面系统
5、进行自定义
6、生成ISO镜像
7、在虚拟机上检验
一、前期的准备工作
装入squashfs文件系统处理工具以及ISO制作工具
sudo apt-get install squashfs-tools genisoimage
接下来执行sudo modprobe squashfs,即加载squashfs模块,以供后面对Ubuntu Live
CD光盘中的 squashfs格式的文件进行处理。
二、展开光盘中的内容
1、创建一个环境
mkdir~/live
mvubuntu-9.04-desktop-i386.iso ~/live
cd~/live
2、挂载光盘镜像
mkdirmnt
sudo mount -t smbfs -o loop ubuntu-12.04.1-desktop-amd64.iso mnt
3、展开镜像文件中的内容到extract-cd目录下
mkdirextract-cd
rsync--exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
三、展开桌面系统
1、挂载squashfs文件系统
mkdir squashfs
sudomount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
2、展开squashfs文件系统中的内容到edit目录下
mkdiredit
sudocp -a squashfs/* edit/(这一步需要较长的时间)
四、改变设置,以root身份来编辑桌面系统
1、如果你需要网络,则将resolv.conf文件复制到展开的squashfs文件系统目录edit目录
下。具体做法是:
sudocp /etc/resolv.conf edit/etc/(如果要用apt来安装软件的话,这一步是必须的)
2、若需要你的计算机配置的话,请复制hosts文件到edit/etc/目录下:
sudocp /etc/hosts edit/etc/
sudomount --bind /dev/ edit/dev
sudochroot edit
mount-t proc none /proc
mount-t sysfs none /sys
五、进行自定义
这一部分可以根据自己的需要进行修改,比如修改桌面背景等等。
目前已经成功修改了修改桌面背景和安装应用。下面对这两方面作一简单的阐述:
1、桌面背景的修改
ubuntu下桌面背景一般放在/usr/share/backgrounds目录下,如果你想要修改桌面背景
的话,只要将名为warty-final-ubuntu.png的图片(默认的背景图片)换成你想要的图片就
可以了,但图片名要和原来的保持一致。这其实是一种偷懒的修改方法,或者你可以这样做:
将要设置的背景图片放置在/usr/share/backgrounds目录下。然后修改默认的“注册表”
的值。具体的gconf值是/usr/share/gnome-background-properties/ubuntu-wallpaper
.xml和/usr/share/gconf/defaults/16_ubuntu-wallpapers文件中的/usr/share/backgro
-unds/warty-final-ubuntu.png.将值/usr/share/backgrounds/warty-final-ubuntu.png
改成你要设置的图片的绝对路径即可。
2、安装应用程序
大家都知道在ubuntu下安装应用用apt很方便,但必须要有网络,所以之前说的一步就
十分重要了。这里,我用的下好的deb包来安装的(当然依赖还是用apt来安装吧,不然
太麻烦了),我们发现展开的ios中,sources.list中的源相当之少,所以可以你可以用主机
上的sources.list来替换它,只要执行
rm/home/yourname/live/edit/etc/apt/sources.list
cp/etc/apt/source.list /home/yourname/live/edit/etc/apt
apt-getupdate(这一步很必要)
然后安装你要安装的deb包
dpkg-i包名及路径(当然它会提示少依赖,用apt装上依赖再来执行这一步就行了)
(当然了,在镜像中安装软件的时候,需要changeroot,即执行sudochroot edit,想
回到主机的root时只要执行exit就可以了。)
六、生成ISO镜像
(1、接下来重新制作squashfs文件:)(若未对squashfs操作可不做这一步)
sudorm extract-cd/casper/filesystem.squashfs
sudomksquashfs edit extract-cd/casper/filesystem.squashfs
2、生成新的MD5校验码到md5sum.txt文件中:
rmextract-cd/md5sum.txt
catextract-cd/md5sum.draft | grep -v md5sum.draft | grep -visolinux/boot.cat
>extract-cd/md5sum.txt(这一步时间稍长)
3、创建最终的ISO文件,做法是:
cdextract-cd
sudomkisofs -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-9.04.1-desktop-i386-custom.iso .(最后一个点一定要)
七、将生成的镜像放到虚拟机上进行检验。