Монтирование дисков KVM

KVM может использовать формат дисков raw для виртуальных машин. Поскольку это "образ" реального диска, то на нём всенепременно есть MBR с partition table и разделы, которые начинаются не с первого диска а с места, указанного в таблице разделов. Т.е. со смещением от начала, и величина этого смещения зависит от геометрии диска. В случае с диском 512M это смещение в 32 сектора по 512 байт, т.е. 16384 байта:

root@pro57t:/home/big#  losetup -o 16384 -f vfat-512m.img 
root@pro57t:/home/big#  losetup -a
/dev/loop0: [0803]:5382377 (/home/big/vfat-512m.img), offset 16384
root@pro57t:/home/big#

При геометрии диска 63 сектора на дорожку смещение будет составлять 32256 байт:

root@pro57t:/tmp# fdisk /tmp/v.img 
You must set cylinders.
You can do this from the extra functions menu.

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /tmp/v.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1bdb6839

     Device Boot      Start         End      Blocks   Id  System
/tmp/v.img1               1          12       96358+   b  W95 FAT32

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /tmp/v.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1bdb6839

     Device Boot      Start         End      Blocks   Id  System
/tmp/v.img1              63      192779       96358+   b  W95 FAT32

Command (m for help): q

root@pro57t:/tmp# losetup -o 32256 -vf /tmp/v.img
Loop device is /dev/loop0
root@pro57t:/tmp# mount /dev/loop0 /mnt/sdd1 -t vfat
root@pro57t:/tmp#

Однако, при создании файловой системе на образе kvm обязательно нужно учитывать размер "раздела", иначе его конец будет определен по концу носителя. Например, если в образе есть два раздела, и мы при создании петлевого устройства указываем только начало первого (смещение, опция -o), то при создании файловой системы на петлевом устройстве мы затрём данные второго раздела, если не ограничить допустимый размер при создании петлевого устройства опцией --sizelimit.

( categories: )