# 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测试语法是否正确。
最近更新时间: 2020/9/6 11:30:38