next up previous contents index
Next: Partitions Up: Using Disks and Other Previous: Tapes

格式化

格式化在磁介质上写用于标记磁道和扇区的标志的过程。 磁盘格式化前,其磁表面是完成的一块。格式化后,混沌变为秩序,建立的磁道,划分了扇区。 实际细节并非准确地这样,但重要的是:磁盘不经过格式化是不能使用的。

这里术语有些模糊:MS-DOS中,格式化(format)这个词还包括了产生文件系统的过程(下面将讨论的)。 这两个过程经常一起使用,尤其是软盘。当必须区分时,真正的格式化被称为低级格式化low-level formatting, 而建立文件系统被成为高级格式化high-level formatting。 在UNIX圈中,这两者叫格式画format和建立文件系统make a filesystem, 本书中也这样称。

IDE硬盘和一些SCSI硬盘实际上厂商已经做了格式化,并无须重复;因为多数人无须关心它。 实际上,格式化硬盘可能反而不好,比如因为硬盘可能需要用特定的方法格式化使坏扇区被自动 替换。

磁盘经常需要特定的程序来格式化,因为驱动器的格式化逻辑的接口每个驱动器都不一样。 格式化程序经常在控制器BIOS上,或用MSDOS程序提供,这都不太容易在Linux中使用。

格式化中可能会发现磁盘的坏点,叫坏块bad blocks or bad sectors。 这有时由驱动器自己处理。但有时,如果坏块太多,需要一些工作来避免使用磁盘的这部分。 The logic to do this is built into the filesystem; 下面将说明如何增加这些信息到文件系统。另外,产生一个只覆盖这些坏的部分的小分区也是一个办法。 如果坏区较大,这可能是个好办法,因为文件系统有时难以处理大量的坏区。

软盘格式化使用fdformat 。 软盘设备使用给定的参数,例如下面的命令在第一个软驱中格式化一张高密度3.5'软盘:

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
注意,如果想使用自动检测设备(如/dev/fd0 ), 必须用先setfdprm 设定参数。 要得到与上面一样的结果,可以这样:
$ setfdprm /dev/fd0 1440/1440
$ fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
$
选择与软盘类型相符的正确的设备文件通常更方便。 注意,比软盘设计格式化更多的信息容量是没有意义的。

fdformat 也将验证软盘,例如检查坏块。 它在坏块试验几次(你通常能听到,驱动器的噪声很明显)。 If the floppy is only marginally bad (due to dirt on the read/write head, some errors are false signals), fdformat 可能没事,而真正的错误可能退出有效过程。 核心把发现的每个I/O错误打印log信息,送到控制台,或者,如果使用了syslog , 也送到/usr/adm/messages 文件。fdformat  自己不说明哪里出错(也不必考虑,软盘很便宜,坏了就扔)。

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... read: Unknown error
$

badblocks 命令可用于查找任何磁盘或分区的坏块(包括软盘)。 它不格式化磁盘,因此可以用于检查存在的文件系统。下面的例子检查出一张3.5'软盘上的2个坏块:

$ badblocks /dev/fd0H1440 1440
718
719
$
badblocks 输出发现的坏块的块号。 多数文件系统可以避免这样的坏块。他们维护一个已知的坏块列表,在文件系统建立时初始化,并可以在以后修改。 初始的坏块查找可由mkfs 命令完成(它初始化文件系统), 以后可以用badblocks 来检查,新的块可以用fsck 加入。 后面我们将说明mkfs fsck 

许多新型的硬盘自动发现坏块,并企图用一个特定的、保护的好块来代替它。 这对操作系统是不可见的。这种特征应该在硬盘手册的文档中,如果你好奇的话。 但即使这样的硬盘也可能失败,如果坏块数量太大的话,虽然如果这样,那硬盘就基本上不能用了。


next up previous contents index
Next: Partitions Up: Using Disks and Other Previous: Tapes

Lars Wirzenius
Sun Jun 29 13:31:22 EEST 1997