Linux磁盘与文件系统管理
- 系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文件无法存储的困扰。
- 磁盘分区完毕后还需要格式化(format),之后操作系统才能够使用这个文件系统。为什么需要格式化?因为每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式(filesystem)。
- Windows 98以前的文件系统是FAT(或FAT16),Windows 2000以后的版本有所谓的NTFS文件系统,而Linux的正统文件系统则为ext2(Linux second Extended file system, ext2fs)。此外Windows操作系统不支持ext2文件系统。
- 传统的磁盘和文件系统应用中,一个分区就只能够被格式化成为一个文件系统,所以我们可以说一个文件系统就是一个硬盘分区。但是新技术的利用,例如LVM和软件磁盘阵列(software raid),可以将一个分区格式化为多个文件系统,也能够将多个分区合成一个文件系统。所以说,目前我们在格式化时已经不再说成针对硬盘分区来格式化了。一个被挂载的数据通常称为【文件系统,filesystem】而不是硬盘分区。
- 基本上Linux的传统文件系统为ext2,该文件系统内的信息主要有:
- 超级区块:记录此文件系统的整体信息,包括inode/区块的总量、使用量、剩余量,以及文件系统的格式与相关信息等。
- inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的区块号码。
- 数据区块:实际记录文件的内容,若文件太大时,会占用多个数据区块。
- ext2文件系统的数据存取为索引式文件系统(indexed allocation)。
- 需要碎片整理的原因就是文件写入的数据区块太过离散,此时文件读取的性能将会变得很差,这个时候可以通过碎片整理将同一个文件所属的区块集合在一起。FAT的文件系统需要不时地碎片整理一下,而ex2因为是索引式文件系统,基本上不太需要进行碎片整理。
- ext2文件系统主要有:引导扇区、超级区块、inode对照表、区块对照表、inode表、数据区块等六大部分。
- 数据区块是用来放置文件内容数据的地方,在ext2文件系统中所支持的区块大小有1K、2K及4K三种。
- inode记录文件的属性/权限等数据,其他重要特征为:每个inode大小均为固定,有128/256字节两种基本容量。每个文件都仅会占用一个inode而已,因此文件系统能够建立的文件数量与inode的数量有关。
- 文件的数据区块在记录文件的实际数据,目录的数据区块则在记录该目录下面文件名与其inode号码的对照表。
- 日志式文件系统(journal)会多出一块记录区,随时记载文件系统的主要活动,可加快系统恢复时间。
- Linux文件系统为增加性能,会让内存作为磁盘高速缓存。
- 将文件系统与目录树结合的操作,我们称为【挂载】。挂载点一定是目录,该目录为进入该文件系统的入口。
- 硬链接只是多了一个文件名对该inode号码的链接而已。
- 符号链接就类似Windows的快捷方式功能。
- 磁盘的使用必需要经过:分区、格式化与挂载,分别常用的命令为:gdisk、mkfs、mount三个命令。
- 对磁盘进行划分,以建立可用的硬盘分区。
- 对该硬盘分区格式化,以建立系统可用的文件系统。
- 若想要仔细一点,则可对刚刚建立好的文件系统进行校验。
- 在Linux系统上,需要建立挂载点(亦即是目录),并将它挂载上来。
- 文件系统挂载前的注意事项:
- 单一文件系统不应该被重复挂载在不同的挂载点(目录)中。
- 单一目录不应该重复挂载多个文件系统。
- 要作为挂载点的目录,理论上应该都是空目录才行。
- 启动自动挂载可参考/etc/fstab/的设置,设置完毕务必使用mount -a测试语法是否正确。