На практике встречаются случаи, когда возникает необходимость в монтировании образа виртуального диска QCOW для работы с ним как с обычным диском (блочным устройством). В Linux данную операцию можно выполнить с помощью штатной QEMU-утилиты qemu-nbd.
NBD (network block device) – это сетевой протокол, позволяющий передавать блочные устройства (обычно, жесткие диски или отдельные разделы) между хостами. Протокол реализует клиент-серверную архитектуру.
Для работы с NBD необходимо загрузить одноименный модуль ядра.
# modprobe nbd max_part=8
, где в качестве параметров могут быть:
max_part – максимальное количество разделов для одного NBD-устройства (по умолчанию: 0),
nbds_max – максимальное количество блочных NBD-устройств, т.е. устройств, инициализируемых при загрузке модуля (по умолчанию: 16).
Реализация протокола NBD в разрезе эмулятора QEMU доступна с помощью утилиты qemu-nbd, позволяющей в общем случае экспортировать по сети образ диска.
В частности, с помощью данной утилиты как раз-таки и возможно примонтировать виртуальный диск к хостовой ОС, например:
# qemu-nbd -c /dev/nbd0 ./disk.qcow2
При этом формат образа может быть любым из поддерживаемых QEMU.
Теперь с виртуальным устройством /dev/nbd0 можно работать как с обычным диском (включая его разделы).
По завершении работы помимо размонтирования разделов необходимо отключить устройство:
# qemu-nbd -d /dev/nbd0