Как просмотреть живую файловую систему QEMU/KVM VM внешне?

Я требую для просмотра файловой системы QEMU/KVM (с virt-manager как GUI) Ubuntu VM с живыми обновлениями информации. Хотя я требую для просмотра этой информации внешне от VM (в хосте). Это - это, не была бы практика для просмотра его из VM, а скорее хоста. Есть ли какой-либо способ сделать это? Хост и гость оба будут Ubuntu GNOME 16.10 с GNOME 3.22.

Хотя, поскольку это в целях тестирования на возможность проникновения, гость может варьироваться, хотя это, вероятно, только между ароматами Ubuntu.

1
задан 3 December 2016 в 19:29

1 ответ

Когда в virt-менеджере можно найти путь к соответствующему файлу в конфигурации VM/disk (что-то как "источник соединяет каналом"); путь по умолчанию /var/lib/libvirt/images/. Узнайте название изображения виртуального диска.

Скажем, канал передачи изображения /var/lib/libvirt/images/disk1.qcow2 (Я предполагаю qcow2 формат здесь).

Во-первых, установка libguestfs-tools на хосте:

sudo apt-get install libguestfs-tools

Можно затем смонтировать виртуальный диск

sudo guestmount -a <image-file> -m <device> --ro /mnt

где <image-file> значит полный путь для образа диска и <device> имя устройства раздела для монтирования. Если Вы не знаете имени устройства, можно дать любое имя для списка допустимых устройств, например.

sudo guestmount -a /var/lib/libvirt/images/disk1.qcow2 -m any --ro /mnt

Это даст Вам что-то как

libguestfs: error: mount_options: mount_options_stub: any: expecting a device name
guestmount: 'any' could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount:     /dev/sda1 (ext2)
guestmount:     /dev/sda2 (ext2)

Для монтирования первого раздела, необходимо затем выйти

sudo guestmount -a /var/lib/libvirt/images/disk1.qcow2 -m /dev/sda1 --ro /mnt

Теперь можно получить доступ к файловой системе в режиме только для чтения в/mnt.

Важный: При монтировании диска выполнения VM таким образом необходимо указать "-ro", что означает только для чтения, иначе файловая система может быть повреждена.

Вместо того, чтобы использовать название virtualdisk файла можно ввести имя виртуального домена, если существует больше чем один диск. Скажем, имя Вашего виртуального домена myvm, можно выйти

sudo guestmount -d myvm -m any --ro /mnt

как что даст Вам что-то

guestmount: 'any' could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount:     /dev/sdb (iso9660)
guestmount:     /dev/sda1 (ext4)
guestmount:     /dev/sda2 (unknown)
guestmount:     /dev/sda5 (swap)
guestmount:     /dev/sdc1 (ext4)
guestmount:     /dev/sdc2 (unknown)
guestmount:     /dev/sdc5 (swap)
guestmount:     /dev/sdd1 (ext2)
guestmount:     /dev/sdd2 (ext2)

таким образом, теперь для монтирования/dev/sdc1 (замеченный от представления VM) можно выйти

sudo guestmount -d myvm -m /dev/sdc1 --ro /mnt

Это должно добиться цели.

5
ответ дан 3 December 2019 в 06:38

Другие вопросы по тегам:

Похожие вопросы: