概述Linux文件系统:深入了解Linux根文件系统
本文参考资料:http://tieba.baidu.com/p/2852126057
https://blog.****.net/special00/article/details/51262334
1. 文件系统
- 文件系统是一个对存储设备上的数据进行组织的机制,这种机制便于用户和操作系统进行交互。文件系统有对应的物理空间,Linux下每个分区都是一个文件系统,都有自己的目录结构。文件系统包含着文件中的数据、文件系统的结构,操作系统内的所有文件、目录、软连接以及文件保护信息等都存储在其中。Linux支持多种格式的文件系统,并且可以同时挂载多个文件系统。
- Linux下文件系统的体系结构如下:
- VFS,虚拟文件系统。VFS层的作用是隔离了不同文件系统之间的差异,为上层提供统一的API接口。
- General Block Device Layer层的作用是隔离不同存储设备的硬件差异,为上层提供统一的IO操作接口。
2. 根文件系统
2.1 根文件系统简述
- 根文件系统首先是一种文件系统,它不仅具有普通文件系统的存储数据文件的功能,而且相对于普通的文件系统,它的特殊之处在于:它是内核启动时所挂载的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。
- Linux的文件结构是单个树状结构,根目录是所有Linux文件和目录所在的地方,需要挂载一个具体的磁盘分区。根文件系统被挂载到根目录下“/”后,在根目录下就有根文件系统的各个目录,文件:/bin /sbin /mnt等,再将其他分区挂接到/mnt目录上,/mnt目录下就有这个分区的各个目录,文件。
- 挂载,指的是将一个文件系统和一个存储设备进行关联。执行挂载时,要提供文件系统类型、文件系统和一个挂载点。
P.S.:上图目录结构中所列出的目录/bin,/dev,/etc,/lib,/proc,/var,/usr对于根文件系统来说是必须具有的,其他目录都是可选的。
2.2 查看文件系统挂载情况
“mount”命令,查看具体的挂载情况:
# mount sec=sys,mountport=65535,mountproto=,addr=192.168.1.100)
|
“df”命令,查看文件系统的相关信息:
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 19478204 5695772 12769952 31% / tmpfs 175892 0 175892 0% /var tmpfs 175892 0 175892 0% /tmp tmpfs 175892 0 175892 0% /dev |
2.3 根文件系统的目录结构
在嵌入式体统中,为了精简系统。/bin,/dev,/etc,/lib,/proc,/var,/usr对于根文件系统来说是必须具有的,其他目录都是可选的。
/ |
/bin |
该目录下存放所有用户都可以使用的、基本的命令,譬如cd,ls,cp等。这些命令在挂载其它文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中。 |
/sbin |
该目录下存放的是基本的系统命令,它们用于启动系统,修复系统等,与/bin目录相似,在挂接其他文件系统之前就可以使用/sbin,所以/sbin目录必须和根文件系统在同一个分区中。 |
|
/dev |
该目录下存放的是设备文件,设备文件是Linux中特有的文件类型。在Linux系统下,以文件的方式访问各种设备,即通过读写某个设备文件操作某个具体硬件。譬如通过"dev/ttySAC0"文件可以操作串口0。 |
|
/etc |
该目录下存放着各种配置文件,对于PC上的Linux系统,/etc目录下的文件和目录非常多,这些目录文件是可选的,它们依赖于系统中所拥有的应用程序是否需要配置文件。在嵌入式系统中,这些内容可以大为精减。 |
|
/lib |
该目录下存放共享库和可加载驱动程序模块。共享库用于启动系统、支持可执行程序的运行。 |
|
/home |
用户目录,它是可选的,对于每个普通用户,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置文件。 |
|
/root |
根用户的目录,与此对应,普通用户的目录是/home下的某个子目录。 |
|
/usr |
该目录存放的是共享、只读的程序和数据,/usr目录下的内容可以在多个主机间共享。 |
|
/var |
与/usr目录相反,/var目录中存放可变的数据,比如spool目录(mail,news),log文件,临时文件。 |
|
/proc |
该是一个空目录,常作为proc文件系统的挂载点,proc文件系统是个虚拟的文件系统,它没有实际的存储设备,里面的文件都是由内核临时生成的,用来表示系统的运行状态,也可以操作其中的文件控制系统。 |
|
/mnt |
用于临时挂载某个文件系统的挂接点,通常是空目录,也可以在里面创建子目录来临时挂载光盘、硬盘,譬如/mnt/cdram /mnt/hda1 。 |
|
/tmp |
用于存放临时文件,通常是空目录,一些需要生成临时文件的程序用到的/tmp目录下,所以/tmp目录必须存在并可以访问。 |
3. 常用的文件系统
Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统 进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。
各文件系统的具体介绍详见。
上一篇: 理解根文件系统的重要性
推荐阅读
-
linux 启动 minicom、u-boot 的常用命令、网络命令 tftp、nfs/根文件系统、u-boot 的 bootargs 环境变量
-
紧急模式问题处理 - 图 1 紧急模式 根本原因分析 应急模式提供了尽可能小的环境,即使无法进入应急模式,也可以在其中修复系统。在应急模式下,系统只安装根文件系统供读取,不尝试安装任何其他本地文件系统,不激活网络接口,只启动一些基本服务。 进入应急模式的原因通常是 /etc/fstab 文件中存在错误,导致文件系统挂载失败。 文件系统中存在错误,导致。 约束和限制 本节适用于 Linux 操作系统紧急模式。程序涉及修复文件系统。修复文件系统有丢失数据的风险,因此请先备份数据,然后再执行修复操作。 处理方法 输入根密码,然后进入修复模式。 在应急模式下,根分区以只读模式挂载。要修改根目录中的文件,需要执行以下命令以读写模式重新挂载根分区。# mount -o rw,remount / 请执行以下命令首先检查 fstab 文件是否有误,然后尝试挂载所有未挂载的文件系统。# mount -a 如果挂载点不存在,请创建一个挂载点。 如果不存在此类设备,请注释或删除挂载行。 如果指定了不正确的挂载选项,请将挂载参数更改为正确的参数。 如果没有发生错误,但出现 UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY 消息(通常是由文件系统错误引起的),请跳至第 7 步。 执行以下命令打开 /etc/fstab 以修改相应的错误。# vi /etc/fstab /etc/fstab 文件包含以下字段,以空格分隔:[文件系统] [dir] [type] [options] [dump] [fsck] 表 1 /etc/fstab 参数 说明 参数 说明 [文件系统] 要挂载的分区或存储设备。 文件系统]列建议以 UUID 的形式写入。执行 blkid 命令可查询设备文件系统 UUID。 参考格式如下: # <device> <dir> <type> <options> <dump> <fsck>; UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2 使用 UUID 的好处是,它们与磁盘顺序无关。如果你在 BIOS 中更改了存储设备的顺序,或重新插入了存储设备,或者因为某些 BIOS 可能会随机更改存储设备的顺序,那么使用 UUID 会更有效率。 [文件系统] 文件系统]的挂载位置。 类型 挂载设备或分区的文件系统类型,支持多种不同的文件系统:ext2、ext3、ext4、reiserfs、xfs、jfs、smbfs、iso9660、vfat、ntfs、swap 和 auto。 设置为自动类型后,挂载命令会猜测所使用的文件系统类型,这对 CDROM 和 DVD 等移动设备非常有用。 选项 挂载时要使用的参数,有些参数是特定文件系统特有的。例如,默认值参数使用文件系统的默认挂载参数,ext4 的默认参数为:rw、suid、dev、exec、auto、nouser、async。 有关更多参数,请执行以下命令查看 man 手册:# man mount
-
CentOS Linux学习指南:深入理解文件系统
-
深入解析Linux根文件系统的挂载过程
-
详细解析Linux系统中rootfs切换至真实根文件系统的源码(包含手动创建根文件实例的工作项目)
-
[架构之路-30]:目标系统 - 系统软件 - Linux OS根文件系统rootfs的概念、组成、制作以及用busybox制作根文件系统
-
深入解析Linux根文件系统(rootfs)原理
-
设计Linux根文件系统
-
概述Linux文件系统:深入了解Linux根文件系统
-
在Linux系统中,了解如何制作和挂载根文件系统rootfs的基本操作