-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy path8_Disk_File_System_Manage
More file actions
112 lines (72 loc) · 4.77 KB
/
8_Disk_File_System_Manage
File metadata and controls
112 lines (72 loc) · 4.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Linux使用ext2文件系统
它使用inode和block, superblock来对文件进行管理。inode用于记录文件的权限与属性,block则用于记录文件实际内容,superblock记录整个文件系统相关信息
--------------------------------------------------------------------------------------------------------------------------------------------------
Superblock主要记录的内容有:
* block与inode的总量
* 未使用与已使用的inode/block数量
* 文件系统的挂载时间、最近一次写入时间、最近一次检验磁盘(fsck)的时间等文件系统的相关信息
* 一个validbit数值,若此文件系统已被挂载,则validbit 为0,否则为1
* File System Description 文件系统描述说明:这个区段可以描述每个block group的开始与结束的block号码,以及说明每个区段分别介于哪一个block号码之间
* block bitmap 块对照表:新建和删除文件时,会根据bitmap来确定哪些block是空的可以写入,哪些block需要被释放
* inode bitmap inode对照表:与块对照表类似,不过用于记录inode的信息
ext2文件系统所支持的block大小有1KB,2KB,4KB三种,不同的block大小支持的单一文件大小和最大文件系统总容量是不同的。具体如下:
block大小 | 1KB | 2KB | 4KB
------------------|-------|-------|------
最大单一文件限制 | 16GB | 256GB | 2TB
最大文件系统总容量| 2TB | 8TB | 16TB
--------------------------------------------------------------
ext2文件系统的block的其它限制:
1. 原则上,block的大小与数量在格式化后就不能再改变了。除非重新格式化
2. 每个block内最多只能够放置一个文件的数据
3. 如果文件大于block的大小,则一个文件会被放在多个block中
4. 如果文件小于block的大小,则该block的剩余空间也不能再被使用了。就会造成浪费
(安卓手机的可用容量经常会莫名其秒地变小,而自己明明并没有放置什么大文件,很有可能就是因为使用过程中产生的大量小文件占用了过多的block而造成了空间的浪费所致)
--------------------------------------------------------------------------------
在shell中可使用dumpe2fs命令查看superblock信息
语法:dumpe2fs [-bh] 设备文件名
-b 列出保留为坏道的部分
-h 仅列出superblock 的数据,不列出其它内容
--------------------------------------------------------------------------------------
## 8.1.8 其它Linux支持的文件系统与VFS
想要知道自己的Linux支持的文件系统有哪些,可以查看如下目录;
ls -l /lib/modules/(系统模块)/kernel/fs
系统目前已加载到内存中支持的文件系统则可如下查看:
cat /proc/filesystems
VFS - Virtual Filesystem Switch 虚拟文件系统
整个Linux认识的文件系统都是VFS在进行管理,它为我们忽略掉了不同文件系统之间的不同
## 8.2.1 磁盘与目录的容量:df, du
df 列出文件系统的整体磁盘使用量
语法:
df [-ahikHTm] [目录或文件名]
-a 列出所有的文件系统,包括系统特有的 /proc等文件系统
-k 以KB的容量显示各文件系统
-m 以MB的容量显示各文件系统
-h 以人们较易阅读的GB、MB、KB等格式自行显示
-H 以M=1000K代替M=1024K显示
-T 连同该分区的文件系统名称一并列出
-i 不用硬盘容量,而以inode的数量显示
du 评估文件系统的磁盘使用量(常用于评估目录所占容量)
语法:
du [-ahskm] 文件或目录名称
-a 列出所有的文件与目录容量,因为默认仅统计目录下面的文件量
-h 以人们易读的容量格式显示
-s 列出总量,不列各目录占用总量
-S 不包括子目录下的总计
-k 以KB列出容量显示
-m 以MB列出容量显示
### 8.4 设置开机挂载
## 8.4.1 开机挂载/etc/fstab及/etc/mtab
系统挂载的一些限制:
*根目录/是必须挂载的,而且一定要先于其它设备被挂载
*其他挂载点必须为已存在的目录
*所有挂载点在同一时间内,只能挂载一次
*所有分区在同一时间内,只能挂载一次
*卸载前必须将工作目录移到挂载点之外
开机自动挂载的配置文件为:/etc/fstab (file system table)
该文件下的列表有六个字段,分别为:
1. 磁盘设备文件名或该设备的Label
2. 挂载点
3. 磁盘分区的文件系统
4. 文件系统参数。即在mount时候加入的额外参数
5. 是否能被dump备份命令使用。0代表不要做备份,1代表每天进行备份,2代表不定日期备份。通常为0或1
6. 是否以fsck检验扇区。在开机时系统默认会使用fsck进行文件系统检验。0为不检验,1为最早检验(一般只有根目录设置为1),2也是检验,不过晚于1