如何在 Linux 上格式化 U 盘和 SD 卡

在使用 SD 卡或 USB 驱动器之前,需要对其进行格式化和分区。通常,大多数 USB 驱动器和 SD 卡都使用 FAT 文件系统进行了预格式化,因此无需立即进行格式化。但是,在某些情况下,您可能需要格式化驱动器。

在 Linux 中,你可以像使用的像 gparted 这样的图形化工具或像 fdisk, parted 这样的命令行工具来格式化驱动器和创建所需的分区。

在本教程中,我们将向您展示如何使用 parted 实用程序在 Linux 上格式化 USB 驱动器或 SD 卡。

注意事项,格式化是一个破坏性的过程,它将删除所有现有数据。如果 SD 卡的 UDS 驱动器上有数据,请确保将其备份。

安装  parted

GNU Parted 是用于创建和管理分区表的工具。如今,parted 软件包已预安装在大多数 Linux 发行版中。您可以通过键入以下内容检查它是否已安装在系统上:

parted --version
parted (GNU parted) 3.2
Copyright (C) 2014 Free Software Foundation, Inc.
...

如果 parted 您的系统上未安装,则可以使用发行版的软件包管理器进行安装。

在 Ubuntu 和 Debian 上安装 parted

sudo apt update
sudo apt install parted

在 CentOS 和 Fedora 上安装 parted

sudo yum install parted

识别 USB 或 SD 卡名称

将 USB 闪存驱动器或 SD 卡插入 Linux 机器,然后使用以下 lsblk 命令查找设备名称:

lsblk

该命令将打印所有可用块设备的列表:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sdb      8:16   1  14.4G  0 disk 
└─sdb1   8:17   1   1.8G  0 part /media/data
...

在上面的示例中, SD 设备的名称为 /dev/sdb ,但这与您的系统上可能有所不同。

您还可以使用以下 dmesg 命令查找设备名称:

dmesg

连接设备后, dmesg 将显示设备名称:

...
[  +0.000232] sd 1:0:0:0: [sdb] 30218842 512-byte logical blocks: (15.5 GB/14.4 GiB)
...

安全擦除数据(可选)

在格式化驱动器之前,您可以通过用随机数据覆盖整个驱动器来安全擦除其中的所有数据。这样可以确保任何数据恢复工具都无法恢复数据。

运行以下命令之前,请格外小心,并清除驱动器数据。 dd 命令的 if=... 部分必须指向目标驱动器。

sudo dd if=/dev/zero of=/dev/sdb bs=4096 status=progress

根据驱动器的大小,此过程将需要一些时间才能完成。

擦除磁盘后, dd 命令将显示 “No space left on device”:

15455776768 bytes (15 GB, 14 GiB) copied, 780 s, 19.8 MB/s 
dd: error writing '/dev/sdb': No space left on device
3777356+0 records in
3777355+0 records out
15472047104 bytes (15 GB, 14 GiB) copied, 802.296 s, 19.3 MB/s

创建分区和格式化

Windows 上最常见的文件系统是 exFAT 和 NTFS , Linux 上是 EXT4, FAT32 可在所有操作系统上使用。

我们将向您展示如何将 USB 驱动器或 SD 卡格式化为 FAT32 或 EXT4 。如果要仅在 Linux 系统上使用驱动器,请使用 EXT4 ,否则请使用 FAT32 对其进行格式化。对于大多数使用情况,一个分区就足够了。

用 FAT32 格式化

首先,通过运行以下命令创建分区表:

sudo parted /dev/sdb --script -- mklabel msdos

创建一个占用整个空间的 Fat32 分区:

sudo parted /dev/sdb --script -- mkpart primary fat32 1MiB 100%

将启动分区格式化为 FAT32 :

sudo mkfs.vfat -F32 /dev/sdb1
mkfs.fat 4.1 (2017-01-24)

完成后,使用下面的命令打印分区表并验证所有设置是否正确:

sudo parted /dev/sdb --script print

输出应如下所示:

Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sdb: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  15.5GB  15.5GB  primary  fat32        lba

就这样!您已格式化设备。

使用 EXT4 格式化

通过发出以下命令来创建 GPT 分区表:

sudo parted /dev/sdb --script -- mklabel gpt

运行以下命令以创建占用整个空间的 EXT4 分区:

sudo parted /dev/sdb --script -- mkpart primary ext4 0% 100%

将分区格式化为 ext4 :

sudo mkfs.ext4 -F /dev/sdb1
mke2fs 1.44.1 (24-Mar-2018)
/dev/sdb1 contains a vfat file system
Creating filesystem with 3777024 4k blocks and 944704 inodes
Filesystem UUID: 72231e0b-ddef-44c9-a35b-20e2fb655b1c
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done   

通过打印分区表进行验证:

sudo parted /dev/sdb --script print

输出应如下所示:

Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sdb: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  15.5GB  15.5GB  ext4         primary  

结论

在 Linux 上格式化 USB 驱动器或 SD 卡是一个非常简单的过程。您需要做的就是插入驱动器,创建分区表,并使用 FAT32 或您喜欢的文件系统对其进行格式化。