如何挂载分区的 dd 映像?

0cd*_*0cd 9 linux mount dd disk-image

几天前,我使用以下命令创建了我的一个磁盘(而不是整个磁盘)的分区(包含 HFS+ FS)的 dd 映像 -

dd conv=sync,noerror bs=8k if=/dev/sdc2 of=/path/to/img

我怎样才能安装它?我尝试了以下但它不起作用 -

mount -o loop,ro -t hfsplus /path/to/img /path/to/mntDir

它给了我

mount: wrong fs type, bad option, bad superblock on /dev/loop1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail or so
Run Code Online (Sandbox Code Playgroud)

dmesg | tail给我——

[5248455.568479] hfs: invalid secondary volume header
[5248455.568494] hfs: unable to find HFS+ superblock
[5248462.674836] hfs: invalid secondary volume header
[5248462.674843] hfs: unable to find HFS+ superblock
[5248550.672105] hfs: invalid secondary volume header
[5248550.672115] hfs: unable to find HFS+ superblock
[5248993.612026] hfs: unable to find HFS+ superblock
[5248998.103385] hfs: unable to find HFS+ superblock
[5249031.441359] hfs: unable to find HFS+ superblock
[5249036.274864] hfs: unable to find HFS+ superblock
Run Code Online (Sandbox Code Playgroud)

我做错了什么吗?

我尝试搜索如何执行此操作,但我得到的所有结果仅讨论从完整磁盘映像中挂载分区,使用带有 mount 的偏移选项 - 没有讨论映像本身是分区的情况。

谢谢。

PS:我正在运行 64 位 Arch Linux,并且原始磁盘的分区/dev/sdc2安装正常。

小智 2

您可能首先必须使用 losetup 从您的文件创建设备,然后挂载该设备。以下是我如何挂载包含分区映像的备份文件:

losetup /dev/loop1 /home/backup-file
mount /dev/loop1 /mnt/backup 
Run Code Online (Sandbox Code Playgroud)

然后我的分区出现在/mnt/backup下,原始文件是/home/backup-file。也许你可以用“mount -o循环”来完成这一切,但我还没有成功,所以我单独使用losetup。

完成后,我卸载分区,然后使用“losetup -d /dev/loop1”删除循环,以防万一。

此外,您还可以使用 losetup 来查找系统中当前空闲的循环设备,方法是 losetup -f

让我知道这个是否奏效。

  • `mount -o Loop` 会在内部自动分配一个环回设备,因此手动将映像分配给一个环回设备是额外的、不必要的工作。 (2认同)