应该周期性地用badblocks 命令检查坏块它输出找到的所有坏块的编号的列表。列表给fsck 记录在文件系统数据结构中,使操作系统存储数据时不使用这些坏块。举例:
$ badblocks /dev/fd0H1440 1440 > bad-blocks
$ fsck -t ext2 -l bad-blocks /dev/fd0H1440
Parallelizing fsck version 0.5a (5-Apr-94)
e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Check reference counts.
Pass 5: Checking group summary information.
/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED *****
/dev/fd0H1440: 11/360 files, 63/1440 blocks
$
如果badblocks报告一个块已经使用,e2fsck 将试着将此块移到其他地方。如果该块真的坏了,而不是在坏块边缘,文件内容可能丢失。
Fighting fragmentation
文件写到磁盘时,不一定在连续的块中。没在连续块中的文件叫碎片。因为磁盘的读写头回更多地移动,读碎片文件会花较长的时间。虽然如果有好的读前缓冲系统不会有什么问题,但最好还是避免碎片。
Ext2文件系统试图使碎片最少,即使不能将一个文件的所有块存在连续扇区中,也尽量靠近。 Ext2通常有效地安排里文件其他块最近的空闲块,因此很少需要关心碎片问题。 Ext2文件系统有一个消除碎片程序,请看参考书目中的 [TV]。
有许多MSDOS消碎片程序在文件系统中移动块以消除碎片。其他一些文件系统,消碎片必须通过备份-重产生-回存文件系统来完成。对于所有文件系统,消碎片应该备份文件系统,因为很多原因可能在消碎片过程中导致错误。
对所有文件系统的其他工具
一些其他工具对管理文件系统有用。 df (Disk Free)显示一个或多个文件系统的空闲磁盘空间。 du (Disk Usage)显示一个目录和其内的所有文件使用了多少磁盘空间。这用于发现磁盘空间浪费。
sync 强制将磁盘缓冲的所有未写块写入磁盘(见 5.6)。这一般无须手工完成,由守护进程update 自动完成。这在有些情况下很有用,例如,如果update 或其辅助进程bdflush 死了,或你不能等运行update 必须马上 关闭电源。