闪存盘或外部 USB 问题

闪存盘或外部 USB 问题

我正在尝试在装有 Ubuntu 16.04 操作系统的系统上访问 USB 闪存盘。我看不到驱动器符号。我搜索了解决方案并尝试了此解决方案:Ubuntu 14.04 无法检测到 Sandisk USB,但 Windows 7 可以检测到
但它对我不起作用。甚至 USB 驱动器也无法在任何 Windows 平台上访问。它显示一条消息,要求我递归格式化驱动器,并且不允许我在 Windows 上访问驱动器。
但我的主要问题与 Ubuntu 有关,因为我总是只使用这个操作系统。
我发现当我插入 U 盘时,驱动器菜单会闪烁,但我看不到驱动器。
请帮助我如何使驱动器对我可见甚至可行。我不想格式化驱动器,因为它有非常重要的数据,并且目前没有备份。请让我知道你的建议。如果有人遇到同样的问题并且之前已经解决过,请告诉我答案。
输入命令后dmesg

[79536.075479] sd 18:0:0:0: [sdb] Assuming drive cache: write through
[79536.081868] sd 18:0:0:0: [sdb] Attached SCSI removable disk

这是我得到的输出,但打开文件夹结构后,我在列表中看不到驱动器。在 Windows 系统上,它也显示受写保护。我不知道为什么会发生这种情况。请分享您的想法。

答案1

如果驱动器上有重要文件,您应该首先对驱动器进行块复制。在硬盘上有足够空间的地方尝试

sudo dd if=/dev/sdb of=sdb.img bs=4M

意思是:将 pendrive ( if=/dev/sdb) 的字节副本以 4M 为单位复制到名为 sdb.img ( of=sdb.img) 的本地文件 ( bs=4M)。块大小 4M 在大多数情况下都可以使用,并且可以加快复制速度。

这应该会顺利完成,并且会向您提供关于复制的记录、大小和复制过程速度的信息。然后您可以移除 U 盘;我们将进一步处理副本。

如果此时出现 I/O 错误,则表示驱动器已损坏,我不知道使用软件工具解决的任何方法。如果可以复制驱动器的一部分,也许可以挽救部分文件。

如果到目前为止没有错误,请发出

fdisk -l sdb.img

它将向您显示驱动器的分区。这应该看起来像

Disk sdb.img: 29.8 GiB, 32015679488 bytes, 62530624 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa114f2b8

Device     Boot    Start      End  Sectors  Size Id Type
sdb.img1            2048 20973567 20971520   10G 83 Linux
sdb.img2        20973568 62530623 41557056 19.8G 83 Linux

在我的例子中,U盘大小为 29.8 GiB,有两个 Linux 类型的分区。您的 U 盘可能只有一个“W95 FAT32”类型的分区。

如果成功,您可以尝试挂载分区。您需要有关分区起始位置(此处:2048)和扇区大小(此处:512)的信息。然后,您可以通过以下方式进行循环挂载

sudo mount sdb.img /mnt -o loop,offset=1048576

此处的字节偏移量为 2048*512=1048576;您的情况可能有所不同。如果没有发生错误,您将在 /mnt 中找到文件,然后可以从那里将它们复制到其他地方。

如果您已经走到这一步并且命令出现错误mount,只需发布​​前面步骤的输出和错误消息,这样我就可以进一步提供帮助。

相关内容