我有一个 .dd 文件,想检查里面的内容。许多教程建议使用 Disk Image Mounter,但这个选项不存在。
所以我尝试了经典的方法:
mkdir /mnt/image
和
sudo mount -o loop /home/name/Downloads/usb_content.dd
但得到这个
Failed to read last sector (129022): 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/loop42': Invalid argument
The device '/dev/loop42' 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?
我怎样才能正确挂载 dd 映像?
编辑:
sudo fdisk --list /home/name/Downloads/usb_content.dd
给出:
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: 0x73736572
Device Boot Start End Sectors Size Id Type
/home/name/Downloads/usb_content.dd1 1920221984 3736432267 1816210284 866G 72 unknown
/home/name/Downloads/usb_content.dd2 1936028192 3889681299 1953653108 931,6G 6c unknown
/home/name/Downloads/usb_content.dd3 0 0 0 0B 0 Empty
/home/name/Downloads/usb_content.dd4 27722122 27722568 447 223,5K 0 Empty
Partition table entries are not in disk order.
答案1
您的镜像文件中似乎有四个分区。如果至少一个分区具有 Ubuntu 可以管理的文件系统,您可以尝试按照以下步骤挂载分区。
安装
kpartx
sudo apt install kpartx
用于
kpartx
将图像文件的内容映射到循环设备sudo kpartx -av /home/name/Downloads/usb_content.dd
您应该使用以下方法找到映射的循环设备
ls /dev/mapper/loop*
用于
lsblk
查看映射内容lsblk -o name,size,fstype,label,mountpoint /dev/loopN
其中
N
是一个数字(如果之前没有循环设备,则为 0,否则为第一个未占用的数字,例如 7,取决于已映射的循环设备数量)。 在我的情况下(没有任何快照),N = 0
所以/dev/loop0
。现在,
lsblk
应该告诉您是否有某个文件系统,如果是的话,您可以创建挂载点并使用以下方式挂载[文件系统]sudo mkdir /mnt/lp1 # create mountpoint only once sudo mkdir /mnt/lp2 # create mountpoint only once ... sudo mount /dev/mapper/loopNp1 /mnt/lp1 sudo mount /dev/mapper/loopNp2 /mnt/lp2 ...
N
您之前确定的数字在哪里(就我的情况而言0
)。现在,您可以读取已挂载文件系统的内容
/mnt/lp1
/mnt/lp2
...
最后,您可能需要卸载文件系统并删除映射,
sudo umount /mnt/lp* sudo kpartx -d /home/name/Downloads/usb_content.dd