Modification du mot de passe d'une machine virtuelle
-
12-11-2019 - |
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 ...?
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 p
Rint 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.