![如何在 FreeBSD 上格式化 USB 软盘驱动器中的软盘?](https://linux22.com/image/130452/%E5%A6%82%E4%BD%95%E5%9C%A8%20FreeBSD%20%E4%B8%8A%E6%A0%BC%E5%BC%8F%E5%8C%96%20USB%20%E8%BD%AF%E7%9B%98%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%AD%E7%9A%84%E8%BD%AF%E7%9B%98%EF%BC%9F.png)
我想格式化 USB 软盘驱动器中的 MF 2HD 软盘。由于 USB 软盘驱动器显示为 da(4) 设备而不是 fdc(4) 设备,因此fdformat
无法使用标准实用程序。如何格式化我的软盘?
答案1
由于似乎不存在格式化程序,我编写了以下 shell 脚本,该脚本发送适当的 FORMAT UNIT 命令来格式化软盘的所有 80 个磁道。da0
除非提供不同的设备作为参数,否则设备将被格式化。 CDB 已取自UFI规范。
#!/bin/sh
set -e
exec >&2
drive=${1:-da0}
numblocks=2880
blocklen=512
tracks=80
track=0
progress() {
[ -t 2 ] && printf "\\r%2d/%2d" $track $tracks
}
for track in `seq 0 $((tracks-1))`
do
progress
# format bottom
camcontrol cmd "$drive" -v \
-c '04 17 i1 00 00 00 00 00 0c 00 00 00' $track \
-o 12 '00 b0 00 08 i4 00 i3' $numblocks $blocklen
# format top
camcontrol cmd "$drive" -v \
-c '04 17 i1 00 00 00 00 00 0c 00 00 00' $track \
-o 12 '00 b1 00 08 i4 00 i3' $numblocks $blocklen
done
track=$tracks
progress
[ -t 2 ] && echo