Question

J'ai des machines virtuelles avec moi. Je veux écrire un script qui automatise le processus suivant ...

  • Il monte la machine virtuelle (avec Linux comme OS) à un emplacement Say / mnt / image
  • Il modifie le / etc / passwd (ou le fichier équivalent) pour modifier le mot de passe de l'utilisateur
  • Débrouiller la machine virtuelle

Depuis, j'utilise libvirt, j'ai des images QCOW2 de la machine virtuelle. Pour monter l'image sur mon Ubuntu, j'utilise le module NBD. Voici les commandes que j'essaie:

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

Cela me donne l'erreur:

mount: special device /dev/nbd0p1 does not exist

Quand je remplace NBD0P1 par NBDO, j'obtiens l'erreur suivante (bien que je ne sois pas sûr de ce que j'essaie de faire par là)

mount: you must specify the filesystem type

Des suggestions, alors quel pourrait être le problème ...?

Était-ce utile?

La solution

Pas une réponse directe à la question, mais un autre
Vous pouvez essayer de convertir l'image QCOW2 en RAW, puis monter l'image brute.

convertir:

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

monter:

    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

Autres conseils

Regarde ça /sys/modules/nbd/parameters/max_part a la valeur attendue. Si c'est 0 ou trop bas, les partitions /dev/nbd0p1, etc. ne sera pas mis à disposition par le noyau. Cela peut arriver si le nbd Le module du noyau était déjà chargé (avec un autre max_part paramètre) lorsque vous avez couru modprobe.

Vous pouvez résoudre ce problème en déchargeant le module et en le modifiant à nouveau.

Se pourrait-il que la partition ne soit pas dans la première fente du MBR, ou une partition étendue est utilisée? Vérifiez pour voir si d'autres nbdXpY Les nœuds de périphérique sont créés ou exécutés fdisk là-dessus et pRint la table de partition.

Je suis tombé sur le même problème et la même erreur mais sur un VDI

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

Pour moi, la solution était simple, je viens de changer nbd0 à nbd1

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

et alors:

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

travaillé.

Veuillez laisser un commentaire si cela a fonctionné pour vous également et sur quel type d'image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top