如何在 FreeBSD 上格式化 USB 软盘驱动器中的软盘?

FUZ*_*xxl 0 freebsd scsi usb-drive floppy

我想在 USB 软盘驱动器中格式化 MF 2HD 软盘。由于 USB 软盘驱动器显示为 da(4) 设备而不是 fdc(4) 设备,fdformat因此无法使用标准实用程序。如何格式化我的软盘?

FUZ*_*xxl 5

由于似乎不存在格式化程序,我编写了以下 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
Run Code Online (Sandbox Code Playgroud)