挂载或打开我用 dd 备份的磁盘

挂载或打开我用 dd 备份的磁盘

我使用该命令dd来生成磁盘(SD 卡)的完整副本。现在,我试图检索存储在其中的信息,但我不知道如何读取文件的内容。我使用该命令dd if=/dev/mmcblk0 of=/home/user/devmmcblk0.img bs=1M来生成文件。正如 ubuntu 报告的那样,SD 卡是 16GB,文件也是 16GB。该文件的格式是 fat32。我使用以下命令来安装它:mount -t vfat /home/user/devmmcblk0 /mnt但它说fstype incorrect, incorrect option, wrong superblock in /dev/loop0。我还尝试在 virtualbox 中安装一些 linux 并将映像文件添加为辅助磁盘,但它不会让 virtualbox 挂载它,给出以下错误

Código Resultado: 
VBOX_E_IPRT_ERROR (0x80BB0005)
Componente: 
Medium
Interfaz: 
IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
Receptor: 
IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Receptor RC: 
VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

我们将非常感谢任何有关恢复信息的帮助。

编辑我被问到几个命令的输出,所以我会把它们添加到这里供大家查看

$ file -s devmmcblk0.img
devmmcblk0.img: x86 boot sector
$ mount -t vfat -o ro,loop /home/user/devmmcblk0 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop0
$ fdisk -lu devmmcblk0.img
Disk devmmcblk0.img: 16.0 GB, 16003891200 bytes
255 heads, 63 sectors/track, 1945 cylinders, total 31257600 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
Disk identifier: 0x00000000
    
Device Boot      Start         End      Blocks   Id  System
devmmcblk0.img1            8192    31257599    15624704    c  W95 FAT32 (LBA)

答案1

kpartx 也是一个选项。来自互联网上的一个网站:

# kpartx -l gothbook.img
loop1p1 : 0 512000 /dev/loop1 63
loop1p2 : 0 512000 /dev/loop1 512063
loop1p3 : 0 45056000 /dev/loop1 1024063
loop1p5 : 0 8388608 /dev/loop1 46090548
loop1p6 : 0 39070017 /dev/loop1 54492543
loop1p7 : 0 62733762 /dev/loop1 93562623

我从 kpartx 的输出中看到我的驱动器映像包含 6 个分区。我可以看到它们的起始偏移量。第一列告诉我如果我选择添加这些设备分区将创建的设备文件的名称。现在让我们添加它们。

# kpartx -a -v gothbook.img
add map loop1p1 (253:6): 0 512000 linear /dev/loop1 63
add map loop1p2 (253:7): 0 512000 linear /dev/loop1 512063
add map loop1p3 (253:8): 0 45056000 linear /dev/loop1 1024063
add map loop1p5 (253:9): 0 8388608 linear /dev/loop1 46090548
add map loop1p6 (253:10): 0 39070017 linear /dev/loop1 54492543
add map loop1p7 (253:11): 0 62733762 linear /dev/loop1 93562623

# ls -l /dev/mapper
total 0
crw-rw---- 1 root root  10, 62 2010-06-15 17:40 control
brw-rw-r-- 1 neil neil 253,  6 2010-08-16 00:28 loop1p1
brw-rw-r-- 1 neil neil 253,  7 2010-08-16 00:28 loop1p2
brw-rw-r-- 1 neil neil 253,  8 2010-08-16 00:28 loop1p3
brw-rw-r-- 1 neil neil 253,  9 2010-08-16 00:28 loop1p5
brw-rw-r-- 1 neil neil 253, 10 2010-08-16 00:28 loop1p6
brw-rw-r-- 1 neil neil 253, 11 2010-08-16 00:28 loop1p7

上述命令将六个设备映射文件添加到 /dev/mapper。每个设备文件都对应于该硬盘驱动器映像中的一个分区。我们现在可以使用这些设备文件来挂载这些分区并访问它们包含的任何文件。我想挂载第五个分区 (/dev/mapper/loop1p6) 并查看其文件。

# mkdir /mnt/sysimage
# mount /dev/mapper/loop1p6 /mnt/sysimage
# ls /mnt/sysimage
bin    dev   initrd.img      lost+found  opt   sbin     sys  var
boot   etc   initrd.img.old  media       proc  selinux  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv      usr  vmlinuz.old

挂载设备文件后,您可以访问该分区中包含的文件。完成后,不要忘记使用 kpartx 卸载分区并断开设备映射文件。 # umount /mnt/sysimage # kpartx -d -v gothbook.img

答案2

您应该挂载该分区,它从文件内部的偏移量开始。

sudo mount -o offset=$((512*8192)),ro,loop -t vfat /home/user/devmmcblk0.img /mnt

笔记:

  • loop可能没有必要。

  • 512是 所报告的扇区大小fdisk

  • 8192是起始扇区。

您的图像覆盖整个 SD 卡;它类似于(例如)/dev/sdb。如果是 SD 卡,那么将有/dev/sdb1可供安装。安装sdb1sdb自动以适当的偏移量进行安装。对于图像文件,没有这样的魔法——您没有特殊的devmmcblk0.img1。可以手动创建这样的文件,但很麻烦且不是真正必要的(编辑:kpartxKevinB 的答案就是这样做的)。最简单的方法是将正确的偏移量传递给mount命令。

答案3

更新:这次请尝试使用只读选项,

sudo mount -t vfat -o ro,loop /home/user/devmmcblk0 /mnt

更新2:

看到手动处理环回设备时遇到的所有障碍,也许你可能想尝试更高级的方法?请查看

sudo testdisk devmmcblk0.img

有任何好消息

更新3:

它很可能是一个 exfat 格式的分区,需要exfat-fuse正确exfat-utils挂载。

相关内容