Del*_*ted 47 linux mount disk-image
我有一个使用dd创建的整个磁盘的图像。磁盘结构如下:
kent@cow:~$ sudo fdisk -l
Disk /dev/sda: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b8508
Device Boot Start End Blocks Id System
/dev/sda1 * 5 90872 729929303+ 83 Linux
/dev/sda2 90873 91201 2642692+ 5 Extended
/dev/sda5 90873 91201 2642661 82 Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)
该图像是使用以下方法创建的:
dd if=/dev/sda of=image750.img
Run Code Online (Sandbox Code Playgroud)
如果可能,我将如何从图像挂载 /dev/sda1 以便我能够读取内容?
再次克隆硬盘不是一种选择,如果我只克隆了单个分区,我知道该怎么做。我希望当前图像仍然可以。
bhe*_*elm 67
现在,有一个更好的方法,不再需要使用偏移量或 kpartx:
losetup --partscan --find --show disk.img
mount /dev/loop0p1 /mnt
Run Code Online (Sandbox Code Playgroud)
要释放 loop0,请在 umount 后使用:
losetup -d /dev/loop0
Run Code Online (Sandbox Code Playgroud)
小智 14
我今天遇到了这个问题,想更新答案,作为对自己的提醒。您可以使用从 dd 映像为您提供可安装设备的工具,而不是自己计算偏移量:kpartx
http://robert.penz.name/73/kpartx-a-tool-for-mounting-partitions-within-an-image-file/
http://linux.die.net/man/8/kpartx
在给定的情况下,它需要像
sudo kpartx -a image750.img
sudo mount /dev/mapper/loop1p1 /mount/point -o loop,ro
Run Code Online (Sandbox Code Playgroud)
其中 loop1p1 代表第一个分区,loop1p2 代表第二个,依此类推。
您已经获得了第一部分: fdisk -l 来查找起始偏移量。将这个数字乘以 512,您将获得要安装的偏移选项。因此,对于您的情况 sda1,5 * 512 = 2560。然后运行挂载:
mount -o loop,offset=2560 -t auto /path/to/image.dd /mount/point
Run Code Online (Sandbox Code Playgroud)
我相信循环安装就是答案 -
sudo mkdir /path/to/dir/
mount -o loop example.img /path/to/dir/
Run Code Online (Sandbox Code Playgroud)
上面应该将其安装在该目录下。
这应该卸载它:
umount /path/to/dir
Run Code Online (Sandbox Code Playgroud)
小智 5
Loopmounting 只是答案的一部分。
查看http://wiki.edseek.com/guide:mount_loopback#accessing_specific_partitions_in_the_image以获取有关指定分区的帮助。我认为mount -o loop,offset=32256 /path/to/image750.img /mnt 对你有用。但你真的应该阅读提到的教程。
归档时间: |
|
查看次数: |
97364 次 |
最近记录: |