以原始格式挂载磁盘映像

spa*_*iff 13 filesystem command-line mount file-format disk-image

尝试使用以下命令以 Raw(dd) 格式安装磁盘映像时

mount  nps-2010-emails.dd /media/manu/
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息

mount: you must specify the filesystem type
Run Code Online (Sandbox Code Playgroud)

我知道使用-t我们可以指定文件系统,但是 RAW (dd) 文件的术语是什么,它可以作为参数传递给 mount 命令。如果我挂载这个文件系统的方法是错误的,请帮我做同样的事情。

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 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
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 
Run Code Online (Sandbox Code Playgroud)

mur*_*uru 18

http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/,有一个使用偏移量的建议。首先获取偏移通过fdisk(8),然后使用offset选项指定它mount。使用fdisk来确定分区和扇区大小的起始扇区。然后使用起始扇区号和扇区大小(以字节为单位)计算偏移量(以字节为单位)。有关示例,请参阅从整个磁盘(设备)的映像挂载单个分区。最后:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/
Run Code Online (Sandbox Code Playgroud)

在典型的硬盘中,保存数据的单元被分组。这些分组称为扇区。我们通常对事物进行分区的方式是,将前几个扇区放在一边以提供有关分区的信息,从而留出空隙。因此,如果我们有整个磁盘的映像,这些扇区也会被包含在内。现在,mount命令不能直接从第一个字节开始,因为分区不是从第一个字节开始。所以,我们将不得不告诉mount要跳过多少字节(以便它可以避免额外信息)并到达实际分区。这称为偏移量。现在每个扇区都可以以字节为单位存储一定量的信息,称为扇区的大小。我们通过将扇区的大小乘以扇区数的间隙大小来获取可以存储在此间隙中的信息的总大小。

fdisk那里的输出中,您可以看到扇区大小为 512 字节,它从扇区 1 开始。因此偏移量为 1*512=512。尝试以下命令:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/
Run Code Online (Sandbox Code Playgroud)

我添加了文件系统类型,因为fdisk它是 FAT32。要安装它以进行写入,请-o offset=512,rw改用。


agg*_*877 13

您也可以让电脑自动扫描转储所有分区,并自动准备好所有回路设备,如所描述这里

因此,假设您将整个内容倾倒/dev/sda到名为sda.img. 您可以按如下方式访问其分区:

losetup -f -P sda.img
Run Code Online (Sandbox Code Playgroud)

在我的系统上,它显示如下:

sda原始图像

在非 GUI 环境中,您可以使用 列出创建的设备losetup -l,它会告诉您循环设备的名称,例如:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0
Run Code Online (Sandbox Code Playgroud)

然后你可以挂载第一个分区,使用:

mount /dev/loop0p1 /mnt/mypartition
Run Code Online (Sandbox Code Playgroud)

希望有帮助。

  • 同样,在 Ubuntu 18.04 上,我可以轻松地执行“gparted backup.img”并获取分区列表。“fdisk -l backup.img”也显示了有用的信息。 (2认同)