文章目录
1 深入文件系统的问题
1.1 block的大小越大越好越小越好
- 一般默认是4096byte,
- block小的话,会节省空间,但是会影响读取速度,
- block大的话,对放置大文件,比如iso有帮助,可以提高读取速度,但是对于小文件,会浪费很多空间。
1.2 磁盘空间不足,原因可能是什么
- block
- inode
- block被进程占用没被释放
- 不管事block或者inode任何一项满了,磁盘就不能再放东西了。
1.3 硬链接为什么不能跨文件系统或不能对目录做
- 跨文件
-
-
- 因为在不同的文件系统中,inode 号是重新计算的。
-
- 对目录
-
-
- 因为如果给目录建立硬链接,那么不仅目录本身需要重新建立,目录下所有的子文件,包括子目录中的所有子文件都需要建立硬链接,这对当前的 Linux 来讲过于复杂。
-
1.4 文件管理命令(创建,复制,移动,删除)对inode,block操作是怎样的?
- 创建
-
-
- 向当前文件系统申请空闲inode个,元数据
- 按需申请空闲block,存放实际数据
- 在上一级目录的block中添加目录项(entry)
-
- 复制
-
-
- 向目标目录所在文件系统申请空闲inode和block
- 把源文件的block中的数据复制到目标block中
-
- 移动
-
-
- 同文件系统 只是移动了目录项
- 不同文件系统 复制+删除
-
- 删除
-
-
- 硬链接数=1
-
- 把block和inode置空
- 移除目录项
- 硬链接数>1
-
- 移除目录项
- 硬链接数-1
-