在Linux 上使用parted 格式化SD 卡、USB 驱动器、闪存驱动器|
作为一个使用操作系统、机器和电子设备的人,您经常需要格式化 Micro SD 卡、带有 fat32 分区的 USB 驱动器/闪存驱动器或类似的东西。这可能是将操作系统数据写入其中,将文件从一个系统复制到另一个系统以及将其用作便携式存储介质。在本指南中,我们将了解如何使用 parted 命令行在任何 Linux 系统上格式化 USB 驱动器和 SD 卡。
在Linux操作系统中,有诸如GParted和GNOME Disks之类的图形工具,可以在GUI中使用它们来格式化SD卡、USB驱动器和闪存驱动器。本指南重点介绍如何使用命令行工具(parted)。还可以使用其他工具,例如fdisk、gdisk、cfdisk、sfdisk。
在你开始之前
在开始之前,您需要在 Linux 系统中安装 GNU Parted 应用程序。 GNU Parted 是一个用于创建和操作分区表的程序。它的前端是 GParted。
使用下面共享的命令在您的 Linux 计算机中安装 GNU Parted。
### Debian / Ubuntu ###
sudo apt update
sudo apt install parted
### Fedora / CentOS ###
sudo yum -y install parted
sudo dnf -y install parted
### Arch Linux / Manjaro ###
sudo pacman -S parted
您还应该将 SD 卡或 USB/闪存驱动器连接到计算机并确认操作系统可以看到它。
lsblk 是一个 Linux 命令行工具,用于列出所有可用或指定块设备的信息。
$ lsblk --all
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:0 1 14.9G 0 disk
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 237.5G 0 part
├─fedora-root 253:0 0 70G 0 lvm /sysroot
├─fedora-swap 253:1 0 7.7G 0 lvm [SWAP]
└─fedora-home 253:2 0 159.8G 0 lvm /var/home
我的闪存驱动器位于 /dev/sdb。 当 USB 设备连接到您的计算机时,dmesg – 打印或控制内核环形缓冲区的工具,将显示连接信息。
$ dmesg
....
[ 6209.409187] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 6209.409321] scsi host0: usb-storage 1-1:1.0
[ 6209.409406] usbcore: registered new interface driver usb-storage
[ 6209.412727] usbcore: registered new interface driver uas
[ 6210.741626] scsi 0:0:0:0: Direct-Access SMI USB DISK 1100 PQ: 0 ANSI: 4
[ 6210.742549] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 6210.743829] sd 0:0:0:0: [sdb] 31129600 512-byte logical blocks: (15.9 GB/14.8 GiB)
[ 6210.745121] sd 0:0:0:0: [sdb] Write Protect is off
[ 6210.745128] sd 0:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 6210.746338] sd 0:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 6210.868622] usb 1-1: reset high-speed USB device number 8 using xhci_hcd
[ 6211.326903] sdb:
[ 6211.332089] sd 0:0:0:0: [sdb] Attached SCSI removable disk
在 Linux 上使用parted格式化SD卡、USB驱动器、闪存驱动器
确认parted已安装。
$ parted --version
parted (GNU parted) 3.2.153
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by <http://git.debian.org/?p=parted/parted.git;a=blob_plain;f=AUTHORS>.
确认要格式化的SD卡、闪存驱动器的名称。
$ lsblk --all
在格式化 USB 设备之前,我们将首先擦除设备上可能存在的文件系统或分区表签名。
$ sudo wipefs --all --force /dev/sdb
/dev/sdb: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31
/dev/sdb: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdb: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
Linux下使用Parted格式化SD卡、U盘、闪存盘
Parted 有两种模式:命令行和交互式。 Parted 应该始终以以下方式开头:
sudo parted device
在哪里 :
- 设备是要编辑的SD卡、USB驱动器或闪存驱动器。如果省略设备参数,parted 将尝试猜测您想要哪个设备。
我们将使用交互模式,它通过自动将所有分区命令应用到指定设备来简化分区过程并减少不必要的重复。
在我的场景中,我将执行以开始在设备上操作的命令是:
$ sudo parted /dev/sdb
GNU Parted 3.2.153
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
您会注意到命令行提示符更改为 (parted)
要查看可用命令的列表,请输入:
(parted) help
步骤1:创建新的分区表
您需要创建或重新创建设备的分区表 – 对于首次分区,或更改其分区表的类型。
要创建新的主引导记录/MS-DOS 分区表:
(parted) mklabel msdos
确认 :
(parted) p
Model: SMI USB DISK (scsi)
Disk /dev/sdb: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
(parted)
对于 GPT 分区表,您将使用;
(parted) mklabel gpt
步骤 2:在设备上创建分区
您可以决定设备应分成的分区的数量和大小。用于创建分区的命令语法是:
(parted) mkpart part-type fs-type start end
在哪里 :
- 部分类型是
主
、扩展
或逻辑
之一——仅对MBR分区表有意义。 - fs-type 是用于设置 1 字节 代码的标识符,引导加载程序使用该代码来“预览”在分区中找到的数据类型,并采取相应的操作如果需要的话。
- start 是从设备的开头开始的分区的开始。
- end 是从设备开头算起的分区末尾(不是从起始值算起)。end
我将创建一个从 1MiB 开始到 100% 结束的分区。
(parted) mkpart primary fat32 1MiB 100%
类似的用例包括(不要运行它 - 只是示例)
# Create an ext4 partition
(parted) mkpart primary ext4 1MiB 100%
# Create an XFS partition
(parted) mkpart primary xfs 1MiB 100%
# Create two ext4 partitions
(parted) mkpart primary ext4 1MiB 5GiB
(parted) mkpart primary ext4 5GiB 100%
确认我们迄今为止所做的更改:
(parted) p
Model: SMI USB DISK (scsi)
Disk /dev/sdb: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 15.9GB 15.9GB primary fat32 lba
第三步:格式化分区
最后一步是将分区格式化为您选择的文件系统类型。
我将 USB 设备分区格式化为 FAT32。
(parted) quit
Information: You may need to update /etc/fstab.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:0 1 14.9G 0 disk
└─sdb1 8:1 1 14.9G 0 part
$ sudo mkfs.vfat -F32 /dev/sdb1
mkfs.fat 4.1 (2017-01-24)
mkfs.vfat: failed whilst writing FAT
确认新的更改:
$ lsblk -o +label,fstype,uuid /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT LABEL FSTYPE UUID
sdb 8:0 1 14.9G 0 disk
└─sdb1 8:1 1 14.9G 0 part vfat A6B5-97C8
检查是否可以挂载设备。
$ mkdir ~/mnt
$ sudo mount /dev/sdb1 ~/mnt
$ df -hT ~/mnt
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 vfat 15G 4.5G 11G 31% /var/home/jmutai/mnt
$ sudo umount ~/mnt
非交互地进行
我们可以在终端中运行所有命令,而无需调用parted交互屏幕。
sudo parted -s -a optimal -- /dev/sdb mklabel msdos
sudo parted -s -a optimal -- /dev/sdb mkpart primary fat32 1MiB 100%
sudo parted -s -- /dev/sdb align-check optimal 1
sudo mkfs.vfat -F32 /dev/sdb1
这就是如何在 Linux 终端上轻松格式化 SD 卡、USB 驱动器、闪存驱动器以及在设备中创建所需的文件系统类型。您现在可以删除该设备并在支持写入文件系统的任何地方使用它。
相关指南:
- 如何在 Linux 上使用 LVM 扩展根文件系统
- 如何在没有 LVM 的情况下调整 ext2/3/4 和 XFS 根分区的大小
- 在 Linux 中将 /tmp 挂载到单独的分区上
- 如何使用diskpart命令在Windows中创建磁盘分区
- 如何扩展/增加 KVM 虚拟机 (VM) 磁盘大小