每个人都有一个闪存驱动器。它们都是很棒的小东西,而且它们使数据移动变得容易。然而,有时闪存驱动器可能会损坏或直接停止工作。值得庆幸的是,如果您使用的是 Linux,您已经可以使用一系列可以帮助您解决问题的工具。我们在本教程中使用 Ubuntu,但所有内容都适用于大多数现代 Linux 发行版。以下是如何在 Linux 中修复损坏的 USB 驱动器。
在本文中,我们优先考虑您的数据安全。首先,您将了解如何备份闪存驱动器的内容,然后针对当前问题进行各种修复。这样,如果尝试修复问题最终导致问题变得更糟,您仍然可以恢复到闪存驱动器当前状态的快照。
获取压缩的完整备份映像
在Linux中,有很多用于备份任何存储设备的工具。然而,久经考验的方法依赖于dd和gzip.
在进入备份模式之前,值得检查驱动器是否确实损坏。简单的第一步是将 USB 插入不同的 USB 端口甚至不同的计算机。有时,问题不在于驱动器本身 - 它可能只是简单的连接松动或端口不稳定。
现在,要备份闪存驱动器,请首先将 USB 连接到计算机。启动您最喜欢的终端(或按控制键+全部+时间)。之后,使用以下命令找到您的闪存驱动器:
ls /dev/disk/by-id
或者,您可以通过运行来识别您的闪存驱动器lsblk或者sudo fdisk -l查找设备名称(例如 /dev/sdb,而不是像 /dev/sdb1 这样的分区)。
接下来,通过单个命令将闪存驱动器备份到使用 GZIP 压缩的图像文件,使用:
sudo dd if=/dev/disk/by-id/YOUR_FLASH_DRIVE status=progress | gzip -c > /home/USERNAME/backups/BACKUP_NAME.img.gz
另外,请确保“/home/用户名/backups/” 存在(创建它mkdir -p /home/USERNAME/backups)。此外,if=参数指定闪存驱动器,并且gzip压缩输出。
要恢复备份,您必须颠倒这两个命令的顺序并将闪存驱动器定义为输出设备。完整的命令如下所示:
sudo gzip -cd /home/USERNAME/backups/BACKUP_NAME.img.gz | sudo dd of=/dev/disk/by-id/YOUR_FLASH_DRIVE status=progress笔记:这会覆盖整个闪存驱动器,擦除所有数据。仔细检查设备名称以避免数据丢失。
使用 FSCK 修复损坏的文件系统
备份闪存驱动器的内容后,是时候尝试修复它了。为此,您可以转向fsck。该工具非常适合删除坏文件块,因为大多数(如果不是全部)损坏和不可读都来自此类问题。
对于此命令,您必须定义分区而不是完整驱动器。通过发出以下命令,您会发现它的名称与您的设备相似:
ls /dev/disk/by-id/usb*然后,运行fsck上面有:
sudo fsck -v -y /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION-TO-CHECK
在此命令中:
sudo fsck使用管理权限运行修复工具。-v让它向我们显示有关诉讼程序的详细信息。-y表明我们希望它自动尝试修复它发现的任何错误。/dev/disk…是将要检查错误的分区。
从终端使用 Fdisk/MKFS 格式化 USB 驱动器
如果fsck未能修复设备的文件系统,您可以尝试将其格式化以像新设备一样使用它。
第一步是擦除任何现有的文件系统结构并从头开始重新创建它们。您可以使用fdisk为了这。运行它sudo在您的设备上使用:
sudo fdisk /dev/disk/by-id/YOUR_FLASH_DRIVE
按这然后按 Enter 键在其上创建一个新的 DOS 分区表,使您的 USB 驱动器在任何地方都可读。如果您只想在现代计算机和操作系统上使用它,您可以替换这和克创建一个新的 GPT 分区表。
按n然后按 Enter 键创建一个新分区,然后p使其成为主要的。如果你用过和而不是p,它将被创建为扩展分区,但如果您不打算在驱动器上创建三个以上的分区,则没有必要这样做。然后,当询问分区号、第一个和最后一个扇区时,您只需按 Enter 键即可接受默认值并使分区跨越整个 USB 驱动器。

按p然后按 Enter 键查看 USB 驱动器中的新存储结构。然后,按在然后按 Enter 将更改写入 USB 驱动器并退出 fdisk。

使用文件系统格式化新分区
您的分区将未格式化,并且由于它还没有文件系统,因此它将无法使用。您可以使用以下之一创建文件系统mkfs所有现代 Linux 发行版都附带的工具。要将分区格式化为大多数设备都可以使用的 FAT32,请使用:
sudo mkfs.fat -F 32 /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
到将分区格式化为 NTFS,要与现代版本的 Windows 一起使用,或与 EXT4 一起使用,如果仅与 Linux 一起使用,请使用:
sudo mkfs.ntfs /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION或者
sudo mkfs.ext4 /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
EXT4 针对 Linux 进行了优化,但如果没有额外的软件,Windows 或 macOS 本身并不支持。
格式化后,您可以安装 USB 驱动器并确认其工作正常。简单地,使用lsblk再次检查分区是否有文件系统并且可以安装。
使用磁盘检查和修复 USB 驱动器的 GUI 方式
如果您不喜欢输入命令,可以使用磁盘工具来检查和格式化您的 USB 驱动器。 Ubuntu 上预装了磁盘。
访问您的应用程序菜单并搜索磁盘。找到该应用程序后启动该应用程序。

从左侧列表中选择您的 USB 驱动器,然后单击齿轮图标。然后,选择修复文件系统并按照向导的步骤修复文件系统。
在我们的例子中,我们处理的不是硬件问题,而是文件系统损坏。尽管问题无法修复,但我们可以重新格式化 USB 驱动器并继续使用它。要对磁盘执行此操作,请选择 USB 驱动器,再次单击带有齿轮图标的图标,然后选择格式化分区.

在卷名称字段中输入 USB 驱动器的名称,然后从三个最流行的文件系统中进行选择:
- Ext4 用于 Linux
- NTFS 用于现代版本的 Windows
- FAT 适用于这两种设备以及其他类型的设备(从智能手机到游戏机)

请注意“擦除”选项。将其禁用以进行快速格式化。将其拨至“打开”即可进行完整格式化,从而完全擦除设备的内容。当处理可能也有一些坏块的损坏设备时,最好选择完全擦除选项。

使用 GParted 进行修复
如果您不想使用命令行,格帕特是一个用于管理磁盘分区和修复驱动器的出色图形工具。它与默认磁盘选项非常相似,但具有更高级的选项。
首先,输入以下命令安装 GParted:
sudo apt install gparted安装 GParted 后,您可以从应用程序菜单或通过键入来启动它gparted进入终端并在询问时输入您的密码。

启动 GParted 后,从右上角的下拉菜单中选择您的 USB 驱动器 - 只是要非常小心,不要错误地选择您的系统驱动器。此外,如果驱动器已安装,请右键单击它并卸载它。然后,您可以通过选择检查选项来运行文件系统检查,也可以使用“格式化为”选项完全格式化分区。
最后的想法
现在您已经修复了损坏的 USB 驱动器,您可以像全新驱动器一样再次使用它。如果您正在寻找创建 Linux Live USB 驱动器,按照此处的说明进行操作。






