Linux LiveCD 的制作
2016-04-04 12:44
232 查看
Knoppix,只需一张光盘, 就能够让我们在任何场所,随心所欲地使用 Linux1, 打破了操作系统只能先安装再使用的传统概念。 Knoppix 最初的设计用途是教学,但由于这项技术很受欢迎,使得 LiveCD 这项技术不断发展, 现在它的应用已经非常广泛,涉及:系统演示、系统急救、网络防火墙、产品宣传、游戏,等等。
虽 然有众多的 LiveCD 供我们挑选,但有时候找一张完全满足个人需要的版本还真是不容易。 不过没关系,因为绝大多数 LiveCD 采用的都是开放源码的自由软件,这让我们完全可以自己动手, 按自己要求制作 LiveCD。这篇文章就是示范如何在已有 LiveCD 的基础上定制符合自己要求的 LiveCD。
2。
要有网络浏览器。便于通过 WebMail 查阅邮件。
要能打开 MS Word 和 pdf 格式的文件。
容量不超过 200M,可以刻录到 MiniCD 上,便于携带。
Knoppix 是最有名的 LiveCD,估计很多人都会首先想到从它入手,但是 Knoppix 采用 KDE 作为桌面环境, 按照上面最后一项的要求,Knoppix 怎么样都无法裁减到 200M 以内,因此不合适。
经过寻找和比较各种已有的 LiveCD,发现 Morphix 符合要求,它与 Debian,Knoppix 一脉相承,采用模块化设计是它的主要特点, 就是将 LiveCD 的各个部分分解成模块,可以随意组合成不同用途的 LiveCD。 由于可以选择轻量级的桌面管理器,LiveCD 的尺寸能容易控制在 200M 以内。
3 作为基础, 你可以从 SourceForge.net 的 morphix 项目 下载。
4
# mkdir -p mod/light# module-extract iso/Morphix/mainmod/light.mod mod/light
挂载 /proc
# mount --bind -t proc /proc mod/light/proc
chroot
# chroot mod/light
添加中文 locale。在下载的 Morphix LiveCD 里面,locale 只有 C 和 POSIX, 所以要修改 /etc/locale.gen 文件,包含下列内容
en_US ISO-8859-1en_US.UTF-8 UTF-8zh_CN GB2312zh_CN.GB18030 GB18030zh_CN.GBK GBKzh_CN.UTF-8 UTF-8
接着执行 locale-gen 命令生成新的 locale。
修改 resolv.conf,联通网络。例如,使用
# echo "nameserver 202.96.134.133" > /etc/resolv.conf
更改默认的 debian 软件包源指向离自己最近的镜像。例如,我使用 cn99 的源
deb http://debian.cn99.com/debian unstable main contrib non-free
更新软件包。按照自己的定制要求,添加和删除软件包。
# apt-get update# apt-get install 一些软件# apt-get remove --purge 不需要的软件# apt-get upgrade# apt-get clean
清理空间。为了方便清理,先安装 deborphan 这个工具,然后用下面命令清理:
# deborphan | xargs apt-get -y --purge remove
清空软件包缓存
# cd /var/lib/apt/lists/# rm -f *# touch lock# cd /var/cache/apt/# rm -f *# cd /var/tmp/# rm -f *
清理其他的空间。为了最大程度地节约空间,可以将 /usr/share/locale 目录下, 不使用语言的 mo 文件删除。另外在 /usr/share/doc, /usr/share/man 下面也有这样的文件, 也可以删除。
更新文件名数据库
# updatedb
恢复配置
# rm /etc/resolv.conf# touch /etc/resolv.conf# umount /proc
压制 MainModule
# module-builder -t ext3 mod/light iso/Morphix/mainmod/light.mod
morphix 网站上下载它提供的内核源码。如果已经将 morphix 添加到 source.list,使用 apt-get 就能方便地得到所需的文件。
除了 kernel-source 之外,LiveCD 还需 cloop 和 cowloop 这两个额外的内核模块,cloop 在 Debian 的源里面的 名称为 cloop-src,而 cowloop 则需要到 cowloop 网站下载。
编 译内核的方法和步骤,跟平时一样,可以参阅 Debian 参考手册完成。最后可以生成 deb 包格式,也可以使用 Linux 的普通方式。 morphix 提供了一个脚本 morphix-changekernel 进行内核替换,但它是针对 2.4 的内核, 不能直接用于现在的 2.6 内核,不过我们可以拿它作为参考,了解整个替换过程。
其他需要注意的是,自己编译的内核与模块的 gcc 版本和 体系架构要保持一致,这点可以通过使用 strings 命令查看 vermagic 来确定。
修改 bootsplash
LiveCD 启动时的画面也能定制,可以换成与自己 LiveCD 主题匹配的说明和图像。
启动画面图像保存在 LiveCD 根目录 boot/miniroot.gz 文件里面,将它解压,挂载到一个临时目录
# mkdir -p tmp/miniroot# gzip -d miniroot.gz# mount -o loop miniroot tmp/miniroot
启动时的图像和设置位于 bootsplash 目录,我们可以修改 config 中的配置文件, 也可以直接替换 images 目录下面的文件。
这些图像是以 jpeg 格式保存,但 bootsplash 当前只支持 16bit 色,如果你手头的 jpeg 是 24bit 色, 需要先进行转换处理。
下面是采用 netpbm 软件包里面的工具完成转换工作。
$ jpegtopnm image24.jpg |ppmtojpeg > image16.jpg
压制 iso 文件
定制工作完成以后,用下面命令就可以生成可以启动的 iso 文件
# mkisofs -pad -l -r -J -v -V "SoForge" -b boot/grub/iso9660_stage1_5 \-c base/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \-hide -rr -moved -o SoForge.iso iso/Morphix
虽 然有众多的 LiveCD 供我们挑选,但有时候找一张完全满足个人需要的版本还真是不容易。 不过没关系,因为绝大多数 LiveCD 采用的都是开放源码的自由软件,这让我们完全可以自己动手, 按自己要求制作 LiveCD。这篇文章就是示范如何在已有 LiveCD 的基础上定制符合自己要求的 LiveCD。
2。
要有网络浏览器。便于通过 WebMail 查阅邮件。
要能打开 MS Word 和 pdf 格式的文件。
容量不超过 200M,可以刻录到 MiniCD 上,便于携带。
Knoppix 是最有名的 LiveCD,估计很多人都会首先想到从它入手,但是 Knoppix 采用 KDE 作为桌面环境, 按照上面最后一项的要求,Knoppix 怎么样都无法裁减到 200M 以内,因此不合适。
经过寻找和比较各种已有的 LiveCD,发现 Morphix 符合要求,它与 Debian,Knoppix 一脉相承,采用模块化设计是它的主要特点, 就是将 LiveCD 的各个部分分解成模块,可以随意组合成不同用途的 LiveCD。 由于可以选择轻量级的桌面管理器,LiveCD 的尺寸能容易控制在 200M 以内。
3 作为基础, 你可以从 SourceForge.net 的 morphix 项目 下载。
4
# mkdir -p mod/light# module-extract iso/Morphix/mainmod/light.mod mod/light
挂载 /proc
# mount --bind -t proc /proc mod/light/proc
chroot
# chroot mod/light
添加中文 locale。在下载的 Morphix LiveCD 里面,locale 只有 C 和 POSIX, 所以要修改 /etc/locale.gen 文件,包含下列内容
en_US ISO-8859-1en_US.UTF-8 UTF-8zh_CN GB2312zh_CN.GB18030 GB18030zh_CN.GBK GBKzh_CN.UTF-8 UTF-8
接着执行 locale-gen 命令生成新的 locale。
修改 resolv.conf,联通网络。例如,使用
# echo "nameserver 202.96.134.133" > /etc/resolv.conf
更改默认的 debian 软件包源指向离自己最近的镜像。例如,我使用 cn99 的源
deb http://debian.cn99.com/debian unstable main contrib non-free
更新软件包。按照自己的定制要求,添加和删除软件包。
# apt-get update# apt-get install 一些软件# apt-get remove --purge 不需要的软件# apt-get upgrade# apt-get clean
清理空间。为了方便清理,先安装 deborphan 这个工具,然后用下面命令清理:
# deborphan | xargs apt-get -y --purge remove
清空软件包缓存
# cd /var/lib/apt/lists/# rm -f *# touch lock# cd /var/cache/apt/# rm -f *# cd /var/tmp/# rm -f *
清理其他的空间。为了最大程度地节约空间,可以将 /usr/share/locale 目录下, 不使用语言的 mo 文件删除。另外在 /usr/share/doc, /usr/share/man 下面也有这样的文件, 也可以删除。
更新文件名数据库
# updatedb
恢复配置
# rm /etc/resolv.conf# touch /etc/resolv.conf# umount /proc
压制 MainModule
# module-builder -t ext3 mod/light iso/Morphix/mainmod/light.mod
morphix 网站上下载它提供的内核源码。如果已经将 morphix 添加到 source.list,使用 apt-get 就能方便地得到所需的文件。
除了 kernel-source 之外,LiveCD 还需 cloop 和 cowloop 这两个额外的内核模块,cloop 在 Debian 的源里面的 名称为 cloop-src,而 cowloop 则需要到 cowloop 网站下载。
编 译内核的方法和步骤,跟平时一样,可以参阅 Debian 参考手册完成。最后可以生成 deb 包格式,也可以使用 Linux 的普通方式。 morphix 提供了一个脚本 morphix-changekernel 进行内核替换,但它是针对 2.4 的内核, 不能直接用于现在的 2.6 内核,不过我们可以拿它作为参考,了解整个替换过程。
其他需要注意的是,自己编译的内核与模块的 gcc 版本和 体系架构要保持一致,这点可以通过使用 strings 命令查看 vermagic 来确定。
修改 bootsplash
LiveCD 启动时的画面也能定制,可以换成与自己 LiveCD 主题匹配的说明和图像。
启动画面图像保存在 LiveCD 根目录 boot/miniroot.gz 文件里面,将它解压,挂载到一个临时目录
# mkdir -p tmp/miniroot# gzip -d miniroot.gz# mount -o loop miniroot tmp/miniroot
启动时的图像和设置位于 bootsplash 目录,我们可以修改 config 中的配置文件, 也可以直接替换 images 目录下面的文件。
这些图像是以 jpeg 格式保存,但 bootsplash 当前只支持 16bit 色,如果你手头的 jpeg 是 24bit 色, 需要先进行转换处理。
下面是采用 netpbm 软件包里面的工具完成转换工作。
$ jpegtopnm image24.jpg |ppmtojpeg > image16.jpg
压制 iso 文件
定制工作完成以后,用下面命令就可以生成可以启动的 iso 文件
# mkisofs -pad -l -r -J -v -V "SoForge" -b boot/grub/iso9660_stage1_5 \-c base/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \-hide -rr -moved -o SoForge.iso iso/Morphix
相关文章推荐
- 嵌入式Linux之旅——环境搭建篇之烧写整个系统
- linux从上电到到启动流程简要过程以及关键函数
- Linux中fork函数分析
- 某公司笔试题——Linux fork()
- Linux rpm 命令参数使用详解[介绍和应用]
- linux 文件权限
- Linux USB 驱动开发实例 (三)—— 基于USB总线的无线网卡浅析
- Linux内核如何装载和启动一个可执行程序
- Linux下常用文件操作命令总结
- Linux Container(LXC)容器隔离实现机制
- Linux下安装ActiveMQ CPP
- Linux 学习_mysql
- CentOS6.5安装卸载MySql
- linux下使用gitHub环境搭建
- linux下mysql基本的操作
- 浅谈linux性能调优之十二:红帽优化策略Tuned
- linux图形界面和文本界面的切换操作方法
- linux系统中内存爆满之后会如何?
- linux系统中内存爆满之后会如何?
- linux系统中内存爆满之后会如何?