Как подмонтировать образ XEN/ How to mount XEN image
Материал из support.qbpro.ru
Версия от 02:14, 1 сентября 2013; imported>Vix
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/