有什么办法可以挂载部分原始 ntfs 映像吗?

有什么办法可以挂载部分原始 ntfs 映像吗?

我有一个来自 ddrescue 的原始图像,它是完整源的部分图像NTFS分区,只是因为目标驱动器比源驱动器小。

我无法安装此部分图像以复制文件。我收到此错误:

Failed to read last sector (3905654783): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/loop0': Invalid argument
The device '/dev/loop0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

我正在使用的命令:

sudo mount -t ntfs /image.img /mountpath -o loop

有什么方法可以恢复该部分图像文件中包含的数据?

答案1

我能够将部分 NTFS 映像文件作为 RAW 磁盘挂载在 (Windows) VM 中,然后我就可以在其上运行数据恢复软件。

  1. 基于此评论我使用 xmount 挂载了带有单独写入缓存的映像,以保存已恢复的数据。我使用了 raw/dd 挂载。
  2. 基于这个答案我设法从分区映像创建了一个 vmdk 磁盘映像。我在 VMware Player 中使用物理磁盘创建了一个新的磁盘设备(无论哪个磁盘都会被更改)。然后我编辑了创建的 vmdk 文件并更改了范围描述部分,如下所示:
RW 2048 FLAT "parttable.bin" 0
RW 767039487 FLAT "/mnt/NTFSImage.dd" 0

第一行指的是我们接下来要创建的文件。第二行指向分区映像,即它的 xmounted 版本。每行中的第一个数字指的是从该文件读取的块的大小(以扇区为单位)(一个扇区可能是 512 字节)。

  1. 我曾经dd在虚拟机的目录中为分区表创建了一个 1 MB 的文件:
dd if=/dev/zero of=parttable.bin bs=1M count=1
  1. 我使用虚拟磁盘启动了虚拟机并创建了一个新的主分区。您可以使用 diskpart 或磁盘管理执行此操作。只需确保偏移量正确(分区为 1 MB 或 2048 个扇区),尽管这是默认值。

不要格式化创建的分区。这会破坏文件信息,尽管只是在缓存文件中。如果您有一个可用的文件系统映像,它应该会立即识别它。我不知道如果 Windows 找不到文件系统的末尾,它会如何处理,但就我而言,我可以运行恢复软件来扫描文件。

答案2

我正在尝试做同样的事情,挂载部分原始 ntfs 映像或尝试从 ddrescue 的部分 ntfs 转储中拯救文件。

我计划测试的工具列表(首先复制已拯救的图像并使用该副本):

  • 测试盘 [1]
  • ntfs修复 [1] [2]
  • fsck 工具
    fsck.ntfs -y 映像副本.img
  • 侦探工具 [3]
  • 摄影记录 [4]
  1. http://ubuntu-rescue-remix.org/node/71#comment-111
  2. http://linux.die.net/man/8/ntfsfix
  3. http://www.sleuthkit.org/sleuthkit/index.php
  4. http://www.plug.org/pipermail/plug/2009-January/019942.html

相关内容