擦除 USB 闪存驱动器并重新创建文件系统

擦除 USB 闪存驱动器并重新创建文件系统

我用它来擦除 USB 闪存驱动器并重新创建 FAT 文件系统:

dd if=/dev/zero of=/dev/sdb bs=1M    #I don't need more advanced wiping
fdisk /dev/sdb
(a few keystrokes to select partition type, etc.)
mkfs.fat /dev/sdb1

事实上,我必须手动敲击几次按键,这很烦人。我怎样才能在没有任何干预的情况下一步完成所有这一切?就像是:

dd if=/dev/zero of=/dev/sdb bs=1M && ??? &&& mkfs.fat /dev/sdb1

答案1

fdiskHere-document 语法允许您以非交互方式使用:

fdisk /dev/sdb <<EOF
n
p



t
b
p
q
EOF

因为这只是一个例子,我用过p所以q没有写任何修改。w在验证序列后使用。

注意空行对应于sole Enter。重点是你可以通过这种方式传递你的击键。

或者,您可以将这些行(在两个EOF-s 之间)写入文件,例如fdisk.commands,然后:

fdisk /dev/sdb < fdisk.commands

或者没有文件(来自评论,谢谢 Rastapopoulos):

fdisk /dev/sdb <<< $'n\np\n\n\n\nt\nb\np\nq'

其他方式:

printf '%s\n' "n" "p" "" "" "" "t" "b" "p" "q" | fdisk /dev/sdb

还有sfdisk。您可能会发现它的语法更适合您。

答案2

根据@KamilMaciorowski的回答(完全归功于他),这是我最终使用的:

sudo dd if=/dev/zero of=/dev/sdb bs=1M && sudo fdisk /dev/sdb <<< $'n\np\n\n\n\nt\nb\np\nw\n' && sudo mkfs.fat /dev/sdb1

相关内容