软盘由覆盖有一层或两层与硬盘类似磁性物质的柔性薄膜组成。软盘本身没有读写头,读写头包含在驱动器中。软盘相当于硬盘中的一个盘片,但是它是可移除的,一个驱动器可以用来访问不同的软盘,同一个软盘可以被多个驱动器读取,而硬盘是一个不可分割的单元。
与硬盘类似,软盘也分为磁道和扇区(软盘两侧对应的两个磁道形成一个柱面),但是软盘上的磁道和扇区比硬盘少得多。
软盘驱动器通常可以使用几种不同类型的磁盘;例如,一个 3.5 英寸的驱动器可以使用 720 KB 和 1.44 MB 的磁盘。由于驱动器必须以稍微不同的方式运行,并且操作系统必须知道磁盘有多大,因此软盘驱动器有很多设备文件,每种驱动器和磁盘类型的组合对应一个设备文件。因此,/dev/fd0H1440是第一个软盘驱动器 (fd0),它必须是一个 3.5 英寸的驱动器,使用 3.5 英寸、高密度磁盘 (H),大小为 1440 KB (1440),即一个普通的 3.5 英寸 HD 软盘。
然而,软盘驱动器的名称很复杂,因此 Linux 有一种特殊的软盘设备类型,可以自动检测驱动器中磁盘的类型。它的工作原理是尝试使用不同的软盘类型读取新插入软盘的第一个扇区,直到找到正确的类型。这自然需要软盘首先被格式化。自动设备被称为/dev/fd0, /dev/fd1等等。
自动设备用来访问磁盘的参数也可以使用程序 setfdprm 设置。如果您需要使用不遵循任何常用软盘尺寸的磁盘,例如,如果它们有不寻常的扇区数,或者自动检测由于某种原因失败并且缺少正确的设备文件,这将非常有用。
除了所有标准格式外,Linux 还可以处理许多非标准的软盘格式。其中一些需要使用特殊的格式化程序。我们现在跳过这些磁盘类型,但与此同时,您可以查看/etc/fdprm文件。它指定了 setfdprm 识别的设置。
操作系统必须知道何时软盘驱动器中的磁盘已更换,例如,为了避免使用来自先前磁盘的缓存数据。不幸的是,用于此目的的信号线有时会损坏,更糟糕的是,从 MS-DOS 中使用驱动器时,这并不总是明显的。如果您在使用软盘时遇到奇怪的问题,这可能是原因。纠正它的唯一方法是修理软盘驱动器。