定制 Debian Live

Debian Live 系统其实就是一个可以直接从可移动介质 (CD-ROM 光盘,DVD 光盘,U 盘) 启用的 Debian 系统,或者也可以从网络上的另一台电脑启用,而无需安装。

光盘镜像是由一个名为 live-helper 的工具生成的,它能轻易地创建自定义的 live 系统。

Debian Live 定制性很强,下面简单介绍几项定制内容:

1. 定制 Debian Mirror 地址

如果你的工作机无法访问官方 mirror,一定要通过下面 lh_config 的 5 个参数,配置可以访问的 mirror:

lh_config
            [-m|--mirror-bootstrap URL]
            [--mirror-binary URL]
            [--mirror-binary-security URL]
            [--mirror-chroot URL]
            [--mirror-chroot-security URL]

2. 定制 syslinux splash 图像

syslinux 使用一种特殊的图像格式(RLE 或 LSS),需要用下面的方法准备:

  • 用 GIMP 编辑图像,不要超过 640×400。
  • 设置为 14 Indexed Color。如果图像已经为 Indexed Color,但超过 14 种,应该先转换成 RGB 格式,再转换回 14 Indexed Color
  • 另存为 PPM 格式
  • 使用 syslinux 包中的 ppmtolss16,将 PPM 图像转换成 LSS
ppmtolss16 '#d0d0d0=7' < splash.ppm > splash.rle

得到 LSS 格式的图像之后,需要:

  • 放入 config/binary_syslinux/ 下,假设文件名为 splash.rle
  • 同时修改 config/binary,设置:
LH_SYSLINUX_SPLASH="config/binary_syslinux/splash.rle"

然后 lh_clean && lh_build 生成新的镜像。

3. 定制默认用户配置

Debian 以及其他 Linux 发行版在创建新用户时,会将 /etc/skel 目录下的所有文件复制到新用户 HOME 目录下。借助这一特色,可以通过将配置文件放在 /etc/skel 目录下,起到默认配置的作用。

Debian Live 系统每次启动时会生成全新用户 HOME 目录,同样会拷贝 /etc/skel 目录下的所有文件。因此需要将配置文件放入 Debian Live 系统的 /etc/skel 目录下。

在 config/chroot_local-includes/ 目录下,创建 etc/skel 子目录,在生成 binary 时,这些文件会自动拷贝到文件系统上。

lh_clean && lh_build 生成新的镜像。

4. 定制 splashy

splashy 可以在系统启动时,显示图形化的进度栏。splashy 的定制过程如下:

  • 创建 config/chroot_local-hooks/01-splash.sh:
#!/bin/sh
splashy_config -s debian-moreblue || true
update-initramfs -u -k all
  • chmod +x config/chroot_local-hooks/01-splash.sh
  • 修改 config/chroot 文件,LH_PACKAGES 后增加两个包:splashy splashy-themes

最后,lh_clean && lh_build 生成新的镜像。

5. 定制 usplash

usplash 与 splash 类似,同样可以显示图形化启动进度。由于 splashy 不支持 initramfs,有一部分启动过程无法图形化,而 usplash 能弥补这一缺陷。

  • 参照 splashy 前两步,生成同样的 01-splash.sh 可执行脚本
  • 修改config/chroot 文件,LH_PACKAGES 后增加两个包:usplashy usplash-theme-debian

最后,lh_clean && lh_build 生成新的镜像。

6. 最小化生成 image

通常减少 Debian/Linux 系统空间的方法无外乎:1 删除不用的 locale 信息,2 删除 APT 缓存。可以参照上面定制过程,在 config/chroot_local-hooks/ 目录下,创建 hooks 脚本实现。

  • 首先,修改config/chroot 文件,LH_PACKAGES 后添加 localepurge
  • 创建 config/chroot_local-hooks/99-clean.sh 文件:
#!/bin/sh
rm -r /var/lib/apt/lists/mirror.ivic.org.cn*
rm -r /var/cache/apt/*.bin

debconf-set-selections <<EOF
debconf localepurge/nopurge select en, en_US.UTF-8
debconf localepurge/nopurge seen true

debconf localepurge/mandelete select true
debconf localepurge/mandelete seen true

debconf localepurge/dontbothernew select false
debconf localepurge/dontbothernew seen true

debconf localepurge/showfreedspace select true
debconf localepurge/showfreedspace seen true

debconf localepurge/verbose select false
debconf localepurge/verbose seen true

debconf localepurge/quickndirtycalc select true
debconf localepurge/quickndirtycalc seen true
EOF

dpkg-reconfigure -u -phigh localepurge
  • chmod +x config/chroot_local-hooks/99-clean.sh

最后 lh_clean && lh_build 生成新的镜像。

7. 使用 fluxbox

fluxbox 是一款小巧的 X Window Manager。生成使用 fluxbox 的 Debian Live 系统的过程如下:

  • 修改config/chroot 文件,LH_PACKAGES_LISTS 后添加 fluxbox(替换 xfce/gnome/kde 等)
  • 创建 chroot_local-packageslists/fluxbox,内容如下:
## LH: Fluxbox
#include <standard-x11>
       
fluxbox gdm
##desktop-base

最后 lh_clean && lh_build 生成新的镜像。

一些参考:/usr/share/live-helper/lists 目录下的文件。定义了 live-helper 怎么理解常见的软件组合。无论是 debian-live 还是普通的 debian 安装,都是使用 debootstrap 完成的基本系统安装,所以应该看 debootstrap 的源码。

作者: dipplum.com

internet/product/customize-debian-live.txt · 最后更改: 2010/03/30 13:36 (外部编辑)
[unknown link type]到顶部
GNU Free Documentation License 1.3
京ICP备05034962号 Debian Driven by DokuWiki get firefox browser Recent changes RSS feed Valid XHTML 1.0