如何在Linux上格式化U盘和SD卡
在使用SD卡或者U盘之前,需要对其进行格式化和分区。
通常,大多数U盘和SD卡都使用FAT文件系统进行了预格式化,因此无需立即进行格式化。
但是,在某些情况下,我们可能需要格式化驱动器。
在Linux中,我们可以使用图形工具(例如GParted)或者命令行工具(例如“ fdisk”或者“ parted”)来格式化驱动器并创建所需的分区。
在本教程中,我们将向我们展示如何使用“ parted”实用程序在Linux上格式化U盘或者SD卡。
请务必注意,格式化是一个破坏性的过程,它将清除所有现有数据。
如果UDB驱动器或者SD卡上有数据,请确保对其进行备份。
安装“ parted”
GNU Parted是用于创建和管理分区表的工具。
如今,分装的软件包已预安装在大多数Linux发行版中。
我们可以通过键入以下内容检查它是否已安装在系统上:
parted --version
parted (GNU parted) 3.2 Copyright (C) 2014 Free Software Foundation, Inc. ...
如果系统上未安装“ parted”,则可以使用发行版的程序包管理器进行安装。
在Ubuntu和Debian上安装'parted'
sudo apt updatesudo 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”命令查找设备名称:
lsblk
连接设备后,“ dmesg”将显示设备名称:
... [ +0.000232] sd 1:0:0:0: [sdb] 30218842 512-byte logical blocks: (15.5 GB/14.4 GiB) ...
安全擦除数据(可选)
在格式化驱动器之前,我们可以通过用随机数据覆盖整个驱动器来安全擦除其中的所有数据。
这样可以确保任何数据恢复工具都无法恢复数据。
仅在将要赠送设备的情况下,才需要完全擦除数据。
否则,我们可以跳过此步骤。
运行以下命令之前,请格外小心,并清除驱动器数据。
“ dd”命令的“ of = ...”部分必须指向目标驱动器。
sudo dd if=/dev/zero of=/dev/sdb bs=4096 status=progress
根据驱动器的大小,此过程将需要一些时间才能完成。
擦除磁盘后,“ dd”命令将显示“设备上没有剩余空间”:
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,它们可以在所有操作系统上使用。
我们将向我们展示如何将U盘或者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 (2016-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-2016) /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