磁盘分区完毕后还需要进行格式化(format),之后操作系统才能够使用这个分割槽。 为什么需要进行『格式化』呢?这是因为每种操作系统所设定的文件属性/权限并不相 同, 为了存放这些档案所需的数据,因此就需要将分割槽进行格式化,以成为操作系统能够利用的『文件系统格式(filesystem)』。
较新的操作系统的档案数据除了档案实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的档案权限(rwx)与文件属性(所有者、群组、时间参数等)。 文件系统通常会将这两部份的数据分别存放在不同癿区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。
每个 inode 与 block 都有编号,至于这三个数据的意义可以简略说明如下:
superblock:记录此 filesystem 的整体信息,包括 inode/block 的总量、使用量、剩余量, 以及文件系统癿格式不相关信息等;
inode:记录档案的属性,一个档案占用一个 inode,同时记录此档案的数据所在的 block 号码;
block:实际记录档案的内容,若档案太大时,会占用多个 block 。
由于每个 inode 与 block 都有编号,而每个档案都会占用一个 inode ,inode 内则有档案数据放置的block 号码。 因此,我们可以知道的是,如果能够找到档案的 inode 的话,那就自然就会知道这个档案所放置数据的 block 号码, 当然也就能够读出该档案的实际数据了。这是个比较有效率的作法,因为如此一来我们的磁盘就能够在短时间内读取出全部的数据, 读写的效能比较好。
这种数据存取的方法我们称为索引式文件系统(indexed allocation)。那有没有其他的惯用文件系统可以比较一下啊? 有的,那就是我们惯用的随身碟(闪存),随身碟使用的文件系统一般为 FAT 格式。FAT 这种格式的文件系统并没有 inode 存在,所以 FAT 没有办法将这个档案的所有 block 在一开始就读取出来。每个 block 号码都记录在前一个 block 当中。