Смена пароля виртуальной машины

У меня есть несколько виртуальных машин. Я хочу написать скрипт, который автоматизирует следующий процесс...

  • Он монтирует виртуальную машину (с linux в качестве операционной системы) в папку скажем / mnt / image
  • Он изменяет / etc / passwd (или эквивалентный файл), чтобы изменить пароль пользователя
  • Размонтировать виртуальную машину

Поскольку я использую libvirt, у меня есть некоторые образы qcow2 виртуальной машины. чтобы смонтировать образ на моем Ubuntu, я использую модуль nbd. Вот команды, которые я пытаюсь:

modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.qcow2
mount /dev/nbd0p1 /mnt/image

Это дает мне ошибку:

mount: special device /dev/nbd0p1 does not exist

Когда я заменяю nbd0p1 на nbdo, я получаю следующую ошибку (хотя я не уверен, что я пытаюсь сделать этим)

mount: you must specify the filesystem type

Любые предложения, так как в чем может быть проблема...?

4 ответа

Решение

[Не прямой ответ на вопрос, а альтернативный]
Вы можете попытаться преобразовать образ qcow2 в raw, а затем смонтировать необработанный образ.

перерабатывать:

qemu-img convert -f qcow2 image.qcow2 -O raw image_raw.raw

крепление:

    sudo losetup /dev/loop0 image_raw.raw
    sudo kpartx -a /dev/loop0
    sudo mount /dev/mapper/loop0p3 /mnt/image
    sudo mount /dev/mapper/loop0p2 /mnt/image/boot

Проверь это /sys/modules/nbd/parameters/max_part имеет ожидаемое значение. Если это 0 или слишком низко, разделы /dev/nbd0p1и т. д. ядром не будут доступны. Это может произойти, если nbd модуль ядра уже загружен (с другим max_part параметр), когда вы бежали modprobe,

Вы можете исправить это, выгрузив модуль и снова запустив его.

Может ли быть так, что раздел находится не в первом слоте MBR, или используется расширенный раздел? Проверьте, есть ли другие nbdXpY узлы устройства создаются или запускаются fdisk на это и pперепечатать таблицу разделов.

Я наткнулся на ту же проблему и ту же ошибку, но на VDI

qemu-nbd -c /dev/nbd0 image.vdi

для меня решение было простым, я просто изменил nbd0 в nbd1

qemu-nbd -c /dev/nbd1 image.vdi

а потом:

sudo mount  /dev/nbd1p1 /media/eddie/virtual 

работал.

Пожалуйста, оставьте комментарий, если это сработало и для вас, и для какого типа изображения.

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