软盘的一面或两面涂有和硬盘类似的磁性介质。软盘自己没有读写头,读写头在驱动器上。 软盘相当于硬盘的一张盘片,但可移动,一个驱动器可以存取不同的软盘,而硬盘则是一个独立的单元。
如同硬盘,一张软盘也分为磁道和扇区(软盘2面上的相同的磁道组成柱面),但数量要比硬盘少得多。
软驱通常可以使用几中不同的盘片,例如,一个3.5'软驱可以使用720KB和1.44MB的软盘。 因为软驱操作有些不同,而操作系统必须知道软盘的容量,所以软驱有许多设备文件,每个都与软驱和软盘种类有关。 因此,/dev/fd0H1440 是第一个软驱(fd0),必须是3.5'软驱,使用3.5'高密度软盘(H), 容量是1440KB(1440),即普通的3.5'HD软盘。 软盘设备的命名约定见[Anv]。
软驱的名字是复杂的,因此Linux有一个特定的软驱设备类型,能自动检测软驱中软盘的种类。 它使用不同的软盘类型试图读取新插入的软盘的第一个扇区,直到找到正确的一个。这自然要求软盘是已经格式化过的。 自动设备叫/dev/fd0 、/dev/fd1 等。
存取软盘的自动设备的参数可用程序setfdprm 设定。 这可使你使用不是通常容量的软盘,例如有非标准扇区数的软盘,或自动检测由于某种原因失败或适当的设备文件丢失。
Linux除了所有标准的,还能处理许多非标准的软盘格式。这有时需要特殊的格式化程序。 我们现在先跳过这些软盘格式,同时你可以查看/etc/fdprm 文件。 它定义了setfdprm 识别的设定。
操作系统必须知道软驱何时换了软盘,例如,以免使用上一张软盘的cache数据。 不幸的是,当用于此的信号线断了或不好时,当在MSDOS中使用时,这并不总有效。 如果你曾遇到过软驱的这种怪异的问题,可能是这个原因。解决这个问题的唯一方法是修理软驱。