Schlagwort-Archive: qemu

QEMU: Festplatten als SATA/AHCI einbinden

Physikalische Remote-Server aufsetzen macht ohne KVM-IP eher wenig Spaß. Groß ist die Gefahr, dass durch Kernel-Updates oder spielen am Bootloader die Kiste nach einem Reboot nicht mehr bootet. Wäre es nicht praktisch, wenn man die Platten nicht kurz in eine VM werfen und da booten könnte?

QEMU ist – spätestens mit KVM – sicher der schnellste Weg, das übliche -hda bindet die Festplatten jedoch als IDE-Geräte ein. Schlecht, wenn man nur AHCI, also SATA, in fstab, Treibern & Co vorgesehen hat.

Abhilfe schaffen folgende Parameter, welche mir bei Rubénerd über den Weg gelaufen sind:

[..]
-drive file=/dev/sda,if=none,id=Disk1 \
-device ich9-ahci,id=ahci \
-device ide-drive,drive=Disk1,bus=ahci.0 \
[..]

Wichtig: Hierbei sollte das System im Haupt-OS nicht eingehangen oder Read-Only sein. Sowas ist üblicherweise nur mit einem Rettungssystem möglich, andernfalls kann es zu Dateisystemschäden kommen. Alternativ könnte confinedrv helfen eine Testumgebung zu schaffen.

BitBastelei #179 – Freie Virtualisierung mit QEMU/KVM/LibVirt/Virt-Manager

BitBastelei #179 - Freie Virtualisierung mit QEMU/KVM/LibVirt/Virt-Manager

(27 MB) 00:16:42

2016-01-10 11:01 🛈

Virtualisierung ist praktisch – Hardware sparen, Dinge testen, Zuverlässigkeit erhöhen. Programme dazu gibt es auch einige, doch die Meisten verlangen für den vollen Funktionsumfang einen nicht gerade kleinen Geldbetrag. Unter Linux ist die die Kombination QEMU/KVM schon seit langem eine schnelle und einfache Methode virtuelle Systeme zu betreiben. Mit LibVirt und dem Virt-Manager lässt sich dieses Konstrukt dann selbst in großen Installationen übersichtlich verwalten.

Gentoo: Abbruch beim Update auf Qemu 2.x bei Nutzung von libvirt

Das letzte world-Update eines Gentoo-Servers war etwas aufwändiger als üblich: Die betroffene Kiste kümmert sich unter anderem per libvirt und qemu um Virtualisierung, letzteres sollte mit dem Update von einer 1.5.x-Version auf eine 2.x aktualisiert werden. Mit der neuen Qemu-Version haben sich jedoch einige wichtige Dinge geändert, so gibt es nun keine zentrale Datei zum Start von VMs mehr. Auch die KVM-Unterstützung ist nicht länger als eigener Wrapper vonhanden. Statt einem bösen Erwachen fängt glücklicherweise das Update – bei Verwendung von Libvirt – eine veraltete Konfiguration ab und führt zu einer Fehlermeldung:

* The kvm/qemu-kvm wrappers no longer exist, but your libvirt
* instances are still pointing to it. Please update your
* configs in /etc/libvirt/qemu/ to use the -enable-kvm flag
* and the right system binary (e.g. qemu-system-x86_64).
* ERROR: app-emulation/qemu-2.0.0::gentoo failed (pretend phase):
* update your virt configs to not use qemu-kvm
*
* Call stack:
* ebuild.sh, line 93: Called pkg_pretend
* qemu-2.0.0.ebuild, line 225: Called die
* The specific snippet of code:
* die “update your virt configs to not use qemu-kvm”

Schauen wir mal nach – in /etc/libvirt/qemu liegt für jede VM eine XML-Datei mit allen Einstellungen, unter anderem findet sich in jeder der Dateien ein Eintrag <emulator>/usr/bin/qemu-kvm</emulator>, welcher mit dem “neuen” Pfad des Emulators, also “qemu-system-x86_64” für einen 64Bit-x86-Client, ersetzt werden muss. Die KVM-Erweiterung muss man hierbei nicht beachten, Libvirt gibt die nötigen Argumente zum aktivieren des Virtualisierungsmodus automatisch mit. Also Texteditor auf und ran ans Editieren, richtig? Nunja, das geht bei 2 oder 3 VMs, ich hab da aber ein paar mehr, also muss folgender Einzeiler herhalten:

for i in /etc/libvirt/qemu/*.xml ;do mv "$i" "$i.backup" && sed 's/\/usr\/bin\/qemu-kvm/\/usr\/bin\/qemu-system-x86_64/' "$i.backup" > "$i" ;done

Hinweis: Der Einzeiler lässt die Originaldateien als Backup zurück – wenn alles funktioniert hat können die Dateien mit der Endung *.backup entfernt werden.

Nachdem die XML-Dateien angepasst wurden lässt sich das Qemu-Update wie gewohnt installieren.