Live系统的结构

绝大多数运行在 live CD/USB 系统上的代码是和运行在硬盘上的普通系统完全一致的。然而主要的区别在于 live CD/USB 系统基于只读的根文件系统,因此我们需要做一些必要的调整,来使一些必须要被写入的区域“似乎”能做到如此,我们说“似乎”,是因为一般来说,做出任何改动都会在系统关机的时候丢失,因为这些改动都存在于基于 RAM 的 文件系统中 (但是也可以有例外,参见 “状态保存”)。

squashfs 和 aufs

在 larch 中,和许多其他 live CD/USB 系统一样,写入只读文件系统(apparently实在不知道啥意思) 的能力由 aufs (最初由 unionfs 派生) 提供。文件系统同时也采用 squashfs 压缩,以将更多的数据放入存储设备 (一般来说 2GB 左右未压缩的数据通过这种方法可以压缩进 700MB 的 CDROM)。一个自定义的(您可以选择安装哪些软件包)原始 Arch Linux 安装将被压缩进一个 squashfs 文件系统:文件 system.sqf,它将被放至启动设备的根目录中。
装配 live CD/USB 系统时我们需要对某些文件做少许改动(这里原文是写的installtion,后文中意为将live系统安装到硬盘,但这里我的理解是构建live系统的过程,如有误请帮忙修改)。在 larch 中,这(一开始)并非直接完成,构建完成后的系统仍处于一种原始的状态。为达到目的,我们引入一个union 层,其中在 mods.sqf 压缩包保存所有修改后的文件( /etc 中的文件除外,它们将被放置在可写入 union 的顶层,保存在 overlay.ovl 压缩包中)。用户可以随心所欲地添加任何定制到这些修饰文件中。这些文件也将被放至启动设备的根目录中。
所有这些系统压缩文件会在 live CD/USB 启动的时候被合并。它们都被作为合并后 union 文件系统的分支挂载,修饰层会覆盖在标准系统之上,因此修改过的文件有高于原始系统文件的优先级。union 的顶层是一个可写入的 tmpfs (因此也使得整个系统可写),启动过程中overlay.ovl 将会被解压到它之中。因为所有的改动都只存在于 RAM 中,所以在系统关机时都会丢失(除非使用状态保存功能)。

initramfs 和 mkinitcpio

一般来说,直接引导一个 live CD/USB 系统是不可能的。需要使用 'initrd' 或者 'initramfs' 之类的形式来寻找、掌握文件系统,并且为运行做准备。许多现代的 GNU/Linux 系统使用了initrd/initramfs (前者正逐渐被弃用) 来加载需要的内核模块,Arch Linux 也不例外,它使用一个模块化的 initramfs 系统 (mkinitcpio) 作为标准启动方式,larch 也利用了它的优势,但是仍需为live CD/USB 系统作额外修改。

/etc/inittab, /etc/rc.sysinit 和 /etc/rc.shutdown

初始引导脚本和关机脚本必须根据 larch live 环境做一些修改。有许多方法可行。在 5.3.2 版本中,我们用修改过的 /etc/rc.sysinit 和 /etc/rc.shutdown 来替换原始文件,它们和官方的原始脚本是完全等价的,但是将一些在 larch live 系统中无效的部分分离开来(不确定)。“larch-live” 软件包提供适用于 live 系统的这些文件: /etc/larch-sysinit 和 /etc/larch-shutdown 。
重写系统文件使系统变得凌乱,同时也意味着 live 系统的 initscripts 软件包不能更新,但是我们希望官方的 initscripts 软件包将来能够包含已经分离相应功能的 '/etc/rc.sysinit' 和 '/etc/rc.shutdown' 版本,使得 larch 无须再重写这些文件。
尽管并非严格需要(因为用于替换的文件完全等价于官方的相应文件),larch 还是将原始的文件保存为 '/etc/rc.sysinit.larchsave' 和 '/etc/rc.shutdown.larchlsave',在用 larchin 安装系统的时候它可以被还原(这可能避免接下来的混淆???)。
您可以自定义 '/etc/inittab' :将新的版本放入 profile (在 'rootoverlay' 中)——举个例子,我们可以设置第一个终端的处理方式,比如允许自动登录。原始的 inittab 被存为 '/etc/inittab.larchsave' ,在用 larchin 安装系统的时候它可以被还原。
larch 版本 initscripts 的其中一项附加功能是自动生成新的 '/etc/fstab' (采用 gen_fstab 脚本,它基于系统设备检测的结果)。除此之外它和普通的 Arch Linux 没有什么不同。然而,重新挂载根文件系统和文件系统检查两项功能被除去,因为它们在 live-CD 环境中不起作用。Live 系统中任何硬盘分区都不会被挂载,并且 swap 默认也没有被开启。这主要是因为用作安装 CD 的时候,分区设定很可能需要编辑,而此时最好不要挂载分区。通过传递 'swap' 引导参数可以在拥有合适分区时自动启用 swap (这也可以通过 'swapon -a' 手动完成)。
对 '/etc/rc.shutdown' 的修改,是添加代码以处理状态保存(将更改写入启动设备)和弹出 live-CD。和普通系统不同的是,硬件时钟不会被重置。

评论

评论查看选项

选择您喜欢的显示评论的模式,并点击"保存设置"来激活您所做的改变。
ティンバーランド 提交者: ティンバーランド
ティンバーランド 提交者: ティンバーランド
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
ティンバーランド 提交者: ティンバーランド
ティンバーランド 提交者: ティンバーランド
ティンバーランド 提交者: ティンバーランド
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
バーバリー 提交者: バーバリー11
Every once now pandora 提交者: pandorasell
COACH アウトレット 提交者: wwwmm
グッチ バッグ 激安 提交者: wwwmm
U.S. 15 at the New York 提交者: kei111
Shopping on Coach Purses 提交者: Donna2090
ugg boots clearance 提交者: asdwqeeq
Official Vernon Davis Jersey 提交者: jersey208
The best gift for you. The 提交者: Requiem
moncler coat moncler 提交者: Requiem
The best gift for you. The 提交者: Requiem
moncler coat moncler 提交者: Requiem
The best gift for you. The 提交者: Requiem
moncler coat moncler 提交者: Requiem
The best gift for you. The 提交者: Requiem
moncler coat moncler 提交者: Requiem
The best gift for you. The 提交者: Requiem