查看文章 |
LFS LiveCD, 给我们提供一个很好的学习制作个性化Linux的平台。如果给LiveCD加入自己的一些特色的东西,就可以用来完成自己的工作。
下面我就来介绍一下基于LFS LiveCD, 如何制作自己个性化的LiveCD.
环境准备:
1.支持loop设备、CD-ROM和ISO9600文件系统的Linux.
2.分区拥有3GB空闲空间
3.LFS LiveCD version 6.2-x
步骤:
1.设置环境变量$WORK,使之指向工作目录路径,例如:
2.LiveCD使用ISO9600文件系统,拥有以下文件:
boot目录包含Linux kernel, initramfs映像和bootloader.root.ext2为根文件系统。 为了重新制作该CD,你需要安装以下软件包:
3.加载该CD:
4.查看root.ext2文件大小:
a) 如果该文件大小约为1.5GB,内核已经为你解压了该CD,在这种情况下,你可以copy该文件到你自己的硬盘中:
b) 如果该文件只有500MB左右,你需要重新编译内核使之支持ZISOFS,或手动解压该文件:
不管以上哪种情况,你最终获得一个大小约1.5GB的文件$WORK/root.ext2.这可能能满足你的需要,也可能不能满足你的需要。如果你想,你可以使用resize2fs调整文件的大小(e2fsprogs version >= 1.39)。早期版本的e2fsprogs不能直接调整文件系统映像的大小。 6.使用loop设备完成文件系统映像的加载:
7.为了保存尽可能多的零扇区,创建并固定加载一个临时目录是一个好主意:
8.加载chroot所需要的目录:
注意:与LFS 书上不同的是,tmpfs没有加载到$WORK/root/dev.这是因为所有必须的设备节点已经创建为静态节点。 9.chroot 至该文件系统:
10.在该root文件系统,进入/build目录,并安装其他任何你想装的软件包。如果必要,修改其他的文件。 11.从以下网址下载initramfs压缩包: http://wiki.linuxfromscratch.org/livecd/browser/tags/6.2-3/packages/initramfs 解压该文件,并从Makefile中删除“include $(ROOT)/Scripts/functions".为你的CD生成一个initramfs映像:
(你可以用你自己的字符串替代"x86-6.2-custom").该步骤将在当前目录下生成initramfs_data.cpio.gz文件。如果该目录不是"/build",把该文件拷贝到/build:
12.离开chroot并清除加载
13.清除bash的历史:
当然你也可以清除其他的历史文件。
14.如果你误操作,创建并删除一些文件,这些文件之前占据的扇区不再是初始化时的数据。这些扇区已经没有用了,但是它们不能很好的被压缩。把它们初始为0:
这条命令将打印一条信息显示“磁盘空间已满”,这不是一个错误。接着,把该文件从文件系统中删除:
15.现在,可以卸载root.ext2 文件了
因为一些kernel的loop驱动存在bug,所以需要sync命令,否则将导致文件系统错误。 16.构建你的LiveCD目录结构
从LFS LiveCD中拷贝/boot目录
用你自己的initramfs映像替代原有的映像
(“cpio"之前的下划线在前面的命令中不是一个typo). 17.压缩root.ext2文件:
18.创建CD ISO映像:
19.刻录并测试,祝开心! |