老旧文章/UbuntuHelp:LiveCDCustomization/zh

来自Ubuntu中文
Junglej留言 | 贡献2008年2月26日 (二) 23:51的版本
跳到导航跳到搜索

原文出处:https://help.ubuntu.com/community/LiveCDCustomization

原文作者:

授权许可:

翻译人员:oylb

校正人员:junglej

贡献人员:

适用版本: 文章状态:等待校正

更新日期:2008.2.26



如何定制Ubuntu图形安装光盘

你或许基于以下原因定制UBUNTU桌面(LIVE)版:

  • 预装特定的程序
  • 本地化语言支持
  • 移出软件安装包
  • 添加软件安装包
  • 更新软件安装包
  • 改变系统默认设置 (主题、图标、桌面、面板、浏览器主页等等)

本向导针对桌面版/LIVE CD,定制文字安装光盘和服务器安装光盘请参考其他页面。

系统需求

  • 至少3-5 GB的空闲磁盘空间
  • 至少512MB内存和1GB交换分区(推荐)
  • squashfs-tools
  • mkisofs
  • 一个支持squashfs的Ubuntu内核(Ubuntu6.06以及更高版本)
  • QEMU、VirtualBox或VMware用于测试(可选)

过程

首先,请确认你安装了必要的工具:

sudo apt-get install squashfs-tools mkisofs qemu

加载 squashfs 模块

sudo modprobe squashfs

你需要从 http://releases.ubuntu.com/ 下载一张官方的图形安装光盘

注:以Ubuntu-7.10-desktop-i386.iso为例

把它移动或者复制到一个空的目录:

mkdir ~/live
mv ubuntu-7.10-desktop-i386.iso ~/live
cd ~/live

释放出光盘的内容

挂载桌面系统 .iso

mkdir mnt
sudo mount -o loop ubuntu-7.10-desktop-i386.iso mnt

把 .iso 的内容释放到 'extract-cd' 目录

mkdir extract-cd
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

释放桌面系统

加载 squashfs 文件系统

mkdir squashfs
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

把 squashfs 内容释放到 'edit' 目录

mkdir edit
sudo cp -a squashfs/* edit/

准备以及虚拟根目录

如果你需要在虚拟根系统内使用网络连接

sudo cp /etc/resolv.conf edit/etc/

根据你的配置,你也许需要复制hosts文件

sudo cp /etc/hosts edit/etc/
sudo chroot edit

mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts

为了避免区域问题以及导入GPS key

export HOME=/root
export LC_ALL=C

定制

Apt-get

根据大小查看被安装的软件包

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less

移去软件包使用purge参数

apt-get remove --purge package name

设置GNOME的桌面

通常桌面文件位于/usr/share/backgrounds。复制你的PNG文件到那里并编辑下面的文档:

1. /usr/share/gnome-background-properties/ubuntu-wallpapers.xml 
2. /etc/gconf/gconf.xml.defaults/%gconf-tree.xml 

更改字符串 /usr/share/backgrounds/warty-final-ubuntu.png 指向你的文件。

更改gconf (字体、面板等等)

To make any change on the gconf attributes you must add the value that you want in the file /etc/gconf/gconf.xml.defaults/%gconf-tree.xml. Adding a value in that file will change the default values of Gnome or other applications, so you can change fonts, backgrounds, themes, cursors etc.

Instead of editing the file with gedit or another text editor, you can use the gconftool-2, under the chroot environment, running the following line:

gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey "yourvalue"

where string, yourkey and yourvalue must be the type, key and value that you want to change...

更改gfxboot的默认语言

This customization must be done outside the chroot.

sudo -s
apt-get install dpkg-dev
apt-get source gfxboot-theme-ubuntu gfxboot
cd gfxboot-theme-ubuntu*/
make DEFAULT_LANG=fi
sudo cp -af boot/* ../extract-cd/isolinux/
exit

Change "fi" to your preferred locale. Note that this does not change which languages are available in the F2 menu. For more info about gfxboot customization, see Ubuntu Customization Kit.

* A other way to change the default language of gfxboot without rebuild the packages is to create a file name lang in the isolinux directory containing your locale's name.

Customization limits

After customization make sure that there are no users with an UID >= 1000. Otherwise your image won't boot because no initial user is available (see /usr/lib/user-setup/functions.sh and /usr/lib/user-setup/user-setup-apply). While in chroot:

grep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd
grep '^[^:]*:[^:]*:[12][0-9][0-9][0-9][0-9]:' /etc/passwd

If you get any hits, try changing the uid:

usermod -u 500 $hit

高级定制

图形安装光盘内核

If you want to customize further the boot process, you can change the livecd kernel, by copying the vmlinuz and initrd you want in place of the ones you find in extract-cd/casper (don't forget to apt-get the right kernel, the one that matches the livecd one, once chrooted into edit).

i.e.

sudo cp /boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz
sudo cp /boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz

Apt-get

Apt-get

清理

Umount special filesystems and exit chroot

卸载特殊的文件系统,然後退出chroot

sudo umount proc
sudo umount sys
sudo rm -rf /tmp/*
exit

Putting the CD together(把CD合在一起)

Regenarate manifest

重建manifest

chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest

Compress filesystem

压缩文件系统

sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

Set an image name in extract-cd/README.diskdefines

在extract-cd/README.diskdefines中设置一个镜像名

sudo vim extract-cd/README.diskdefines

Calculate md5 sums

计算md5 sum

(cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)

Create Iso

制作 ISO 文件

cd extract-cd
mkisofs -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 ../cdname.iso .

测试光盘

Test using qemu emulator

用qemu模拟器来测试

qemu -cdrom cdname.iso -boot d

烧录光盘

Comments(评论)

If you have any comments or questions, please feel free to add them here.

如果您有任何意见或者疑问,您可以放心地把它写到这里。

I have created an small Customization Example (named Firebird Live CD) by adding an firebird-super-server and flamerobin packages

我制作了一个小的定制光盘样例(名为"火鸟" Live CD),我在其中加入了firebird-super-server 和 flamerobin 包。 http://flamerobin.blogspot.com/2006/05/creating-flamerobinfirebird-live-cd.html


1st off great write-up and very timely, THX. 2nd here are my comments

首先,写得很好,很及时,谢谢。另外,这是我的评论:

  • In Customizations One has to update /etc/resolv.conf in the chroot for network access
  • 在“定制”步骤,为了访问网络,您需要更新在chroot中的 /etc/resolv.conf 。
  • In Calculate MD5sums the text needs to be updated. There are read permission errors on the the filesystem.squashfs and md5sums.txt in the extract-cd cannot be written. I worked around this by cd'ing into extract-cd and temporarily changing the permission on casper/filesystem.squashfs to allow reading. Also, the md5sums file was created in .. and then copied over with sudo.
  • 在“计算 MD5 Sum”步骤,需要有些修改。由于在 extract-cd 中的 filesystem.squashfs 和 md5sums.txt 不能被写入,这会导致权限错误。我通过cd 进入 extract-cd ,然后临时改变 casper/filesystem.squashfs 的权限,让它可读,这样就解决了这个问题。md5sums文件被建立在..中,然后用sudo命令复制过来。
  • In Create ISO a sudo is needed.
  • 在“制作 ISO 文件”步骤,需要 sudo 命令。

I have created tool for automatic remastering of live CD images. See http://lichota.net/~krzysiek/projects/ubuntu-livecd-customization/ .

我制作了一个自动重新灌录 Live CD 镜像的工具。参见 http://lichota.net/~krzysiek/projects/ubuntu-livecd-customization/

Features:

特性:

    • GUI for simple creation of localized CDs (including changing gfxboot and installing language packs)
    • 有简单制作本地化 CDs 的 GUI(包括改变 gfxboot 和 安装语言包)
    • Script for customization of ISO, SquashFS and initrd on live CD.
    • Live CD 中包含定制 ISO,SquasFS 和 initrd 的脚本

I think we also need a small documentation about customizing gfxboot, at least something about changing the default language.

我想我们需要一篇关于如果定制 gfxboot 的文档,至少要涉及如何改变默认的语言。


http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm seems to have some nice info. no license that I can see so we would need to ask permission from the author to us its material.

http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm 上有很好的信息。我没有看到有关的许可信息,所以我们用到它的资源时需要得到作者的许可。