Irgendwann ist es soweit. Die alte Hardware ist kaputt gegangen und ist auch nicht mehr verfügbar. Oder man möchte seine gute alte normalo Festplatte gegen eine schicke neue SSD austauschen, ohne das System nochmal neu konfigurieren zu müssen.
Daher muss ein Desaster Recovery aus dem Backup her. Auch hier gilt wieder: Kein Backup, keine Gnade.
Waschzettel:
Weitere Features:
Ich nutze einen Lenovo X220 als Home-Theatre-PC. Betriebssystem ist Debian Sid. Dieser soll nun eine schnelle SSD bekommen.
Generell ist jedes Live-System der gleichen Prozessorarchitektur geeignet den Restore vorzunehmen. Idealerweise sollte man im Live-System Pakete nachinstallieren können, falls was fehlt. Ich habe meinen Praxistest mit Ubuntu Studio gemacht.
Natürlich baut man zuallererst die neue Festplatte ein.
Dann erstellt man aus dem ISO-Image einen bootfähigen USB-Stick. Dazu steckt man einen neuen Stick in eine USB-Buchse; so kann man unter /var/log/messages den Gerätenamen ablesen, die der USB-Stick auf dem lokalen Gerät hat. Hat das Betriebssystem den Stick schon gemountet, so ist der erst zu umounten. Also z.B.
umount /dev/sdd1
dd if=ubuntustudio-20.04.1-dvd-amd64.iso of=/dev/sdd BS=4M && sync
Mit dem Stick kann nun der zu restoredende PC ins Live-System gebootet werden. Der PC sollte am Netz sein.
Um einen Zugriff von außen zu ermöglichen, ist der sshd nach zu installieren:
apt install openssh-server
Nun kann man sich ein neues Passwort setzen:
sudo passwd ubuntu-studio
Die notwendigen ssh-keys des backuppc Users sind nun in /root/.ssh/authorized_keys abzulegen.
Nun kann die neue Festplatte mit fdisk analog zur alten partitioniert werden. Dabei können die Partitionen auch größer sein. Das Ergebnis war bei mir z.B.
root@ubuntu-studio:~# fdisk -l /dev/sda
Festplatte /dev/sda: 340 GiB, 365072220160 Bytes, 713031680 Sektoren
Festplattenmodell: QEMU HARDDISK
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x1da5c32d
Gerät Boot Anfang Ende Sektoren Größe Kn Typ
/dev/sda1 2048 104859647 104857600 50G 83 Linux
/dev/sda2 104859648 121636863 16777216 8G 82 Linux Swap / Solaris
Jetzt werden Swap-Bereich und Filesystem angelegt. Die UUID brauchen wir später für die Konfiguration:
mkfs.ext4 /dev/sda1
root@ubuntu-studio:~# blkid /dev/sda1
/dev/sda1: UUID="8949eac2-7675-4795-b0cd-d1b5d63f7eef" TYPE="ext4" PARTUUID="79b53b8c-01"
mkswap /dev/sda2
Auslagerungsbereich Version 1 wird angelegt, Größe = 9,8 GiB (10511405056 Bytes)
keine Bezeichnung, UUID=922eaf0e-06cf-4480-9dc6-53b78b66037e
Dann kann die neue Partition gemounted werden:
mkdir /restore
mount /dev/sda1 /restore
mkdir /restore/proc /restore/sys /restore/run
Nach dem Mounten erfolgt ein Restore vom backuppc Server auf diese Partition.
Nach beendetem Filetransfer ist die Datei /etc/fstab anzupassen. Es sind die UUIDs anzugeben, die man mittels blkid
ermittelt hat.
root@ubuntu-studio:~# grep UUID /etc/fstab
# device; this may be used with UUID= as a more robust way to name devices
UUID=8949eac2-7675-4795-b0cd-d1b5d63f7eef / ext4 errors=remount-ro 0 1
UUID=922eaf0e-06cf-4480-9dc6-53b78b66037e none swap sw 0 0
Dann ist der Bootloader in einer chroot-Umgebung neu zu schreiben:
mount -o bind /dev /restore/dev
mount -o bind /sys /restore/sys
mount -t proc /proc /restore/proc
chroot /restore
grub-mkconfig > /boot/grub/grub.cfg
grub-install /dev/sda
Nach dem Reboot ins gerestorte System ist noch die Resume-UUID neu schreiben
echo "RESUME=UUID=922eaf0e-06cf-4480-9dc6-53b78b66037e" > /etc/initramfs-tools/conf.d/resume
update-initramfs -u
Schon hat man ein schönes neues System und die Sicherheit, dass das Backup funktioniert. Ein Restore von LVM- und Crypted-LVM-Systemen ist ebenfalls möglich und auch getestet. Das wäre Themen für einen weiteren Tech-Post.