usb接口linux系统设计,AUFS 联合文件系统 - 基于USB接口的微型桌面Linux系统设计

本文详细介绍了Linux系统中的AUFS联合文件系统,如何解决只读SquashFS的修改问题。此外,还探讨了Initrd初始化内存盘在系统启动过程中的作用,特别是如何通过休眠来解决USB设备初始化延迟导致的根文件系统挂载失败问题。最后,提到了GRUB启动引导器的配置以及Xfce轻量级桌面环境的组件构成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.4 AUFS 联合文件系统

AUFS( Another UnionFS 的缩写), 是一个与UnionFS 类似的可堆叠联合文件系统,它将多个目录整合成单一的目录,是Linux 文件系统联合挂载的实现。

SquashFS 压缩系统是只读的,从而避免了对磁盘不必要的擦写,但同时也造成了修改数据不能保存的问题。

AUFS 的出现正好解决了上述问题,它管理一个基本文件系统(即本文中的系统Squashfs 镜像,保持原只读状态)和一个读写存储文件系统(必须具有读写权限)。通过AUFS,用户可以虚拟地修改基本文件系统上的文件,但修改后的结果却保存在读写存储文件系统中,从而实现了数据的透明修改。

3.5 Initrd 初始化内存盘

Initrd(boot loader IniTIalized RAM Disk 的缩写),由boot loader 初始化。本系统使用的boot loader 为GNU GRUB 0.97.如果Grub 已配置Initrd,Linux 内核在启动前,会把存储设备中的Initrd 文件加载到内存,作为一个临时根文件系统;内核启动时通过先执行Initrd 中的init 文件,完成设备驱动模块和squashsf、aufs 文件系统模块的加载,并完成真正的根文件系统的挂载,然后执行系统中的/sbin/init 进程。

与普通IDE、SATA 硬盘相比,USB 接口存储设备从驱动模块加载到设备可用,比较慢,需要几秒钟。

因此内核在挂载USB 存储设备时,会出现:USB 设备没有初始化完成,真正根文件系统挂载失败的问题。为了解决此问题,笔者在Initrd 中修改init 可执行文件,当加载USB 驱动后,系统将休眠5 秒,让USB 设备初始化完成后再挂载USB 存储设备中的根文件系统。本系统的init 文件配置如下:

bb77c5f052685855561b6608d2b68f5c.png

b576fc7194f68060b7af4278923e553a.png

708802081d94d07c2ed10b0a211946bb.png

本系统Initrd 中的最小化根文件系统由BusyBox创建,包含bin、dev、etc、lib、mnt、proc、sbin、sys这些必须的目录和相关文件。由于 BusyBox 生成的modprobe 命令不能正常执行,所以需要复制宿主系统中的modprobe 命令并替换Initrd 中的sbin 目录中的同名文件,同时通过ldd 查看modprobe 依赖的库文件,并复制到Initrd 中的lib 目录。

最后在宿主机器上通过命令:

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 如下:

aeface1400b4e9326648f953eb63b7b8.png

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 等部件构成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值