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