class: center, middle  # Rechner klonen oder umziehen ## Blech ⇒ VM ### Hauke Goos-Habermann #### https://weisheit.goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - *"Nicht der Weisheit letzter Schluß"* mit **beruflichen** oder **privaten Projekten** auf
tube.tchncs.de/c/ndwls
und
youtube.com/@nichtderweisheit
- Hat einen Rechner in KVM geklont --- ### Wofür das ganze?  **Vor** dem **Aktualisieren** eines Debian-12-Systems mache ich üblicherweise eine **Sicherung** der Platte als **Abbilddatei** oder als direktem (bootfähigem) Klon auf einer andere Platte. Allerdings ist es auch möglich, die **raw-Abbilddatei** einer Debian-Installation unter **KVM zu booten**, wenn die entscheidenden Komponenten virtuell nachgebildet werden: * MAC-Adresse der Netzwerkkarte * SSD/HDD-Anschlußtyp Solange ich KVM nicht verwende, habe ich eine 1:1-Kopie der Originalplatte, die ich im Zweifelsfall wieder zurückspielen kann. Nachdem ich die Aktualisierung für ***"Gut genug"™*** befunden habe, kann ich mir ein neues Abbild erstellen oder mit KVM auf die virtuelle Platte zugreifen. --- ### Abbilddatei erstellen: Informationen  Das **Originalsystem** müssen wir über ein Live-Linux (oder Dual-Boot eines anderen Linux) **booten**, sodaß die zu sichernde Platte **nicht eingebunden** ist. Dann brauchen wir den Namen der zu sichernden Platte (/dev/...): ```bash parted -l ``` Steht dort ***/dev/nvme...***, so wird die SSD per **NVME**, bei ***/dev/sd...*** per **SCSI/SATA** angesprochen. Wir merken uns hier den kompletten Namen (z.B. /dev/nvme0n1 oder /dev/sda). --- ### Abbilddatei erstellen: Informationen  Dann brauchen wir auch noch die **MAC-Adresse** der verbauten Netzwerkkarte, damit das Debian in der VM die **Netzwerkeinstellungen korrekt zuordnen** kann und sich die VM im Netzwerke wie das Originalsystem verhält. ```bash ip a ``` Die MAC-Adresse steht in der Zeile nach dem Gerätenamen (z.B. ens18 oder eth0) nach ***link/ether***. Beides merken wir uns :-) --- ### Sichern auf Festplatte  Wollt Ihr die Abbilddatei auf einer (USB-)**Festplatte** speichern, müßt Ihr diese **einhängen**. Oftmals ist diese unter ***/media/[Benutzer]/...*** eingebunden, ansonsten können wir auch mit ```bash mount ``` nachschauen. Dann ```bash # Auf die Platte wechseln cd /media/... # Sicherungsverzeichnis anlegen und wechseln mkdir Sicherung && cd Sicherung # Abbilddatei erstellen sudo dd if=/dev/[Plattenname] bs=16M \ of=[Rechnername]-[Plattenname].raw \ status=progress ``` --- ### Sichern über Netzwerk  Auf dem Rechner (Server), der das Image speichern soll, machen wir: ```bash # Sicherungsverzeichnis anlegen und wechseln mkdir Sicherung && cd Sicherung # Aktuelle IP abfragen ip a # Optional: Geschwindigkeit auf 1GBit setzen ethtool -s [Netzwerkgerätename] speed 1000 # Auf Port 12345 Daten entgegennehmen # und in Datei schreiben nc -l -p 12345 > [Rechnername]-[Plattenname].raw ``` PS Zum Speichern solltet Ihr **kein FAT32**-Dateisystem verwenden, da dieses nur Dateigrößen bis zu **4GB** zuläßt. --- ### Sichern über Netzwerk  Vom Originalrechner **sendet** Ihr den kompletten Festplatten-/SSD-Inhalt **unverschlüsselt** über das Netzwerk mit: ```bash sudo dd if=/dev/[Plattenname] \ status=progress | nc [Server-IP] 12345 ``` Nun seht Ihr den **Fortschritt** des Kopiervorgangs. Wenn dieser längere Zeit **stehenbleibt** und die übertragene **Datenmenge** der **Größe** des Laufwerkes **entspricht**, brecht das Kopieren mit **Strg+C** ab. --- ### KVM einrichten: Zwei NVME-SSDs Beispiel für zwei NVME-SSDs: ```bash kvm -m 4G -smp 2 \ -drive file=test-nvme0n1.raw,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=nvme-0 \ -drive file=test-nvme1n1.raw,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=nvme-1 \ -vga virtio -device AC97 \ -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \ -drive if=pflash,format=raw,file=OVMF_VARS_4M.fd \ -netdev tap,id=net0,ifname=tap0,script=no,downscript=no \ -device virtio-net-pci,netdev=net0,mac=aa:bb:cc:dd:ee:ff \ -display sdl,gl=off,grab-mod=rctrl \ -boot c ``` Schaut auch das Video
"Grundlagen: Linux Virtualisierung mit KVM, NVME & EFI"
--- ### KVM einrichten: Zwei SATA-SSDs ```bash kvm -m 4G -smp 2 \ -hda test-sda.raw \ -hdb test-sdb.raw \ -vga virtio -device AC97 \ -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \ -drive if=pflash,format=raw,file=OVMF_VARS_4M.fd \ -netdev tap,id=net0,ifname=tap0,script=no,downscript=no \ -device virtio-net-pci,netdev=net0,mac=aa:bb:cc:dd:ee:ff \ -display sdl,gl=off,grab-mod=rctrl \ -boot c ``` --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de