Linux fdformat 命令

历史命令:fdformat是用于格式化软盘(Floppy Disk)的传统命令。在现代系统中,软盘已很少使用,但该命令在某些特定场景(如旧设备维护、复古计算)中可能仍有价值。

命令简介

fdformat用于低级格式化软盘驱动器。它为软盘创建物理格式化,包括磁道和扇区的划分。与高级格式化命令(如mkfs)不同,fdformat执行的是物理级别的格式化。

命令语法

fdformat [选项] 设备名

常用选项

选项 说明
-n 不验证格式化后的磁盘
-v 详细模式,显示格式化进度
-f 强制格式化,不询问确认
-h 显示帮助信息
-V 显示版本信息
-c 检查坏道(某些版本支持)

常见软盘设备名

设备名 说明
/dev/fd0 第一个软盘驱动器(A:)
/dev/fd1 第二个软盘驱动器(B:)
/dev/fd0d360 360KB 5.25英寸软驱
/dev/fd0h1200 1.2MB 5.25英寸软驱
/dev/fd0h1440 1.44MB 3.5英寸软驱
/dev/fd0h2880 2.88MB 3.5英寸软驱

使用示例

1. 基本软盘格式化

# 格式化第一个软盘驱动器(默认1.44MB)
fdformat /dev/fd0

# 格式化第二个软盘驱动器
fdformat /dev/fd1

2. 详细模式格式化

# 显示格式化进度信息
fdformat -v /dev/fd0

# 输出示例:
# Formatting /dev/fd0 ...
# Track 0 head 0 done.
# Track 0 head 1 done.
# Format complete.

3. 不验证的快速格式化

# 格式化后不进行验证(更快)
fdformat -n /dev/fd0

4. 强制格式化(无确认提示)

# 跳过确认提示直接格式化
fdformat -f /dev/fd0

5. 完整软盘使用流程

# 1. 检查软驱状态
ls /dev/fd*

# 2. 插入软盘

# 3. 检查软盘是否可读
dd if=/dev/fd0 of=/dev/null bs=512 count=1

# 4. 低级格式化
fdformat /dev/fd0

# 5. 创建文件系统(高级格式化)
mkfs.msdos /dev/fd0
# 或
mkfs.vfat /dev/fd0

# 6. 挂载软盘
mkdir /mnt/floppy
mount /dev/fd0 /mnt/floppy

# 7. 使用软盘...
# 例如复制文件
cp myfile.txt /mnt/floppy/

# 8. 卸载软盘
umount /dev/fd0

软盘容量与格式

容量 尺寸 扇区/磁道 磁头数 磁道数
360 KB 5.25英寸 9 2 40
720 KB 3.5英寸 9 2 80
1.2 MB 5.25英寸 15 2 80
1.44 MB 3.5英寸 18 2 80
2.88 MB 3.5英寸 36 2 80

常见问题解决

1. 软驱无法识别

# 检查内核是否识别软驱
dmesg | grep floppy

# 加载软驱内核模块
modprobe floppy

# 检查软驱设备文件是否存在
ls -la /dev/fd*

2. 软盘写保护错误

# 检查软盘是否写保护
# 3.5英寸软盘:滑动写保护开关
# 5.25英寸软盘:贴写保护贴纸

# 如果软盘写保护,格式化会失败:
# fdformat: /dev/fd0: Permission denied

3. 软盘损坏或坏道

# 尝试强制格式化
fdformat -f /dev/fd0

# 如果持续失败,软盘可能已损坏
# 可尝试使用badblocks检查
badblocks -v /dev/fd0

高级用法

1. 格式化不同容量软盘

# 设置软盘容量(需要先设置参数)
# 使用setfdprm设置软盘参数
setfdprm /dev/fd0 1440/1440

# 然后格式化
fdformat /dev/fd0

# 或者直接使用相应设备文件
fdformat /dev/fd0h1440  # 1.44MB
fdformat /dev/fd0h1200  # 1.2MB
fdformat /dev/fd0d360   # 360KB

2. 软盘参数设置

# 查看当前软驱参数
getfdprm /dev/fd0

# 设置软盘参数(容量、磁道等)
# 格式:setfdprm 设备名 容量/容量 [参数]
setfdprm /dev/fd0 1440/1440

# 常用参数格式:
# 720/720    - 720KB 软盘
# 1440/1440  - 1.44MB 软盘
# 1200/1200  - 1.2MB 软盘
# 2880/2880  - 2.88MB 软盘

3. 创建软盘镜像文件

# 创建空白软盘镜像
dd if=/dev/zero of=floppy.img bs=512 count=2880

# 格式化镜像文件(通过loop设备)
sudo losetup /dev/loop0 floppy.img
sudo fdformat /dev/loop0
sudo mkfs.msdos /dev/loop0
sudo losetup -d /dev/loop0

# 挂载镜像文件
mkdir /mnt/floppy_img
sudo mount -o loop floppy.img /mnt/floppy_img

重要注意事项

  • 数据销毁:fdformat会完全擦除软盘上的所有数据,无法恢复
  • 硬件限制:只能格式化软盘,不能用于硬盘、USB闪存等设备
  • 权限要求:需要root权限或软驱设备访问权限
  • 物理损坏:频繁格式化可能加速软盘物理损坏
  • 历史命令:现代Linux系统可能默认不安装软驱工具包

安装软驱工具

如果系统没有fdformat命令,可以安装相应的工具包:

# Debian/Ubuntu系统
sudo apt-get install fdutils

# CentOS/RHEL系统(可能已废弃,需从源码编译)
sudo yum install util-linux

# 编译安装fdutils
wget ftp://ftp.tux.org/pub/knaff/fdutils/fdutils-5.5.tar.gz
tar -xzf fdutils-5.5.tar.gz
cd fdutils-5.5
./configure
make
sudo make install

相关命令

  • mkfs - 创建文件系统(高级格式化)
  • setfdprm - 设置软盘参数
  • getfdprm - 获取软盘参数
  • badblocks - 检查磁盘坏道
  • dd - 磁盘数据复制和转换
  • mount - 挂载文件系统
  • fdisk - 磁盘分区工具