Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе?

Модератор: Модераторы разделов

Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе?

Сообщение kt315e »

Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе? Естественно когда он не используется kvm. Или посоветуйте другой способ связи между виртуальной и хост системами.
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе?

Сообщение Ali1 »

kt315e писал(а):
16.12.2009 22:03
Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе? Естественно когда он не используется kvm. Или посоветуйте другой способ связи между виртуальной и хост системами.

Да, иногда возможно.
Если у Вас простой raw-образ, то используя losetup и mount, можно как-то так:

Код: Выделить всё

[root@aliCD images]# losetup  /dev/loop1 CentOS.img
[root@aliCD images]# fdisk -lu /dev/loop1

Диск /dev/loop1: 4294 МБ, 4294967296 байт
255 heads, 63 sectors/track, 522 cylinders, всего 8388608 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x0008442d

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/loop1p1   *          63     8385929     4192933+  83  Linux
[root@aliCD images]#
[root@aliCD images]# mount -t ext3 -o loop,offset=32256 /dev/loop1 /home/ali/Loop/
[root@aliCD images]# ls /home/ali/Loop/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  poweroff  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@aliCD images]# mount | grep loop
/dev/loop0 on /home/ali/Loop type ext3 (rw,offset=32256)
[root@aliCD images]#

см. man losetup на предмет --offset --sizelimit --encryption.
Смещение и sizelimit в Байтах.
UPD
Если fdick не хочет выдавать дынных, а такое бывает, то можно считать первый сектор и разобрать в шестнадцатеричном редакторе. Например:

Код: Выделить всё

# dd if=CentOS.img bs=512  count=1  2>/dev/null | hexdump
Спасибо сказали:
prof
Сообщения: 119
ОС: gentoo

Re: Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе?

Сообщение prof »

Да, можно. Даже если он не raw, а qcow формат имеет, он может быть доступен через nbd:
http://blog.loftninjas.org/2008/10/27/moun...mu-disk-images/

Если кратко, то так:

Код: Выделить всё

sudo modprobe nbd max_part=8

sudo qemu-nbd --connect=/dev/nbd0 root.qcow2


После чего с образом диска можно работать как с обычным блочным устройством. Например смонтировать первый раздел с виртуального диска:

Код: Выделить всё

mount /dev/nbd0p1 /mnt


nbd есть и для vmware'вских образов, AFAIK.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе?

Сообщение rm_ »

Ali1 писал(а):
08.04.2010 19:32
Если у Вас простой raw-образ, то используя losetup и mount, можно как-то так:

Код: Выделить всё

[root@aliCD images]# losetup  /dev/loop1 CentOS.img
[root@aliCD images]# fdisk -lu /dev/loop1

Диск /dev/loop1: 4294 МБ, 4294967296 байт
255 heads, 63 sectors/track, 522 cylinders, всего 8388608 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x0008442d

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/loop1p1   *          63     8385929     4192933+  83  Linux
[root@aliCD images]#
[root@aliCD images]# mount -t ext3 -o loop,offset=32256 /dev/loop1 /home/ali/Loop/

Зачем же такой огород-то, -o loop создаст ещё одно loop-устройство, это абсолютно излишне.
Вместо этого нужно проще делать:

Код: Выделить всё

# losetup -o 32256 /dev/loop1 CentOS.img
# mount -t ext3  /dev/loop1 /home/ali/Loop/
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Возможно ли примонтировать виртуальный диск/образ диска kvm в хост системе?

Сообщение Ali1 »

rm_ писал(а):
21.04.2010 23:59
....
Зачем же такой огород-то, -o loop создаст ещё одно loop-устройство, это абсолютно излишне.
Вместо этого нужно проще делать:

Код: Выделить всё

# losetup -o 32256 /dev/loop1 CentOS.img
# mount -t ext3  /dev/loop1 /home/ali/Loop/


Для общности. :)
Тогда уж:

Код: Выделить всё

# mount -t ext3  -o loop,offset=32256  CentOS.img /home/ali/Loop/

Но если у Вас не один раздел, то проще сделать losetup и fdisk -lu, чтоб узнать смещения и длины разделов.
Впрочем, если разделы содержат в себе bsd-подразделы, или субразделы minix3, или lvm какой нибудь, то без dd и hexdump, всё одно, не обойтись. :)
Спасибо сказали: