如何在 Linux 中修复损坏的 USB 驱动器

每个人都有一个闪存驱动器。它们都是很棒的小东西,而且它们使数据移动变得容易。然而,有时闪存驱动器可能会损坏或直接停止工作。值得庆幸的是,如果您使用的是 Linux,您已经可以使用一系列可以帮助您解决问题的工具。我们在本教程中使用 Ubuntu,但所有内容都适用于大多数现代 Linux 发行版。以下是如何在 Linux 中修复损坏的 USB 驱动器。

在本文中,我们优先考虑您的数据安全。首先,您将了解如何备份闪存驱动器的内容,然后针对当前问题进行各种修复。这样,如果尝试修复问题最终导致问题变得更糟,您仍然可以恢复到闪存驱动器当前状态的快照。

获取压缩的完整备份映像

在Linux中,有很多用于备份任何存储设备的工具。然而,久经考验的方法依赖于ddgzip.

在进入备份模式之前,值得检查驱动器是否确实损坏。简单的第一步是将 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 驱动器,按照此处的说明进行操作。