如何使用命令行中的简单一行命令快速格式化 pendrive?

如何使用命令行中的简单一行命令快速格式化 pendrive?

如何使用命令行中的简单命令快速对 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 $*

相关内容