Normale Ansicht

Received before yesterday

Wie füge ich einer KVM/libvirt VM eine serielle Konsole hinzu?

07. April 2025 um 06:00

Ich beantworte hier meine eigene Frage, damit ich zukünftig nicht so lange im Internet nach der Anwort suchen muss.

Mein Ziel ist es, eine virtuelle Maschine mit dem Kommando virt-install zu installieren, zu welcher ich mich anschließend mit dem Kommando virsh console <domain> verbinden kann, um z.B. das Netzwerk konfigurieren zu können.

Dies geht mit folgendem Befehl:

$ virt-install --connect qemu:///system --name vm1 --memory 4096 --vcpus 2 --disk VirtualMachines/vm1.qcow2,size=40 --os-variant rhel9.5 --cdrom iso/rhel-9.5-x86_64-dvd-ks.iso --network network=lab1,model=virtio --console pty,target_type=virtio

Der entscheidende Teil ist dabei --console pty,target_type=virtio. Der folgende Codeblock zeigt nun noch die erfolgreiche Verbindung zur seriellen Konsole der VM:

$ virsh -c qemu:///system console vm1 --safe
Connected to domain 'vm1'
Escape character is ^] (Ctrl + ])

localhost login:

Fertig.

Kurztipp: IPv6-Konflikte bei geklonten RHEL-9-Instanzen vermeiden

05. März 2023 um 20:13

Kürzlich bin ich beim Klonen von virtuellen Maschinen mit AlmaLinux 9 unter KVM/libvirt als Virtualisierungs-Host auf Netzwerk-Probleme gestoßen: Obwohl ich sämtlichen VMs per Script Netzwerkadapter mit eigenen MACs, IPv4- und IPv6-Adressen zugewiesen haben, traten IPv6-Netzwerkkonflikte auf — und zwar nicht für die reguläre Adressen, sondern für die Link-Local-Unicast-Adressen (fe80-xxx).

Eine kurze Google-Suche führt zur Ursache des Problems: Der NetworkManager wertet offenbar /etc/machine-id aus, um »eindeutige« fe80-Adressen zu generieren. Bei den geklonten VMs war /etc/machine-id aber immer identisch. Die resultierenden IPv6-fe80-Adressen waren daher ebenfalls identisch und führten zu Adresskonflikten (IPv6 Duplicate Address Detected) und letztlich zur Deaktivierung des betreffenden Netzwerkadapters.

Abhilfe ist zum Glück einfach: /etc/machine-id muss gelöscht und neu erzeugt werden:

rm /etc/machine-id
systemd-machine-id-setup

In meinen Setup gibt es ein Script, das beim ersten Start in jeder VM ausgeführt wird. Es führt zuerst die statische Konfiguration der Netzwerkschnittstellen durch, dann die beiden obigen Kommandos und zuletzt einen reboot. Damit gelingt der Parallelbetrieb diverser geklonter VMs wieder problemlos.

Quelle

https://raj-anju.medium.com/virsh-cloning-vms-dad-ipv6-duplicate-address-detected-dadfailed-errors-centos-rhel8-210fca0af724

❌