четверг, 3 декабря 2009 г.

KVM: монтируем qcow2


Нужно: kernel 2.6.26

загружаем модуль nbd:

sudo modprobe nbd max_part=8

если загрузить без параметра max_part - то сможем обращаться к диску но не будем видеть разделов - у нас не будет device nodes
запустив:

sudo qemu-nbd root.qcow2

тем самым цепляемся на (0.0.0.0) и шарим диск по дефолтному порту (1024).

( Важно отметить, что nbd kernel module создает /dev/nbd0 , когда в свою очередь на man странице nbd-client написано /dev/nb0 lp:290076.)

При выполнении получим:

# nbd-client localhost 1024 /dev/nb0
Error: Can not open NBD: No such file or directory

Вышеуказанные операции можно осуществить одной опцией ‘–connect’ команды qemu-nbd, вот так:

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

После выполнения команды раздел становится доступным :

sudo fdisk /dev/nbd0

или можно подмонтировать , вот так

mount /dev/nbd0p1 /mnt

4 комментария:

Unknown комментирует...

это работает только с 26 ядром? на центосе с 18 не будет работать????

Unknown комментирует...

хотя я попробовал на федоре с 31 ядром, тоже не монтируеться

на qemu-nbd root.qcow2 команде висит и ничего не происходит

qemu-nbd --connect=/dev/nbd0 root.qcow2 - эта выполняеться без ошибок, но все равно не монтируеться

Unknown комментирует...

нужно монтировать не /dev/nbd0
а /dev/nbd0p1, тогда все ок)

szhukov комментирует...

Вот как раз на CentOS'е с его ядром /dev/nbd0p1 никогда не получите, потому как для того, чтобы были девайсы-партишены, нужно обязательно указать модулю параметр max_part.
Модуль для ядра CentOS'а об этом параметре ничего не знает :(