迁移 Linux 系统,第 2 部分 利用 KIWI Imaging System 定制裸机恢复光盘(基于 SLES10 SP2 的 LiveCD)

引言

很 多 Linux® 发行版本已经被设计为所谓的“LiveCD”,即可以直接引导为可用 Linux 系统的 CD。这些 LiveCD 的设计是,当从 CD 引导起来后,提供一整套可以使用的工具,其中有一些是通用的,比如各个发行版的 LiveCD 用来安装和诊断系统;有一些是高度专用的工具,比如用来做路由器的系统或集成了专用工具的系统。本文使用的 LiveCD 是一个预先安装了恢复软件的小型 Linux 系统。我们将在 LiveCD 引导的系统上进行裸机恢复。


KIWI 的强大功能

KIWI Imaging System 是一种开放源代码命令行工具,来源于 OpenSuse 发行版。KIWI 可从说明文件构建软件映像;它让用户能够快速构建基于 SUSE Linux Enterprise 的设备。KIWI 镜像软件为 Linux 支持的硬件平台和虚拟系统(如 Xen、qemu、VMware),提供了一套完整的操作系统镜像解决方案。KIWI 拥有很多特性:

  • 独立于 Linux 发行版的设计。虽然 KIWI 起源于 OpenSUSE,但是适用于其它发行版(Debain、CentOS、Fedora、Mandriva、RHEL、SLES、Ubuntu)
  • 支持为完全虚拟化的系统制作镜像,如 VMWare、Qemu
  • 支持为半虚拟化的系统制作镜像, 如 xen
  • 支持网络部署镜像
  • 支持预安装的 OEM 系统镜像
  • 支持 USB-Stick 系统镜像
  • 支持 LiveCD/DVD 系统镜像
  • 基于 XML 的镜像描述
  • 为 SUSE 系统预编译启动镜像
  • 为网络启动的镜像预编译 PXE 配置
  • 在 128MB 的 flash 上创建 45M 的 SUSE Linux 系统镜像是可能的
  • 支持 x86 和 x86_64 构架

本文中 LiveCD 的特殊需求

本文要制作的 LiveCD 还用到了以下四个特性:

  • 可定制性,自由选择安装在 LiveCD 上的软件包。
  • 软件包的安装有包管理器软件管理,自动安装软件的依赖包。
  • 支持 Aufs overlay file system
  • 支持 SquashFS compress file system

需求 1:文件系统可压缩

可压缩文件系统 squashFS
squashFS 是一套供 Linux 核心使用的 GPL 开源只读压缩文件系统。squashFS 能够为文件系统内的文件、inode 节点及目录结构进行压缩,并支持最大 1024KB 的区段,以提供更大的压缩比。同 Cloop、CramFS 一样,squashFS 是一个即时解压缩的文件系统。只是 squashFS 的压缩比更高、速度更快,又不像 CramFS 有单一文件大小或整体文件系统大小的限制,在 LiveCD 的应用上非常有用。

虽 然 DVD 的出现使 LiveCD 的几乎没有空间限制。但是流行的做法是控制在一张 CD 上。压缩的文件系统可以使 LiveCD 的镜像体积减小,这样在同等的空间下存储更多的数据。目前的 LiveCD 的压缩文件系统主要有 Knoppix 的 Cloop 格式,还有 Ubuntu 的 squashfs 格式,这两种文件系统都是经过压缩且只读的。suqashFS 比 Cloop 更加快, 压缩比更高。

需求 2:文件系统可读写

LiveCD 指基于 CD/DVD 的操作系统.用户可以运行 LiveCD 就像运行在硬盘上一样,除了不能写数据到 CD/DVD 上。当系统从 LiveCD 启动后,用户就可以像硬盘系统一样登陆和操作.所有的写操作被写到内存中。但是当系统关机或重起,写入的数据会丢失。

重叠式(overlay)文件系统
Unionfs 是 SLAX 系统的一个重要组成部分 , 具有写时复制(copy-on-write)功能。Unionfs 能把只读和可读写文件系统合并在一起,虚拟上允许只读文件系统的修改,能保存到可写文件系统当中。Aufs 的全称是 Another Unionfs,它是为了取代 Unionfs 而产生的文件系统。鉴于 Unionfs 的极度不稳定,而且许久不见改进,作者 Junjiro Okajima 建立了新的文件系统取代 Unionfs。现在 aufs 已被 Slackware 的 LiveCD 所采用。

一般来说, 系统镜像被启动到硬盘或者内存是通过一个启动文件来配置的。在 KIWI 镜像系统中,这个配置由 isoboot 文件完成。它提供了两种方法来启动你的 LiveCD 系统。

  • 老的方法是区分系统镜像的内容为只读和可读写两部分。可读写的部分被安装到内存中,而只读的部分被保留在 CD 上(只读部分可以被压缩后再存储)。isoboot 文件用超链接制作根目录树。KIWI 将 /bin,/boot,/lib,/opt,/sbin,/usr 目录装在光盘上,而保留其他目录在系统内存中。
  • 新的方法利用了 overlay 文件系统,如 aufs 或 unionfs。在这种方法中,系统镜像没有被划分开。isoboot 启动文件创建一个可写的内存区域,然后把这个区域覆盖到一个根文件系统。这样就是实现了一个可读写的根文件系统。你也可以压缩系统镜像,以便能够在光盘上 容纳更多的内容。

 

KIWI 镜像的制作

KIWI 的构架被设计成两级系统。第一阶段,基于一个实际的软件包安装源,按照提前定制的镜像描述,创建一个‘未封装的镜像’;第二阶段,打包散开的镜像文件为一个系统镜像。第二阶段的输出就是封装镜像或者是压缩镜像。


图 1. KIWI 镜像制作过程
图 1. KIWI 镜像制作过程

标 准的制作过程,在镜像描述树保存了所有的镜像设计需求, 然后从安装源开始安装系统需要的软件。用户只需要修改镜像描述树中的两个 config.xml 配置文件,就可以定制自己的 KIWI 镜像。而且在第一阶段输出的‘未封装的镜像’中,用户可以修改这个镜像中的文件或添加文件到镜像中。下面,我将介绍如何利用 KIWI Imaging System 定制特殊用途的 LiveCD 镜像。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值