Linux根文件系统
概念
根文件系统是什么
根文件系统是特殊用途的文件系统,必须属于某种文件系统格式。那么文件系统是用来干嘛的?
- 首先,存储设备(块设备,像硬盘、 flash 等) 是分块(扇区)的,物理上底层去访问存储设备时是按照块号(扇区号)来访问的。这就很麻烦。
- 其次,文件系统是一些代码,是一套软件,这套软件的功能就是对存储设备的扇区进行管理,将这些扇区的访问变成了对目录和文件名的访问。我们在上层按照特定的目录和文件名去访问一个文件时,文件系统会将这个目录 + 文件名转换成对扇区号的访问。
- 最后,不同的文件系统的差异在于对这些扇区的管理策略和方法不同,如坏块管理、 碎片管理。
根文件系统中有什么
- 最重要的就是 linuxrc
- dev 目录下的设备文件。在 linux 中一切皆是文件,硬件设备被虚拟化成一个设备文件。
- sys 和 proc 目录。可以为空但是必须有,和驱动有关。 属于 linux 中的虚拟文件系统。
- etc 目录。存放运行时配置文件。 /etc 目录下的所有配置文件会直接或者间接的被 /linuxrc 所调用执行,完成操作系统的运行时配置。 etc 目录是制作 rootfs 的关键。
- lib 目录下放的是当前操作系统中的动态和静态链接库文件
根文件系统的形式
-
镜像文件形式
- 使用专用工具软件制作的可供烧录的镜像文件
- 镜像中包含了根文件系统中的所有文件
- 烧录此镜像类似于对相应分区格式化。
- 镜像文件系统具有一定的格式,格式是内化的,跟文件名后缀是无关的。
-
文件夹形式
- 根文件系统其实就是一个包含特定内容的文件夹而已
- 根文件系统可由任何一个空文件夹添加必要文件构成而成
- 根文件系统的雏形就是在开发主机中构造的文件夹形成的
-
总结
-
镜像文件形式的根文件系统主要目的是用来烧录到块设备上,设备上的内核启动后去挂载它。镜像文件形式的根文件系统是由文件夹形式的根文件系统使用专用的镜像制作工具制作而成的。
-
最初在开发主机中随便 mkdir 创建了一个空文件夹,然后向其中添加一些必要的文件(包括etc 目录下的运行时配置文件、/bin 等目录下的可执行程序、 /lib 目录下的库文件等···)后就形成了一个文件夹形式的 rootfs。 然后这个文件夹形式的 rootfs 可以被 kernel 通过 nfs 方式来远程挂载使用,但是不能用来烧录块设备。我们为了将这个 rootfs 烧录到块设备中,于是用一些专用的软件工具,将其制作成可供烧录的一定格式的根文件系统镜像。
-
文件夹形式的 rootfs 是没有格式的,制作成镜像后就有了一定的 rootfs 格式了, 格式是由我们的镜像制作过程和制作工具来决定的。 每一种格式的镜像制作工具的用法都不同。
-
浙公网安备 33010602011771号