最后在宿主机器上通过命令:
find . | cpio –o –H newc | gzip > /boot/initrd.img-2.6.27.27 制作Initrd 镜像文件。
3.6 Grub 启动引导器
GNU GRUB (GNU GRand Unified Bootloader 的缩写),是GNU 项目中一个多操作系统启动引导程序,也是Linux 系统中最常用引导工具之一。为了让系统从USB 设备启动,必须将GRUB 程序安装在USB 存储设备的主引导记录(MBR)中。
以GRUB 0.9X 的安装步骤如下:
安装grub 程序在U 盘的/boot/grub 目录下,确保其目录存在menu.lst,stage1,stage2 三个文件。
进入grub 命令窗口,运行以下命令安装到U 盘的MBR:
grub>root(hd1,0) #假定Linux 系统所在盘符为第二块硬盘的第一个分区
grub>setup(hd1)
实际操作时根据硬盘分区不同作相应修改。
修改/boot/grub/menu.lst 文件,本文的menu.lst 如下:
3.7 Xfce 桌面环境
Xfce 是一款适用于多种*NIX 系统上运行的轻量级桌面环境,它的设计目的是在节省系统资源的情况下能够快速加载并执行应用程序。与Gnome 和KDE等比较臃肿的桌面环境相比,Xfce 占用的系统资源少,同时它拥有很小的依赖性和很好的模块性。本系统所用的Xfce 4.6.2 主要由实用工具libxfce4util、微件库libxfcegui4、扩展库exo、菜单库libxfce4menu、窗口管理xfwm4、桌面管理xfdesktop、面板xfce4-panel、会话管理xfce4-session、设置管理xfce4-settings、配置管理xfconf、文件管理thunar、实用程序xfce-utils、应用程序查找xfce4-appfinder 等部件构成。
4 具体实现
4.1 系统在USB 盘上的实现
在宿主系统上构建好整个Linux 桌面系统后,按前所述配置好只读文件系统镜像system.squashfs、初始化内存盘Initrd、内核镜像vmlinuz、Grub 中的menu.lst 文件、USB 盘标志文件LABEL,然后按以下步骤将系统移植进USB 盘。
①准备一个8G 的USB 盘,分为两个区:一个分区作为系统区,文件系统为EXT2,并激活为启动分区,作为Linux 系统使用;一个分区为数据区,文件系统为FAT32,平时作为与Windows 系统交互的分区,保存移动办公数据。
②将system.squashfs、Initrd、vmlinuz、LABEL 和Grub 相关文件复制到系统区,并在系统区中新建system_ro( 用于挂载squashfs 只读文件系统) 、system_rw(用于挂载aufs 文件系统时的修改文件存储目录)、system(用于最终文件系统的挂载目录)三个目录。
③运行grub 程序中的root、setup 命令将启动引导信息写入USB 盘的系统区的MBR.
4.2 系统启动过程
基于USB 接口的微型桌面Linux 系统的启动过程如图2 如示。
计算机开机自检, BIOS 引导到USB 接口的磁盘设备,通过启动引导管理器Grub,加载Linux 内核文件vmlinuz,内核将初始化内存盘initrd.img-2.6.27.27加载到内存,形成一个临时根文件系统,通过执行Initrd 中的init 可执行文件,进行sysfs、proc 文件系统的加载,并对硬件进行初始化,相关硬件驱动、squashfs、aufs 模块的加载后,挂载系统只读镜像system.squashfs,并通过联合文件系统aufs 使其可写,然后转到真正的根文件系统执行命令/sbin/init,完成微型桌面Linux 系统的启动。
图2 系统启动过程
5 实验结果
本文实现了在USB 接口的存储设备上构建微型桌面Linux 系统,在具有USB 接口启动功能的各种主流品牌台式计算机、笔记本和兼容机上都能成功运行,并且在硬件配置比较低的老式486、586 等机器也能流畅地运行,根据机器硬件配置的不同,一般启动时间为20 秒至50 秒,具有很好的实用价值,真正实现了便捷、高效的移动办公需要。本系统成功启动图形桌面系统后的效果如图3 所示。
图3 Linux 微型桌面系统
6 结论
本文在USB 接口的移动存储设备构建微型操作系统,具有小型便捷、速度快、空间占用率低、安全可靠的特点,研究具有很高的应用价值,人们可以参照构建过程中的关键性技术,在U 盘上制作出更多小型的专用系统:比如系统维护盘、网络防火墙、路由器、小型服务器、媒体播放器等以满足一些特定需求,同时可以将其研究应用到Live CD 上,在光盘上制作出相应的微型桌面系统。并且在使用过程中,整个系统只占了移动磁盘存储空间的小部分,而剩余的大部分空间可以另作他用,真正体现了资源的高效整合使用。
上一篇:判断符在shell中的使用方式