无法挂载 USB(ddrescue)磁盘映像

无法挂载 USB(ddrescue)磁盘映像

我试图从故障的 USB 驱动器 (NTFS) 中恢复一些数据但在此之前,我在另一个 USB 记忆棒上进行测试。Virtualbox VM 检测到了已卸载的 USB 记忆棒,以便制作 ddrescue 映像。

我曾经成功过一次,但现在似乎不起作用不再是fdisk 认为有多个分区,但实际上只有一个在 USB 记忆棒里???

有人有什么想法/建议吗?

脚步:

  1. 检查 USB 驱动器的文件系统,以便在挂载 img 时分配正确的 FS
  2. dd USB 驱动器
  3. 检查 img 分区属性。这是用适当的偏移值(起始块)挂载分区。
  4. 使用 mount 挂载 img失败的
  5. 使用 kpartx 挂载 img(不熟悉此工具)失败的

罗莎恢复磁盘#fdisk -l /dev/sdb

磁盘 /dev/sdb:1014 MB,1014497280 字节 17 个磁头,32 个扇区/磁道,3642 个柱面,共 1981440 个扇区 单位 = 1 * 512 = 512 字节的扇区 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标识符:0xc3072e18

设备启动开始结束块 ID 系统 /dev/sdb1 * 32 1981439 990704 7 HPFS/NTFS/exFAT

罗莎恢复磁盘#ddrescue /dev/sdb1 dd_resc.img

GNU ddrescue 1.17 按 Ctrl-C 中断救援:1014 MB,错误大小:0 B,当前速率:704 kB/s ipos:1014 MB,错误:0,平均速率:14492 kB/s opos:1014 MB,自上次成功读取以来的时间:0 秒完成

罗莎恢复磁盘#fdisk -l dd_resc.img

磁盘 dd_resc.img:1014 MB,1014480896 字节 255 个磁头,63 个扇区/磁道,123 个柱面,共 1981408 个扇区 单位 = 1 * 512 = 512 字节的扇区 扇区大小(逻辑/物理):512 字节/512 字节 I/O 大小(最小/最佳):512 字节/512 字节 磁盘标识符:0x4d544f4f

这看起来不像分区表,您可能选择了错误的设备。

 Device Boot      Start         End      Blocks   Id  System

dd_resc.img1 ? 218137203 2138359164 960110981 70 DiskSecure Multi-Boot dd_resc.img2 ? 544370800 2464669663 960149432 74 未知 dd_resc.img3 ? 225600882 769746299 272072709 82 Linux swap / Solaris dd_resc.img4 ? 2760638474 2760690110 25818+ 61 SpeedStor

分区表条目不按磁盘顺序排列

罗莎恢复磁盘#mkdir /媒体/ddmount 罗莎恢复磁盘#回显 $(( 32*512 ))

16384

罗莎恢复磁盘#安装 dd_resc.img /media/ddmount -o loop,offset=16384 -t ntfs

缺少 NTFS 签名。无法挂载“/dev/loop0”:参数无效设备“/dev/loop0”似乎没有有效的 NTFS。也许使用了错误的设备?或者是整个磁盘而不是分区(例如 /dev/sda,而不是 /dev/sda1)?或者相反?

罗莎恢复磁盘#kpartx-a-v dd_resc.img

设备映射器:在 loop0p1 上恢复 ioctl 失败:参数无效,在 loop0p1 上创建/重新加载失败,添加映射 loop0p1(0:0):0 1920221962 线性 /dev/loop0 218137203 设备映射器:在 loop0p2 上恢复 ioctl 失败:参数无效,在 loop0p2 上创建/重新加载失败,添加映射 loop0p2(0:0):0 1920298864 线性 /dev/loop0 544370800 设备映射器:在 loop0p3 上恢复 ioctl 失败:参数无效,在 loop0p3 上创建/重新加载失败,添加映射 loop0p3(0:0):0 544145418 线性 /dev/loop0 225600882 设备映射器:在 loop0p4 上恢复 ioctl 失败:参数无效,在 loop0p4 上创建/重新加载失败,添加映射 loop0p4(0:0):0 51637 线性 /dev/loop0 2760638474

---- 2017-03-01 更新 -------

谜团依然存在,但我设法在没有偏移选项的情况下进行安装,这让我松了一口气,但并不令人满意,因为我不明白为什么这将有助于将来的参考。

答案1

看起来您克隆了分区/dev/sdb1而不是整个驱动器/dev/sdb

ddrescue是一个非常强大的工具,可以挽救可以读取的内容(由于硬件故障,也很难读取)。但它很危险(就像标准一样dd),因为它会毫无疑问地按照你的指示去做。

因此,反复检查以确保您了解自己在做什么,并且没有输入错误非常重要。否则,您可能会覆盖另一个驱动器中的家庭照片或其他一些重要数据,而这些数据“不应参与”克隆和恢复过程。

  • 话虽如此,最好先克隆受损驱动器,然后在克隆副本上尝试恢复。这是ddrescue一个很好的克隆工具。

  • 与您尝试(使用图像文件)相比,从损坏的驱动器(源)克隆到至少相同大小的另一个驱动器(目标)更加直接。

字符后的文本#是注释(未使用)。

sudo ddrescue source-drive target-drive log-file  # generic command line
sudo ddrescue /dev/sdx /dev/sdy sdx2sdy.log       # example

在哪里X是驱动器号,例如bC。正确设置这些驱动器号(并按正确的顺序)非常重要。否则,您可能会破坏重要数据。


您可以使用以下命令来识别驱动器

df
sudo lsblk -f
sudo lsblk -m
sudo parted -ls

信息页面

info ddrescue

包含非常好的教程。请在ddrescue再次使用前仔细阅读。


如果只有文件系统损坏(而不是 USB 驱动器中的存储单元或内部数据管理),则可以使用韓國克隆驱动器。它是从 PPA 安装的,将帮助您识别目标驱动器,从而降低风险。mkusb version 12别名dus可以这样使用,

dus /dev/sdx   # where x is the drive letter of the source (for example b)

最后,请参阅以下链接以获取有关修复 USB 驱动器或从中恢复数据的更多提示,

修复 U 盘的分区表和文件系统

相关内容