挂载在镜像文件里的虚拟磁盘比挂载位于物理存储设备的虚拟磁盘困难得多。不像物理设备,为了挂载镜像文件你需要知道回环设备。这个回环设备由内核模块(叫做回环)组成,确保对于每个你想挂载的文件,就会创建一个回环设备。这些回环设备按顺序编号,第一个的名字在/dev/loop0。
你可能已经熟悉文件系统上的回环设备进程。例如,你能使用这个技术挂载.ISO文件。使用以下命令:
mount -o loop /bestand.iso /mnt
不过,如果你需要访问Xen虚拟磁盘文件里的分区,这个步骤帮不了你。你不想挂载文件,只想首先访问里面的分区,那么你需要在回环设备和你想访问的镜像文件之间使用losetup命令建立连接。在连接之前,输入下面的命令查看正在使用的回环设备:
losetup –a
假定没有回环设备正在使用,可以使用/dev/loop0作为回环设备,连接到Xen镜像文件。如果镜像文件的名字是/var/lib/xen/images/vm1/disk0,使用下面命令建立连接:
losetup /dev/loop0 /var/lib/xen/images/vm1/disk0
如果你再次使用losetup,你将发现已创建的回环设备,在回环设备和镜像文件之间存在连接。现在可以使用下面命令开始分析镜像文件里的分区:
fdisk -l: fdisk -l /dev/loop0
基于fdisk -l显示给你的信息。你应该能辨别哪个设备宿主根文件系统。发现后,你需要确保你有相同的设备文件用于镜像文件里的分区,以便挂载它们。如果安装了多路径工具包,使用下面命令:
kpartx -a /dev/loop0
由于镜像文件使用loop0设备,
这个创建的设备文件的名字是/dev/mapper/loop0p1、/dev/mapper/loop0p2,以此类推。你现在能使用这些文件挂载文件系统,这些系统上安装了操作系统的根。这可以是Linux或Windows操作系统,因为你能在虚拟主机操作系统上挂载它们。一旦对这个文件系统作出必要的修改,输入下面命令正确卸载:
umount /mnt
kpartx -d /dev/loop0
losetup -d /dev/loop0