Einen VM-Clone in Virt-Manager mit virt-clone und virt-sysprep erstellen
Ein VM-Clone kopiert Bytes, nicht die Identität.
Virt-Manager (die libvirt-GUI) kopiert eine KVM-Festplatte und weist dem Klon eine UUID und eine MAC-Adresse zu. Der Gast behält seine machine-id und seine SSH-Hostkeys, bis virt-sysprep sie bereinigt.
Diese Schritt-für-Schritt-Anleitung verwendet einen Ubuntu-26.04-Gast und ein 14 GB großes qcow2-Image, das unter /mnt/extra2/vms gespeichert ist. Die Festplattenbefehle sind für andere Linux-Gäste dieselben. virt-sysprep funktioniert nicht mit Windows-Gästen.

Der Host benötigt bereits KVM und libvirt. KVM unter Ubuntu 24.04 installieren ist diese Einrichtung, und sie zieht virtinst mit, welches virt-clone bereitstellt. virt-sysprep, virt-customize, virt-cat und guestfish stammen aus einem separaten Paket:
sudo apt install -y libguestfs-tools
Was kloniert eine VM tatsächlich
libvirt verteilt die Arbeit auf drei Werkzeuge. virt-clone kopiert die Disk-Images und definiert eine neue Domain mit derselben virtuellen Hardware. Es ändert den Domain-Namen, die UUID und die MAC-Adresse auf der Host-Seite. Passwörter, der Hostname, statische Adressen und Dateien innerhalb des Gastes bleiben unverändert; dies ist das Verhalten, das virt-clone(1) dokumentiert.
virt-sysprep öffnet die Festplatte mit libguestfs und bearbeitet das Gastdateisystem. Das Handbuch für virt-sysprep(1) stellt klar, dass die Bearbeitung vor Ort stattfindet: Es gibt keine Ausgabe-Datei-Flagge, das heißt, das Image, das Sie mit -a übergeben, ist das Image, das geändert wird. Kopieren oder klonen Sie zuerst, wenn Sie die Quelle noch benötigen.
qemu-img info meldet, ob diese Datei eigenständig ist oder die Spitze einer Backing-Chain. qemu-img convert schreibt eine neue Datei mit aufgelöster Chain.
Glätten Sie die Datei (Flatten), bevor Sie Sysprep ausführen, wenn eine Backing-Zeile vorhanden ist. Führen Sie Sysprep auf der Kopie aus und leiten Sie dann jeden laufenden Gast von dieser Datei ab.
Die Festplatte in Virt-Manager klonen
Schalten Sie den Gast herunter. virt-clone lehnt eine laufende Domain ab, und eine Kopie einer live qcow2 ist kein konsistentes Dateisystem.
Klicken Sie in Virt-Manager mit der rechten Maustaste auf den Gast und wählen Sie Klonen. Setzen Sie den neuen Namen. Geben Sie im Speicherschritt jeder Festplatte einen neuen Pfad. Wenn der ursprüngliche Pfad beibehalten wird, definiert dies eine zweite Domain, die dieselbe Datei öffnet, sodass beide Gäste dieselben Blöcke beschreiben.
Die neue Datei landet neben der Quelle. Ein Standard-Pool verwendet /var/lib/libvirt/images/. Eine Festplatte, die bereits unter /mnt/extra2/vms liegt, wird in dieses Verzeichnis geklont. Notieren Sie sich den Pfad, den virt-clone ausgibt, oder lesen Sie ihn aus:
virsh domblklist ubuntu26.04-base14gb-clone
Das äquivalente Kommandozeilen-Äquivalent, mit explizit gewähltem Namen und Festplattenpfad:
virt-clone --original ubuntu26.04-base14gb \
--name ubuntu26.04-base14gb-clone \
--file /mnt/extra2/vms/ubuntu26.04-base14gb-clone.qcow2
--auto-clone erfindet den Namen und den Festplattenpfad. Das ist für eine Wegwerf-Kopie bequem. Ein Template-Pfad ist einfacher zu verwalten, wenn Sie --name und --file selbst übergeben. Lassen Sie --mac weg oder übergeben Sie --mac RANDOM, dann generiert virt-clone eine Adresse im QEMU-Bereich 52:54:00:xx:xx:xx.
--reflink bittet um eine leichte Kopie. Das Ubuntu-26.04-virt-clone-Handbuch beschränkt diese Flagge auf rohe Images (raw images) auf demselben btrfs-Dateisystem, daher überspringt es diese qcow2-Dateien. Ein qcow2-Overlay ist eine separate Einrichtung, die unten mit qemu-img create -b behandelt wird.
Hat Ihr Klon eine Backing-Datei?
Führen Sie dies auf der neuen Festplatte aus, bevor Sie sie als eigenständig betrachten:
qemu-img info --backing-chain /mnt/extra2/vms/ubuntu26.04-base14gb-clone.qcow2
Ein eigenständiges Image listet file format, virtual size und disk size auf. Ein Overlay listet zusätzlich eine backing file:-Zeile auf, die auf das Image verweist, durch das es liest. virtual size ist die Disk-Größe des Gastes, hier etwa 14 GB. disk size ist der Speicherplatz, den die Datei aktuell belegt; dieser ist für ein frisches Overlay klein und wächst, wenn der Gast schreibt.
virt-clone ist nicht die übliche Quelle für diese Zeile. Ein Overlay stammt von qemu-img create -b, von einer nur-Festplatten-Snapshot oder von einem Tool, das absichtlich eine qcow2-Delta-Datei erstellt hat. Die Info-Prüfung ist es, die diese Fälle von einer vollen Kopie unterscheidet.
Bewahren Sie das Overlay nur auf, wenn die Base an ihrem Ort bleibt und nicht wieder beschrieben wird. Jeder Schreibzugriff aus dem Klon landet in der kleinen Datei; Lesezugriffe, die im Overlay verfehlen, kommen von der Base. Verschieben oder Bearbeiten der Base bricht jeden Gast, der sie benennt.
Um eine eigenständige Datei zu erstellen, konvertieren Sie das Overlay. -p gibt Fortschritte aus. Das Ziel ist eine neue Datei; Overlay und Base bleiben unverändert:
qemu-img convert -p -O qcow2 \
/mnt/extra2/vms/ubuntu26.04-base14gb-clone.qcow2 \
/mnt/extra2/vms/ubuntu26.04-base14gb-flat.qcow2
Führen Sie qemu-img info auf der flachen Datei aus und bestätigen Sie, dass keine backing file:-Zeile vorhanden ist. Ein Template ist diese eigenständige Datei. Overlays sind die Methode, um später Gäste daraus zu stanzen, nicht das Template selbst.
Ein btrfs-reflink ist ein dritter Fall. cp --reflink=auto kann physische Extents zwischen zwei Dateien teilen, und qemu-img info zeigt immer noch keine Backing-Datei, da jeder Pfad ein komplettes Image ist. Diese Kopie ist auf der qcow2-Ebene unabhängig, auch wenn das Dateisystem noch nicht jeden Block dupliziert hat.
virt-sysprep: Identität zurücksetzen
Kopieren Sie das eigenständige Image, dann führen Sie Sysprep auf der Kopie aus. --reflink=auto teilt Extents, wenn das Dateisystem es unterstützt, und erstellt andernfalls eine normale Kopie, auch auf ext4. -n ist ein Trockenlauf (Dry Run), der seine Schreibvorgänge verwirft:
cp --reflink=auto \
/mnt/extra2/vms/ubuntu26.04-base14gb-flat.qcow2 \
/mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2
virt-sysprep -n -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2
virt-sysprep -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
--hostname ubuntu-template
In einem Standard-Ubuntu-Pool ist das Image oft im Modus 0600 und gehört zu libvirt-qemu. Das Handbuch empfiehlt, Ihrem Benutzer Schreibzugriff zu geben, anstatt als Root auszuführen. Wenn der qemu-Besitzer die Datei besitzt, ist sudo virt-sysprep -a ... der Aufruf, der sie öffnen kann. Der Gast muss heruntergefahren sein, und nichts anderes sollte das Image geöffnet haben.
--hostname ist eine Customize-Option, und Customize ist Teil des Standard-Operationssatzes, daher wird es im selben Aufruf ausgeführt. Es gibt keine separate Standard-Operation, die /etc/hostname allein leert. --operations ersetzt diesen Standardsatz, wenn Sie ihn übergeben; --operations defaults,-ssh-userdir behält die Standardeinstellungen bei und schaltet eine Operation ab.
Dies sind die Operationen, die darüber entscheiden, ob der Klon mit dem Original kollidiert. Die Liste ist die aus dem aktuellen virt-sysprep-Handbuch, das sich lohnt zu lesen, da eine kurze --operations-Liste den Rest stillschweigend fallen lässt:
| Operation | Standard | Auswirkung auf den Gast |
|---|---|---|
| machine-id | ja | Leert die machine ID. systemd generiert beim nächsten Start eine neue, wenn /etc/machine-id leer ist. |
| ssh-hostkeys | ja | Entfernt /etc/ssh/ssh_host_*. Beim nächsten Start werden neue Host-Keys erstellt. |
| ssh-userdir | ja | Entfernt .ssh unter /root und /home/*, einschließlich authorized_keys und privater Keys, die im Gast gespeichert sind. |
| dhcp-client-state | ja | Entfernt DHCP-Client-Leases. |
| udev-persistent-net | ja | Entfernt udev-Regeln, die eine alte MAC auf einen festen Namen wie eth0 abbilden. |
| net-hwaddr | ja | Entfernt HWADDR aus Fedora- und RHEL-ifcfg-*-Dateien. Es bearbeitet keine Ubuntu-Netplan-Dateien. |
| lvm-uuids, lvm-system-devices | ja | Weist neue LVM-UUIDs zu und entfernt /etc/lvm/devices/system.devices, was den Gast andernfalls an die WWIDs der Quellfestplatte pinnen würde. |
| logfiles, bash-history, tmp-files | ja | Entfernt Logs, Shell-Historie und temporäre Dateien. |
ssh-userdir ist der Punkt, der Menschen überrascht, die eine Maschine klonen, auf der sie sich noch anmelden. Das Template sollte die privaten Keys der Quelle nicht mitführen, daher lässt man die Operation aktiviert und injiziert später pro Instanz einen Key. Für eine Einmal-Kopie, die die vorhandenen authorized_keys behalten muss, übergeben Sie --operations defaults,-ssh-userdir.
user-account ist nicht im Standardsatz enthalten, und Passwörter bleiben bestehen, es sei denn, Sie übergeben --password oder --root-password. fs-uuids ist auch standardmäßig deaktiviert. Das Handbuch besagt, dass es nicht alle Referenzen aktualisiert, einschließlich /etc/fstab, und dass das Aktivieren davon wahrscheinlich dazu führt, dass der Gast nicht mehr bootet.
Ubuntu-Server-Images haben normalerweise cloud-init, und virt-sysprep hat keine cloud-init-Operation. Eine alte Instanz-ID unter /var/lib/cloud lässt den Klon die First-Boot-Einrichtung überspringen. Bereinigen Sie dies auf dem Template und weisen Sie cloud-init an, den Hostnamen, den --hostname geschrieben hat, beizubehalten:
virt-customize -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
--run-command 'if command -v cloud-init >/dev/null 2>&1; then cloud-init clean --logs --seed; fi' \
--write '/etc/cloud/cloud.cfg.d/99-preserve-hostname.cfg:preserve_hostname: true'
Dasselbe Handbuch warnt vor dem Klonen eines Gastes, der interne Vollschreckverschlüsselung für die Verteilung verwendet: Jede Kopie teilt sich den Volume-Key. Es weist auch darauf hin, dass gelöschte Dateien nur unlinked werden, nicht geschrubbt (scrubbed). --scrub überschreibt eine benannte Datei, und virt-sparsify kann freigegebenen Speicherplatz aus dem Image entfernen.
Wie der Klon seine IP-Adresse erhält
virt-sysprep hat keine Operation, die eine Adresse umschreibt. Ein Gast, der DHCP verwendet, fragt erneut an. Der Klon hat eine neue MAC, eine leere machine-id und keine alte Lease-Datei, daher behandelt ihn der DHCP-Server auf dem default-Netzwerk von libvirt als neuen Client.
Ein statischer addresses:-Block in Netplan wird mit der Festplatte kopiert, und beide Gäste beanspruchen ihn dann. Lesen Sie die Dateien vor dem ersten Start. virt-ls und virt-cat sind die One-Shot-Tools; guestfish --ro -a <disk> -i ist dieselbe Inspektion als Shell, woraufhin ls /etc/netplan und cat gegen den Gast ausgeführt werden:
virt-ls -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 /etc/netplan
virt-cat -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
/etc/netplan/00-installer-config.yaml
Installer-Images verwenden oft 00-installer-config.yaml oder 01-netcfg.yaml. Cloud-Images verwenden 50-cloud-init.yaml, das cloud-init neu erstellt, es sei denn, die Netzwerkeinstellung ist deaktiviert. Netplan mergt jede YAML-Datei im Verzeichnis, daher gilt eine übrig gebliebene statische Datei immer noch, nachdem Sie eine DHCP-Datei hinzugefügt haben.
Um das Template zu einem DHCP-Client zu machen, entfernen Sie diese Dateien und laden Sie eine Ersatzdatei hoch. Verwenden Sie den Schnittstellennamen, den virt-cat angezeigt hat. Bei einem unter KVM installierten Gast ist dieser Name oft ens3 oder enp1s0, und virt-clone behält denselben virtuellen PCI-Slot bei, daher bleibt der Name gültig:
cat > /tmp/99-dhcp.yaml <<'EOF'
network:
version: 2
ethernets:
ens3:
dhcp4: true
EOF
virt-customize -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
--delete '/etc/netplan/*.yaml' \
--upload /tmp/99-dhcp.yaml:/etc/netplan/99-dhcp.yaml \
--write '/etc/cloud/cloud.cfg.d/99-disable-network.cfg:network: {config: disabled}'
Für eine statische Adresse, ein Gateway und DNS, verwenden Sie denselben Upload mit dem YAML aus So ändern Sie eine statische IP-Adresse in Ubuntu Server. Jede Instanz benötigt dann ihre eigene Datei, die auf der Instanz-Festplatte angewendet wird, nicht auf dem Template.
Der Name im YAML muss innerhalb des Gastes existieren. Eine von physischer Hardware verschobene Festplatte benennt die NIC oft enp2s0, während dasselbe System unter virtio einen anderen Namen darstellt, und Netplan konfiguriert dann eine Schnittstelle, die nicht vorhanden ist. Für ein Template, das auf mehreren Maschinentypen starten soll, pinnen Sie den Kernel auf eth0 und verwenden Sie diesen Schlüssel in Netplan. Ubuntu sources /etc/default/grub.d/*.cfg, während es grub.cfg baut:
virt-customize -a /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
--write '/etc/default/grub.d/99-eth0.cfg:GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX net.ifnames=0 biosdevname=0"' \
--run-command 'update-grub'
update-grub läuft innerhalb der libguestfs-Appliance aus. Wenn grub-probe dort die Boot-Festplatte nicht sehen kann, schlägt das Kommando fehl und die Cmdline bleibt unverändert. In diesem Fall setzen Sie den Schnittstellennamen in Netplan auf den Namen, den der Gast bereits verwendet, und überspringen Sie den eth0-Switch.
Pro-Instanz-Individualisierung mit virt-customize
Starten Sie Instanzen von Kopien der sauberen Datei. Weisen Sie eine Domain nicht auf das Template selbst hin.
Eine volle Kopie hat keine Laufzeitabhängigkeit vom Template:
cp --reflink=auto \
/mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
/mnt/extra2/vms/ubuntu26.04-vm1.qcow2
Ein Overlay speichert nur die Blöcke, die vm1 schreibt. -F qcow2 dokumentiert das Base-Format, sodass QEMU es nicht untersuchen muss:
qemu-img create -f qcow2 \
-b /mnt/extra2/vms/ubuntu26.04-base14gb-clean.qcow2 \
-F qcow2 \
/mnt/extra2/vms/ubuntu26.04-vm1.qcow2
Der Base-Pfad ist innerhalb des Overlays gespeichert. Er muss diesen Pfad beibehalten und er muss schreibgeschützt bleiben, für jeden Gast, der auf diese Weise erstellt wird.
Die Sicherheitshinweise für virt-sysprep beschreiben einen zweiten Durchlauf auf jeder neuen Festplatte. Sysprep schreibt ein zufälliges Seed in das Template; Gäste, die von dieser Datei geklont wurden, würden andernfalls mit demselben Seed starten, was SSH-Host-Keys beim ersten Start und TCP-Sequenznummern vorhersehbar macht. --enable customize schreibt das Seed neu. --hostname und --ssh-inject sind Customize-Optionen, daher gehören sie zum selben Befehl. Ersetzen Sie ubuntu durch das Konto, das tatsächlich im Image existiert:
virt-sysprep --enable customize \
-a /mnt/extra2/vms/ubuntu26.04-vm1.qcow2 \
--hostname vm1 \
--ssh-inject "ubuntu:file:${HOME}/.ssh/id_ed25519.pub"
Übergben Sie die Instanz-Datei an libvirt, nicht das Template. Wenn Sie sie außerhalb eines Speicher-Pools als Ihr Benutzer erstellt haben, benötigt libvirt-qemu Lesezugriff, oder die Domain scheitert beim Start mit einem Berechtigungsfehler auf der qcow2.
Importieren in Virt-Manager
Für jede Instanz-Festplatte öffnen Sie Virt-Manager, wählen Sie Neue virtuelle Maschine und wählen Sie Vorhandenes Disk-Image importieren. Zeigen Sie auf ubuntu26.04-vm1.qcow2. Der OS-Eintrag sollte Ubuntu 26.04 sein, wenn die osinfo-Datenbank des Hosts ihn hat.
Die passende kurze ID ist ubuntu26.04. Prüfen Sie die Host-Datenbank, bevor Sie sich darauf verlassen:
osinfo-query os | grep ubuntu26
Wenn dies nichts ausgibt, ist die installierte Datenbank älter als der 26.04-Eintrag. --os-variant ubuntu24.04 wählt immer noch einen virtio-freundlichen Maschinentyp für einen Gast, der bereits installiert ist. --import teilt virt-install mit, dass die Festplatte bereits ein Betriebssystem enthält.
sudo virt-install --name ubuntu26.04-vm1 \
--memory 4096 --vcpus 2 \
--disk path=/mnt/extra2/vms/ubuntu26.04-vm1.qcow2,format=qcow2 \
--import \
--os-variant ubuntu26.04 \
--network network=default \
--noautoconsole
--network network=default hängt das NAT-Netzwerk an, dessen dnsmasq-Instanz die DHCP-Lease herausgibt. Nach dem Boot:
virsh domifaddr ubuntu26.04-vm1 --source lease
virsh dumpxml ubuntu26.04-vm1 | grep "<mac"
--source lease liest diese dnsmasq-Tabelle. Sie bleibt leer für eine statische Adresse, für eine Bridge oder für eine NIC, die nicht auf einem libvirt-Virtual-Netzwerk ist. Diese Gäste benötigen qemu-guest-agent im Image und virsh domifaddr ubuntu26.04-vm1 --source agent, oder eine ARP-Suche mit --source arp. virsh net-dhcp-leases default listet jede Lease auf dem NAT-Netzwerk, wenn Sie die Pool-Ansicht statt einer einzelnen Domain wünschen.
Wahl einer Klon-Strategie: Vollkopie, Overlay oder Reflink
| Strategie | Speicher pro VM | Zeit zur Erstellung | Einschränkung | Verwendung wenn |
|---|---|---|---|---|
Vollkopie, oder cp --reflink=auto |
ca. 14 GB logisch; Reflink teilt Blöcke, bis sie sich ändern | Minuten, oder nahezu sofort mit Reflink | Reflink benötigt ein Dateisystem, das es unterstützt, wie btrfs | Ein Gast, der das Template überleben soll |
| qcow2-Overlay | Megabytes am Anfang | Sekunden | Base-Pfad muss bleiben, und die Base muss schreibgeschützt bleiben | Viele ähnliche Gäste aus einem versiegelten Image |
virt-clone --reflink |
rohes Image, geteilte Extents | nahezu sofort | rohe Disks auf demselben btrfs-Dateisystem; qcow2 wird übersprungen | rohe Images, die bereits auf btrfs gespeichert sind |
Ein Gast, den Sie monatelang behalten möchten, ist eine Vollkopie oder ein Reflink. Ein kurzlebiger Gast kann ein Overlay sein, solange die Base-Datei dort ist, wenn er läuft. Proxmox ist der andere self-hosted-Pfad, wenn Sie ein datenzentrumsartiges Template- und Klonmodell auf seiner eigenen Web-UI wünschen. Multipass startet Ubuntu-Cloud-Images für einen einzelnen Benutzer und wendet cloud-init selbst an, was ein anderer Workflow als das Versiegeln einer bereits installierten Festplatte ist.
Fehlerbehebung: Wenn der Klon nicht bootet
Keine Adresse. Führen Sie virt-cat auf der Netplan-Datei aus und vergleichen Sie den Schnittstellenschlüssel mit ip link auf der Konsole. Ein match: macaddress-Eintrag, der immer noch auf die Quell-MAC gesetzt ist, lässt die neue NIC fallen. Ein Schlüssel, der eine Schnittstelle benennt, die der Gast nicht hat, tut dasselbe. Korrigieren Sie die Datei auf der Festplatte oder wenden Sie die eth0-Cmdline oben an und bauen Sie die Instanz aus dem Template neu auf.
Adresse hoch, identisch mit dem Original. Der statische addresses:-Block ist immer noch in einer der Netplan-Dateien. virt-sysprep hat ihn nicht entfernt. Laden Sie eine Ersatzdatei hoch und löschen Sie die anderen YAML-Dateien in /etc/netplan.
SSH sagt, der Host-Key hat sich geändert, oder akzeptiert den Klon als das Original. Host-Keys werden geteilt, wenn ssh-hostkeys auf der Datei, die die Domain öffnet, nicht ausgeführt wurde. Bestätigen Sie mit virsh domblklist, dass die Domain die syspreppte Festplatte verwendet, und prüfen Sie dann qemu-img info, damit Sie kein Overlay sysprept haben, während der Gast von einem anderen Pfad bootet. Wenn der Klon die ursprüngliche IP absichtlich behalten hat, werden Clients, die den alten Key in known_hosts gespeichert haben, warnen, bis diese Zeile entfernt ist. Diese Warnung ist die Regeneration, die das Handbuch beschreibt.
Key-Login schlägt auf einem Klon einer Maschine fehl, auf die Sie vorher Zugriff hatten. Standard-Sysprep hat .ssh aus den Home-Verzeichnissen entfernt. Injizieren Sie einen Key mit --ssh-inject oder führen Sie erneut aus mit --operations defaults,-ssh-userdir, wenn diese Kopie sie hätte behalten sollen.
LVM-Volumes nach dem Boot fehlen. Der Gast hat /etc/lvm/devices/system.devices von der Quelle, und die WWID der virtuellen Festplatte hat sich geändert. Die Standard-lvm-system-devices-Operation entfernt diese Datei. Eine manuell gewählte --operations-Liste muss sie enthalten, sowie lvm-uuids, wenn der Gast LVM verwendet.
Ein Klon oder ein Template
Eine einzelne zusätzliche Maschine ist virt-clone, eine Backing-Datei-Prüfung und virt-sysprep auf der neuen Festplatte. Eine Flotte ist eine versiegelte eigenständige Datei, dann eine Kopie oder ein Overlay pro Gast, mit --enable customize auf der eigenen Festplatte dieses Gastes, bevor er bootet.
Overlays machen die versiegelte Datei zu einem Teil des Laufzeitpfads jedes Gastes, der sie benennt. Vollkopien und Reflinks tun das nicht. Wählen Sie diese Abhängigkeit mit der Lebensdauer des Gastes, und lassen Sie fs-uuids deaktiviert, damit der Bootloader und /etc/fstab immer noch zum Dateisystem passen.
Nützliche Links
- Entwicklertools: Der umfassende Leitfaden für moderne Entwicklungs-Workflows
- So installieren Sie Ubuntu 24.04 & nützliche Tools
- GNOME Boxes: Funktionen, Vorteile, Herausforderungen und Alternativen
Referenzen
- virt-clone(1) unter Ubuntu 26.04, einschließlich
--auto-clone,--fileund--reflink - virt-sysprep(1) Operationen, In-Place-Bearbeitungen und der Hinweis zum Zufalls-Seed
- virt-customize(1) für
--hostname,--ssh-inject,--uploadund--run-command - qemu-img
info,convertundcreate -b/-F - virt-install(1)
--importund--os-variant - osinfo-db Ubuntu 26.04 Eintrag, kurze ID
ubuntu26.04 - machine-id(5) darüber, wie ein leeres
/etc/machine-idbeim Start ersetzt wird