如何使用命令行中的简单命令快速对 U 盘进行重新分区和格式化?
我想做这样的事情:
$ format /dev/sdb
这将破坏现有的分区,仅创建类型为 VFAT(W95 FAT32)的单个分区,并且显然这个单个分区必须准备好使用。
因此,无论我对 U 盘进行何种实验,无论它有多少个分区,我都希望将其恢复到出厂状态。
答案1
以下解决方案可在我的工具箱中找到:http://github.com/frgomes/bash-scripts
#!/bin/bash -eu
################################################
# #
# DANGER ::: DANGER WILL ROBINSON ::: DANGER #
# #
# https://www.youtube.com/watch?v=RG0ochx16Dg #
# #
# THIS SCRIPT CREATES A SINGLE FAT32 PARTITION #
# ON THE DEVICE YOU PASS AS ARGUMENT #
# #
# ***** WITHOUT ASKING ANY CONFIRMATION ***** #
# #
################################################
function format_layout {
local device=${1:-/dev/null}
local sectors=$(sudo blockdev --getsz ${device})
local sectors=${sectors:-0}
local sectors=$(echo ${sectors} - 2048 | bc)
local id=$(openssl rand -hex 4)
cat <<EOD
label: dos
label-id: 0x${id}
device: ${device}
unit: sectors
sector-size: 512
${device}1 : start=2048, size=${sectors}, type=0b
EOD
}
function format() {
which bc >/dev/null || apt+ install bc
sudo which sfdisk >/dev/null 2>&1 || apt+ install sfdisk
local device=${1:-dev/null}
format_layout ${device} | sudo sfdisk --wipe always ${device} && sudo mkfs.vfat ${device}1
}
format $*