当前位置:嗨网首页>书籍在线阅读

16-创建简单的文件系统

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

9.11 创建简单的文件系统

创建一个简单的文件系统镜像是很容易的。我们会在这里说明一下Linux内核的回环设备(loopback device)的使用。回环设备使我们能够将一个普通文件当作块设备使用。简而言之,我们先在一个普通文件中创建一个文件系统镜像,然后使用Linux的回环设备来挂载这个文件,就像是挂载一个块设备。

为了创建一个简单的根文件系统,我们首先创建一个内容为全0的、固定大小的文件:

237.png 这条命令会创建一个大小为512 KB的文件,内容为全0。我们将文件的内容填充为全0是为了对后面的文件压缩有所帮助,并且确保文件系统中所有未初始化的数据块都有一致的数据模式。使用 dd 命令的时候要小心。如果在执行 dd 命令时没有限制范围( count= )或者指定的范围不对,它会在你的硬盘驱动器中填满数据并有可能造成系统崩溃。 dd 是一个强大的工具;使用它时应当谨慎。如果你以root用户的身份执行类似 dd 这样的命令,命令行中的简单笔误会摧毁无数文件系统。

当我们创建好新的镜像文件后,我们需要对其进行格式化,以使其包含一个给定文件系统所定义的数据结构。在这个例子里,我们会创建一个ext2文件系统。代码清单9-20显示了格式化的详细过程。

代码清单9-20 创建一个ext2文件系统镜像

238.pngdd 一样, mkfs.ext2 命令也能摧毁你的系统,所以使用的时候要小心。在这个例子中,我们让 mkfs.ext2 格式化一个文件而不是一个硬盘驱动器的分区(块设备),而它原本也是这么设计的。因此, mkfs.ext2 在发现这个事实之后会询问我们是否继续这个操作。在得到确认之后, mkfs.ext2 接着将一个ext2超级块(superblock)和文件系统的数据结构写入这个文件中。然后,我们就可以使用Linux环回设备来挂载这个文件了,就像挂载其他块设备一样:

239.png 这条命令将文件my-new-fs-image看做是一个文件系统,并将它挂载到名为/mnt/flash的挂载点上。挂载点的名称并不重要;你可以将它挂载到任意位置,只要这个挂载点存在。你可以使用 mkdir 命令来创建挂载点。

当这个新创建的镜像文件被挂载为一个文件系统后,我们就可以随意改变其中的内容了。我们可以添加和删除目录、创建设备节点,等等。我们还可以使用 tar 命令将文件复制到里面,或从中复制出来。改动完成后,假设文件没有超出设备的大小,它们会被保存到文件中。请记住,使用这种方法时,文件系统的大小在创建的时候就确定了而且不能改变。