Answers:
如果它是带有MBR分区表的硬盘驱动器映像,则我将对映像进行fdisk查找,以找到需要挂载的分区的偏移量。
fdisk -lu /path/disk.img
然后我将其安装通过偏移量。
mount -o loop,offset=xxxx /path/disk.img /mnt/disk.img.partition
偏移值以字节为单位,而fdisk
显示的是块计数,因此您应将fdisk
输出的“开始”或“开始”列中的值乘以512
(或任何块大小)以获取要安装的偏移量。
losetup -P
通常比这种方法更方便:unix.stackexchange.com/a/316407/32558
在大多数现代GNU系统上,该mount
命令可以处理:
mount -o loop file.iso /mnt/dir
要卸载,您只需使用umount
命令
umount /mnt/dir
如果您的操作系统没有此选项,则可以创建一个循环设备:
losetup -f # this will print the first available loop device ex:/dev/loop0
losetup /dev/loop0 /path/file.iso #associate loop0 with the specified file
mount /dev/loop0 /mnt/dir #It may be necessary specify the type (-t iso9660)
要卸载您可以使用-d
:
umount /mnt/dir
losetup -d /dev/loop0
如果文件具有分区(例如HD映像),则可以使用-P
参数(取决于您的操作系统),它将在文件内容中映射分区:
losetup -P /dev/loop0 /path/file.iso # will create /dev/loop0
ls /dev/loop0p* #the partitions in the format /dev/loop0pX
localhost
对于磁盘映像,这基本上是(环回!)。
losetup
并且mount -o loop
特定于Linux。它将在GNU分布使用不同的内核不工作(如赫德,Illumos的或kFreeBSD虽然Illumos的和FreeBSD将有一个不同的语法等效)
losetup
:unix.stackexchange.com/a/430415/32558
losetup -P
自动化多分区映像
如何从命令行挂载磁盘映像?| 提到了Unix&Linux Stack Exchangelosetup -P
,这是一些方便的Bash函数来进一步自动化。用法:
$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2
$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there
$ sudo losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop1 0 0 0 0 /full/path/to/my.img
$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0
资源:
los() (
img="$1"
dev="$(sudo losetup --show -f -P "$img")"
echo "$dev"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
echo "$dst"
sudo mkdir -p "$dst"
sudo mount "$part" "$dst"
done
)
losd() (
dev="/dev/loop$1"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
sudo umount "$dst"
done
sudo losetup -d "$dev"
)