Linux 文件系统
文件系统
文件系统结构
在Linux中,把整个逻辑设备按照块为单位进行划分,结构如下
| 引导块 | 专用块 | i节点区 | 文件存储区 |
|---|
- 引导块(0号块):用于启动系统,只有根文件系统的引导块有效
- 专用块/管理块/超级块(1号块):存放文件系统的管理信息,在使用mkfs时初始化
- i节点块:存放i-node,在使用mkfs时确定,每块可以存放若干个i节点,每个i节点大小固定,例如块大小为512KB,i节点大小为64KB,则每块可存放8个i节点。i节点从0开始编号,每个文件对应一个i节点,i节点中存放信息包括:指向文件存储区的索引指针、文件的类型、属主、权限、组、link数、大小等等
- 文件存储区:用于存放文件数据,其中目录表也存放于此
目录表结构
目录表存放于文件存储区中,目录表由若干个目录项构成,目录项包括文件名和i节点号。
- 目录
- 目录项1
- 文件名
- i节点号
- 目录项2
- 文件名
- i节点号
- ...
- 目录项n
- 目录项1
例如要查找root/a0/bn这个文件,查找过程如下:
- 通过根目录i节点号(固定),在i节点区找到对应根目录的i节点
- 通过根目录i节点,在文件存储区中找到根目录的目录表
- 从根目录的目录表中读取文件名为a0的目录项,得到对应的i节点号AAA
- 利用上面得到的i节点号AAA在i节点区中找到对应a0的i节点,解析后发现a0的类型是目录,在文件存储区中读取i节点号AAA对应的目录
- 通过上面得到的a0目录,读取文件名为bn的目录项,得到对应的i节点号BBB
- 利用上面得到的i节点号BBB在i节点区中找到对应bn的i节点,解析后发现bn的类型是文件,在文件存储区中读取i节点号BBB对应的文件
- 通过上述操作最终得到root/a0/bn这个文件

文件系统的相关指令
mkfs:创建一个文件系统(make file system)
mkfs /dev/sdb
在块设备文件/dev/sdb上创建文件系统
mount:安装子文件系统/显示已安装的所有子文件系统
mount /dev/sdb /mnt
操作子目录/mnt 就是对子文件系统的访问
mount
不带参数→显示已安装的所有子文件系统
umount:卸载文件系统
umount /dev/sdb
卸载一个已安装的子文件系统
df:列出系统的空闲空间
df -h
将使用的空间大小以方便阅读的方式显示(human-readable)
stat:读取i节点信息
stat myfile
读取myfile的i节点相关信息

浙公网安备 33010602011771号