LiveCD 是存储在一张可引导的 CDROM 上的 *** 芹芹耐作系统(以及其他软件)通过这张 CD ROM 即可执行 OS无需进行漫长的安装过程大部分 LiveCD 都是基于 Linux 内核的(但也有一些用于其他 *** 作系统的 LiveCD)LiveCD 的工作方式是将文件放到 RAM 磁盘中(这样就减少了应用程序可以使用的 RAM因此性能可能会降低)一旦取出 LiveCD 并重新启动系统之后原系统就恢复了有些 LiveCD 还提供了一个安装工具使您可将系统首做安装到硬盘或 USB 磁盘上大部分 LiveCD 都可以访问内部/外部硬盘磁盘或闪存上的信息
syslinux 用来启动基于 Linux 的 LiveCD以及 Linux 软盘对于 PC 来说可引导 CD 通常都遵守 El Torito 规范会将磁盘上的某个文件嫌春(可能是隐藏文件)当作一个软盘映像使用很多 LiveCD 都使用压缩的文件系统映像其中通常会使用 cloop 压缩 loopback 驱动器有效地双倍利用存储能力
市场上有很多模拟器可以用于试用 LiveCD而不需将其刻录成 CD 或在计算机上启动支持最为广泛的 i 模拟器是 VMware其他模拟器还有 QemuPearPC 和 Bochs它们都可以用于模拟 x 和/或 PowerPC® 平台但由于所采用的模拟方法的不同因此速度比一些商业化模拟器慢另外一种商业化模拟器是 VirtualPC
制作LFS liveCD 跟在硬盘上安装LFS有想相当大的不同 简要介绍如下以6.2为例 6.3制作方法一样
一个Linux系统,它支持loop device, CD-ROM 和 ISO9660 文镇腔件系统。
一个有3GB以上空闲空间的硬盘分区
使用环境变量$WORK指向这个分区的文件夹,例如:念态
export WORK=/mnt/lfslivecd
这个LiveCD使用ISO9660文件系统,它采用了Linux特有的透明压缩方法。在这个文件系统中,包含以下文件:
boot/*
root.ext2
这个boot文件夹包含了Linux内核文件,initramfs镜像以及boot引导器。实际的根文件系统(ext2)是在root.ext2这个文件。
如果要制作这个CD,你需要安装以下包:
cdrtools-2.01: 作用:读取、创建、刻录CD的工具包。下载地址:
http://gd.tuwien.ac.at/utils/schilling/cdrtools/cdrtools-2.01.tar.bz2
ftp://ftp.berlios.de/pub/cdrecord/cdrtools-2.01.tar.bz2
MD5校验值: d44a81460e97ae02931c31188fe8d3fd
文件大小: 1.4 MB
所需磁盘空间: 21 MB
补丁:
http://www.linuxfromscratch.org/patches/blfs/svn/cdrtools-2.01-mkisofs_iconv-1.patch
http://www.linuxfromscratch.org/patches/blfs/svn/cdrtools-2.01-ascii-2.patch
安装方法:
1、安装补丁
patch -Np1 -i ../cdrtools-2.01-mkisofs_iconv-1.patch
patch -Np1 -i ../cdrtools-2.01-ascii-2.patch
2、编译
make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root
3、安装
make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root install &&
install -v -m755 -d /usr/share/doc/cdrtools-2.01 &&
install -v -m644 README* ABOUT doc/*.ps \
/usr/share/doc/cdrtools-2.01
zisofs-tools-1.0.6:
在http://www.kernel.org/pub/linux/utils/fs/zisofs/zisofs-tools-1.0.6.tar.gz 下载
使用以下命令安装
./configure --prefix=/usr &&make &&make install
加载这个CD
mount /media/cdrom
察看root.ext2文件的仔旅源大小:
ls -l /media/cdrom/root.ext2
如果大致为1.5GB,那么就可以直接解压缩这个CD。你可以使用下面的命令拷贝文件到你的硬盘。
cp /media/cdrom/root.ext2 $WORK/root.ext2
如果它只有大约500MB,那么你需要重新构建你的Linux内核使它支持ZISOFS,或者使用下面的命令拷贝:
mkzftree -u -F /media/cdrom/root.ext2 $WORK/root.ext2
不管哪一种方法,确保$WORK/root.ext2这个文件在1.5GB大小左右。
This may or may not be sufficient for your remastered CD (or DVD) filesystem.
如果你需要,你可以使用e2fsprogs(版本不小于1.39)重新改变这个文件大小。1.39版本之前的e2fsprogs不能直接更改文件系统的镜像大小。
使用loop方式挂载这个镜像
mkdir $WORK/root
mount -o loop $WORK/root.ext2 $WORK/root
创建并绑定一个文件夹是一个非常好的主意,这样能保留许多有可能是空的扇区。
mkdir $WORK/build $WORK/root/build
mount --bind $WORK/build $WORK/root/build
挂载其它一些必要的文件夹:
mount -t proc proc $WORK/root/proc
mount -t sysfs sysfs $WORK/root/sys
mount -t devpts devpts $WORK/root/dev/pts
mount -t tmpfs tmpfs $WORK/root/dev/shm
注意:在LFS手册中这些指令是不推荐的。tmpfs不是加载到$WORK/root/dev。这是因为所有必要的设备都已经以静态节点的方式创建了。
Chroot:
chroot $WORK/root
通过chroot,更改当前目录到/build,安装需要的其它一些包。修改一些必要的文件。
在http://wiki.linuxfromscratch.org/livecd/browser/tags/6.2-5/packages/initramfs 下载initramfs文件。
解压缩这个文件。在Makefile文件中删除"include $(ROOT)/scripts/functions"这一行。创建initramfs镜像。
make compile-stage2 VERSION="x86-6.2-custom"
(你可以使用自己的字符创替换"x86-6.2-custom") 文件initramfs_data.cpio.gz就产生在当前文件夹中。如果当前文件夹不是"/build",复制它到 /build:
cp initramfs_data.cpio.gz /build
退出chroot环境,卸载挂载点:
exit
umount $WORK/root/dev/shm
umount $WORK/root/dev/pts
umount $WORK/root/sys
umount $WORK/root/proc
umount $WORK/root/build
rmdir $WORK/root/build
清理bash输入记录:
rm $WORK/root/root/.bash_history
你也可以移出其它的记录文件。
如果你错误的创建或删除了一些文件,可能导致之前的扇区被包含有非空数据的文件占据。对于这种扇区将不能很好的进行压缩。清空它们。
dd if=/dev/zero of=$WORK/root/zeroes
这个命令将打印一个消息:这个磁盘是满的。这不是一个错误。将这个文件从文件系统中移除。
rm $WORK/root/zeroes
现在,卸载root.ext2这个文件:
umount $WORK/root
sync
The "sync" command is needed due to a bug in the loop driver in some kernels that leads to a filesystem with errors otherwise.
现在创建文件夹用来构建你的LiveCD:
mkdir $WORK/iso
从原始的LiveCD中复制boot文件夹
cp -r /media/cdrom/boot $WORK/iso
使用自己的initramfs镜像替换原来的:
cp $WORK/build/initramfs_data.cpio.gz \
$WORK/iso/boot/isolinux/iniramfs_data_cpio.gz
(the underscore before "cpio" in the previous command is not a typo).
重新压缩root.ext2这个文件:
mkzftree -F $WORK/root.ext2 $WORK/iso/root.ext2
创建CD镜像:
cd $WORK/iso mkisofs -z -R -l --allow-leading-dots -D -o \
../lfslivecd-x86-6.2-custom.iso -b boot/isolinux/isolinux.bin \
-c boot/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
-V "lfslivecd-x86-6.2-custom" ./
完毕
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)