答案1
用于losetup
将图像文件与空闲/dev/loopN
设备关联:
losetup -P -f /mnt/usb/vdisk1.img
这将报告实际使用的循环设备的名称:如果没有使用其他循环设备,它将报告/dev/loop0
,因此您将能够以 、 和 的形式访问映像中/dev/loop0p1
的/dev/loop0p2
分区/dev/loop0p3
。如果上报的循环设备名称不同,则分区设备的名称也会相应变化。
(在以下示例中,我假设循环设备是/dev/loop0
。)
由于第一个分区被标记为bios_grub
,它可能只包含原始的嵌入式 BIOS GRUB 代码,而不是文件系统。因此无需对其进行检查。
如果您需要访问映像中的第二个分区,您现在就可以执行此操作:
mkdir /mnt/image/partition2
mount /dev/loop0p2 /mnt/image/partition2
对于第三个分区中的 LVM,首先运行vgscan
以确保检测到 LVM PV,然后vgchange -ay
激活它:
vgscan
vgchange -ay
如果这些命令报告duplicate volume group
错误,则镜像上的 VG 与本地系统中已激活的 VG 具有相同的名称,并且除非先消除名称冲突,否则镜像上的 VG 将不会激活。当您有两个具有相同名称的 VG 时,要重命名 VG,您需要 VG UUID:用于vgs -o +VG_UUID
查看 VG UUID,然后用于vgrename
重命名重复项,使用 UUID 来标识要重命名的 VG。然后运行vgchange -ay
并再次尝试激活它。
当vgchange -ay
运行没有错误时,使用lvs
查看映像上逻辑卷的名称。现在您将能够mount /dev/<VG>/<LV> <mountpoint>
像平常一样安装它们。
完成后断开图像连接:
- 首先卸载从映像挂载的所有文件系统
- 然后停用卷组
vgchange -an <VG>
- 最后分离循环设备:
losetup --detach /dev/loop0
现在您将能够毫无错误地卸载 USB 驱动器device is busy
。
答案2
用于losetup
创建一个循环装置从图像
losetup -P -f /mnt/usb/vdisk1.img
镜像的内容将可用/dev/loopX
,如果其上的 LVM 结构未自动激活,请使用vgs
和/或vgscan
获取卷组的名称,使用激活它vgchange -ay <name>
,然后挂载逻辑卷(您可以使用获取它们的列表)lvs
并使用 ) 安装它们mount /dev/<vgname>/<lvname> <mountpoint>
。