ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux软盘格式化全攻略:从fdformat到mtools的完整实践

Linux软盘格式化全攻略:从fdformat到mtools的完整实践 简介这份PDF资料聚焦Linux下软盘格式化的系统操作面向正在学习操作系统存储管理、需要处理老式软盘设备或希望了解Linux底层设备命令的开发者与运维人员属于一份参考文献型专业指导。内容先梳理软盘设备在/dev/fd0、/dev/fd1下的映射方式再依次说明设备识别、fdformat低级格式化、mke2fs创建ext2文件系统、mount挂载以及taper备份恢复等常用流程并结合setfdprm调整不同容量软盘参数帮助读者从零完成一张1.44MB软盘的完整格式化与数据管理。包内包含1个pdf文件压缩包总大小129KB轻量便于随时查阅。资料对设备文件、命令参数和典型输出都有示例说明适合作为课程实验、系统维护培训或备考Linux基础操作的补充材料。目前已有111人学习浏览说明该主题对理解存储设备管理仍有参考价值读者按步骤操作即可掌握这套传统却完整的软盘管理方法。1. 一张软盘的格式化藏着 Linux 设备管理的半套基本功现在很少有人手里还留着 3.5 英寸软盘但如果你翻出压箱底的老机器或者在做嵌入式、教育场景里的 Linux 维护依然会撞上/dev/fd0这类设备。格式化软盘这件事看似简单其实和格式化一块 NVMe 固态完全不是一个套路——软盘要先做低级格式化划分磁道和扇区再建立文件系统两步缺一不可。今天大部分开发者只认识mkfs.ext4却不知道fdformat这一步而这个被遗忘的命令恰恰是理解 Linux 块设备分层的最佳入口。这篇文章要拆的是 Linux 下四种典型的软盘格式化路径fdformat加mke2fs的手工流程、setfdprm对非常规格式的适配、mtools工具集对 DOS 软盘的无挂载操作以及taper的备份恢复方案。对做系统维护的人来说这套东西不只是考古它涉及设备文件、文件系统元数据、坏块检测和介质参数协商这些概念换到 U 盘、SD 卡上依然成立。2. 设备识别与低级格式化从/dev/fd0到fdformat2.1 软盘设备文件的结构与命名规则Linux 把软盘驱动器当作块设备暴露在/dev目录下命名规律很直接/dev/fd0是第一个软驱对应 PC 的 A 盘/dev/fd1是第二个B 盘。在较新的内核里这些设备节点由udev在检测到软驱控制器时自动创建但老系统上如果没加载floppy模块/dev/fd0根本不会出现需要手动modprobe floppy或者用mknod创建。这里有个细节值得注意/dev/fd0本身并不绑定某种固定的容量格式。一个 3.5 英寸软驱可以读取 720KB、1.2MB、1.44MB 甚至 2.88MB 的介质具体按哪种参数访问取决于你用什么方式打开设备文件。内核维护着一张软盘格式表——在老版本系统里是/etc/fdprm在 util-linux 较新的版本中则是编译进fdutils包里的内置表。这张表记录着每种格式的磁道数、磁头数、每道扇区数和扇区大小。格式名称容量磁道数磁头数每道扇区数典型用途360/360360KB40295.25 英寸双密度720/720720KB80293.5 英寸双密度1440/14401.44MB802183.5 英寸高密度主流2880/28802.88MB80236极少数高端软驱2.2 用setfdprm协商非常规格式正常情况下格式化 1.44MB 软盘直接用缺省参数就行。但如果你手里是 360KB 的老盘或者软驱本身不支持自动识别介质密度内核按默认参数读写就会报I/O error。这时候先查一下格式表再用setfdprm告诉内核你希望用哪一套参数访问这个设备# 查看当前格式表 setfdprm /dev/fd0 -p # 把 /dev/fd0 协商为 360/360 格式 setfdprm /dev/fd0 360/360第一条-p参数打印当前设备的几何参数用于确认内核现在的状态。第二条把设备协商到 360KB 的几何参数——磁道数从 80 降为 40每道扇区数从 18 变为 9。这一步的本质是修改内核中floppy驱动为该设备维护的struct floppy_struct参数块不改变软盘上的物理数据。注意setfdprm的效果是临时的重启或重新加载floppy模块后失效。如果你经常要处理这种老盘可以把setfdprm /dev/fd0 360/360写进/etc/rc.local或 systemd service 里做成开机自动执行。2.3 低级格式化fdformat 与两个常见写法参数协商好之后才能做真正意义上的低级格式化。fdformat是软盘专用的低格工具位于fdutils软件包中。它会把软盘上所有磁道重新划分扇区擦除全部数据然后做一次写入后读回的校验# 低格并校验 /dev/fd0 fdformat /dev/fd0 # 将设备明确指定为高密度 1.44MB 格式 fdformat /dev/fd0 -n 1440第二种写法里的1440不是扇区数而是设备类型代码。fdformat支持的常见类型有720、1440、2880分别对应 720KB、1.44MB 和 2.88MB 介质。省略时fdformat使用内核当前为该设备设定的几何参数这要求前一步的setfdprm已经正确执行。提示fdformat没有确认提示执行后磁盘数据立刻不可读。更关键的是如果设备号指定错误——比如把/dev/sda当成/dev/fd0——后果是灾难性的。老文档里反复强调一定要指定正确的设备这个警告放到今天依然成立只不过现在的风险对象换成了 U 盘。执行成功后输出大致如下Double-sided, 80 tracks, 18 sec/track Total capacity 1440 kB Formatting...done Verifying...done其中Verifying是低格的写后校验环节刚写完的扇区会被重新读出比对发现坏块就用备用扇区替换如果控制器支持或做坏块标记。校验失败时会报bad sector和具体扇区号这个信息在后面用mke2fs建文件系统时还有参考价值。3. 建立文件系统并挂载mke2fs 的参数细节与容量规划3.1 为什么选 ext2 而不是 ext4低格之后的软盘只是一个扇区集合没有目录树、没有 inode必须建立文件系统才能存储文件。针对软盘这类小容量介质历史上最常用的是ext2也就是 Linux 第二扩展文件系统。原因很朴素ext2 无日志journal不会为了记录日志产生额外的写放大。一个 1.44MB 的盘总共只有 1440 个块块大小 1KBext3/ext4 的日志在这么小的空间上既占容量又增加磨损得不偿失。mke2fs是 e2fsprogs 软件包中的建盘工具针对软盘这个场景常用的参数组合是# 建立 ext2 文件系统检查坏块设置卷标显示过程 /sbin/mke2fs -c -v -L LINUX_BACKUP /dev/fd0执行时输出大致如下mke2fs 1.10.24 (Ape 97) for EXT2 FS 0.5b 95/08/09 Filesystem label LINUX_BACKUP 360 inodes, 1440 blocks 72 blocks (5.00%) reserved for the super user First data block1 Block size1024 (log0) Fragment size1024 (log0) 1 block group 8192 blocks per group, 8192 fragments per group 360 inodes per group Running command: badblocks /dev/fd0 1440 Checking for bad blocks (read-only test): done Writing inode tables: done Writing superblocks and filesystem accounting information: done3.2 逐参数拆解-c -v -L的含义-c表示建文件系统前先跑一遍badblocks只读扫描把坏块记录到文件系统的坏块清单里。对软盘这种磁介质扇区老化、氧化导致坏块很常见加这个参数相当于把低格时发现的问题区块在文件系统层面再确认一遍。-v输出整个过程方便观察卡在哪一步。格式化软盘虽然快但如果介质老化严重badblocks阶段可能跑几十秒看到done才能确认完成。-L指定卷标。卷标本质是超级块里的一个字符串最大 16 字节作用相当于给这张盘起名字。配合e2label /dev/fd0 NEW_LABEL可以事后修改但格式化时设好是最省事的。还有一个容易被忽视的参数是-m控制保留给 root 的块数百分比# 不保留 root 独占块尽量扩大可用容量 mke2fs -m 0 /dev/fd0 1440ext2 默认预留 5% 的块给特权进程防止磁盘写满后系统无法写入关键文件。在 1.44MB 的小盘上 5% 意味着损失 72KB对数据盘来说有点可惜。用-m 0取消保留后可用空间会明显多出来代价是 root 进程在盘满时也无法写入——软盘本来就是临时数据交换介质这个取舍通常是划算的。3.3 挂载、容量验证与自动挂载配置文件系统建好之后的最后一步是挂载。老系统上最常见的挂载命令是# 创建挂载点 mkdir -p /mnt/floppy # 以 ext2 类型挂载 mount -t ext2 /dev/fd0 /mnt/floppy # 验证容量 df /dev/fd0df输出里要注意Mounted on一列确认挂载点是/mnt/floppy。容量列显示的值大约 1390KB排除文件系统元数据开销如果明显偏小多半是低格时用了错误的几何参数或者建文件系统时指定的块数超过了介质实际容量。如果软驱设备已经在/etc/fstab中注册可以简化为mount /mnt/floppy。fstab 里的典型写法是/dev/fd0 /mnt/floppy auto noauto,user 0 0noauto表示开机不自动挂载user允许普通用户挂载auto让内核自动探测文件系统类型。每次插入软盘后手动mount /mnt/floppy即可省去敲-t ext2的麻烦。提示挂载中的软盘不能被弹出或格式化操作前必须umount /mnt/floppy。如果提示device is busy先用lsof /mnt/floppy找出占用进程再处理。4. mtools:无挂载操作 DOS 软盘的完整命令矩阵4.1 为什么存在 mtools 这类工具软盘在 DOS/Windows 生态里用了十年以上DOS 格式FAT12的软盘交接需求极大。Linux 虽然可以直接mount -t vfat /dev/fd0 /mnt/floppy但挂载这个动作本身有额外成本需要 root 权限、占用挂载点、操作不当还会留下未卸载的脏状态。mtools提供了一整套不需要挂载就能读写 FAT 软盘的程序直接以A:、B:这样的盘符访问设备对习惯 DOS 操作的用户更顺手。这套工具的底层原理是通过mtools的配置文件/etc/mtools.conf把盘符映射到设备文件。缺省配置通常有一行A /dev/fd0所以mcopy会把参数里的A:翻译成/dev/fd0绕过挂载直接调用系统的read/write访问设备文件。正因为绕过了内核的 VFS 层mtools命令可以随意读写软盘不需要umount盘片随时可换。4.2 常用命令对照表与典型操作mtools 命令对应 DOS 命令功能说明mformatformat格式化软盘为 FAT12mcopycopy文件拷入拷出mdeldel删除文件mdirdir列目录mlabellabel设置卷标mmdmkdir建子目录mrenren重命名mtypetype查看文本文件内容mbadblocks-坏块检测mdu-查看目录占用空间格式化和文件拷贝的组合操作如下# 格式化 A 盘为 FAT12 mformat A: # 拷贝当前目录下所有 txt 文件到软盘 mcopy *.txt A: # 查看软盘内容 mdir A:mformat的名堂比看起来多一些。它不只是做低格也不只是建 FAT 表——它同时做了这两件事以默认几何参数低格整张盘然后写入引导扇区、FAT 表和根目录区。如果软盘之前被fdformat低格过mformat能直接复用现有扇区布局执行速度会非常快。卷标设置的两种写法也值得一提# 交互式输入卷标 mlabel A: # 命令行直接指定支持空格 mlabel A:USER BACKUP第二种写法用引号把带空格的卷标括起来格式化成 DOS 格式后Windows 系统插入软盘可以直接看到这个卷标。这个细节在配合老设备交换数据时经常用到。4.3 文件交换场景的完整流程假设你要把一台嵌入式设备的日志文件拷贝到 Windows 旧机器上实操作法是# 1. 格式化一张新盘 mformat A: # 2. 批量拷入日志 mcopy /var/log/app/*.log A: # 3. 校验文件完整性 mdir A: | grep log # 4. 从软盘拷出到当前目录 mcopy A:*.log .第 4 步把参数顺序颠倒实现了从软盘取文件的效果。如果只想取部分文件把通配符换成具体文件名即可。mcopy对通配符的解释由mtools自己完成不经过 shell 的路径展开所以*.log会正确匹配软盘上的文件而不是当前目录里的文件。mtools目录里还有几个冷门但有用的工具mdu可以快速查看某个目录树占用了多少磁盘空间mbadblocks可以像badblocks一样扫描软盘坏块但输出更简洁。这些命令对排查软盘读写老报I/O error的情况很有帮助——先跑mbadblocks确认是不是介质物理损坏再决定要不要换盘。5. 用 taper 做软盘级的备份与恢复闭环5.1 为什么备份要选 taper 而不是 tartar当然可以备份到软盘tar cvf /dev/fd0 /home/user就能把目录打包写到软盘上。但软盘容量只有 1.44MB一旦写满tar直接报错退出你得手工换盘、重新组织命令。taper是专门为这种顺序介质设计的备份程序由 Yusaf Nagree 编写自带介质管理、交互式选单和错误重试机制更适合需要多张软盘的备份任务。taper启动时用-T指定介质类型-lo指定备份源# 以可移动介质模式启动备份指定目录 taper -T removable -lo /home/user/documents这个命令执行后进入文本交互界面。初次启动时先选择Change Preferences在Tape Drive Preferences磁带驱动器偏好里把默认介质从磁带改为可移动介质软盘保存后返回主菜单。接着程序会扫描备份源目录显示文件清单用光标键上下移动选择要备份的对象按空格或对应字母键标记/取消标记。选择完成后按F键开始备份taper会按顺序写入文件软盘满了会提示换盘。taper支持的介质类型参数如下参数值含义tape老式软盘接口磁带机zftape新一代软盘接口磁带驱动scsiSCSI 接口磁带机ideIDE 接口磁带机removable软盘、Zip 盘等可移动块设备5.2 备份完整性与恢复验证备份完成后恢复操作同样在taper界面里进行选择Restore模式并指定目标目录。每次备份结束做一次验证是值得的——把软盘重新插上用mdir A:或mount查看备份文件是否完整# 验证备份软盘的文件列表 mdir A: # 抽样比对单个文件 mcopy A:documents.tar.gz /tmp/verify_backup.tar.gz sha256sum /tmp/verify_backup.tar.gz本文还有配套的精品资源点击获取
返回列表