Как подмонтировать образ XEN/ How to mount XEN image

Материал из support.qbpro.ru

1. Убедитесь что диск не используется ниодной виртуальной машиной. 2. Поключим образ виртуальной машины в lo устройство.

losetup /dev/loop0 /path/to/diskimage.xm

3. Посмотрим разделы:

fdisk -ul /dev/loop0
Disk /dev/loop0: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x0004a36d
Device Boot Start End Blocks Id System
/dev/loop0p1 63 1028159 514048+ 82 Linux swap / Solaris
/dev/loop0p2 * 1028160 8385929 3678885 83 Linux

4. Монтируем нужный раздел.

Колонка Start - это смещение для каждого раздела в файле образе виртуальной машины. Значения приведены в секторах, один сектор - 512 байт.

63 * 512 = 32256 байт.

Исходя из этого, для того что-бы подмонтировать первый раздел, тут он своп, но это не важно, нужно выполнить команду:

losetup -o32256 /dev/loop0 /path/to/diskimage.xm

для второго раздела:

losetup -o526417920 /dev/loop0 /path/to/diskimage.xm

Скрипт монтирования XEN образа

#!/bin/bash
if [ "$#" -ne "3" ]; then
    echo "Usage: `basename $0` <image_filename> <partition # (1,2,...)> <mount point>" >&2
    echo "       # fdisk -lu <image_filename> to view partition table" >&2
    exit 1
fi
if ! fdisk -v > /dev/null 2>&1; then
    echo "Can't find the fdisk util. Are you root?" >&2
    exit 1
fi
FILE=$1
PART=$2
DEST=$3
UNITS=`fdisk -lu $FILE 2>/dev/null | grep $FILE$PART | tr -d '*' | tr -s ' ' | cut -f2 -d' '`
OFFSET=`expr 512 '*' $UNITS`
mount -o loop,offset=$OFFSET $FILE $DEST

exempel  vmtest vm # /usr/local/bin/imgmount.sh /vm/lb1-6.img 1 /mnt/sdb/