admin_grundlagen:systemsicherung
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:systemsicherung [2019/10/11 10:36] – ingo_wichmann | admin_grundlagen:systemsicherung [2025/11/28 11:53] (aktuell) – [Sicherung der Dateisystem-Einstellungen] ingo_wichmann | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| Abschätzen, | Abschätzen, | ||
| - | df -hlx tmpfs -x devtmpfs | + | df -Thlx tmpfs -x devtmpfs |
| -> Summe der Daten auf persistenten, | -> Summe der Daten auf persistenten, | ||
| ===== Vorbereitung Zielsystem ===== | ===== Vorbereitung Zielsystem ===== | ||
| + | ==== Platz schaffen ==== | ||
| evtl. Platz schaffen wie in [[Plattenplatz]], | evtl. Platz schaffen wie in [[Plattenplatz]], | ||
| mkdir -p / | mkdir -p / | ||
| - | === Ubuntu | + | ==== SSH Zugriff als root ==== |
| - | Zielverzeichnis '' | + | Root Passwort setzen, sofern nicht bekannt/verfügbar: |
| - | | + | |
| - | === Debian (ab 8) === | + | <file txt / |
| - | Entweder | + | |
| - | * [[sudo]] einrichten und wie unter Ubuntu beschrieben vorgehen. | + | |
| - | * einen [[ssh]]-Schlüssel beim Benutzer root hinterlegen | + | |
| - | oder | + | |
| - | * root das Anmelden mit Passwort erlauben (( | + | |
| - | <file txt / | + | |
| PermitRootLogin yes | PermitRootLogin yes | ||
| </ | </ | ||
| - | )) | ||
| - | ===== Sicherung ===== | ||
| - | Diese Schritte werden auf dem zu sichernden System ausgeführt. | ||
| - | ==== Sicherung der Partitionierung ==== | + | systemctl restart ssh.service |
| - | Mehr zur Vorgehensweise siehe [[partitionierung]]. Wenn die Wiederherstellung nicht automatisiert erfolgen muss, reicht auch die Ausgabe von '' | + | |
| - | parted /dev/sda print > sicherung.parted | + | |
| - | Ubuntu: | + | ++++ Alternativ: sudo und ssh-Schlüssel | |
| - | scp sicherung.parted nutzer@server:/ | + | Zielverzeichnis ''/ |
| + | chown nutzerXX | ||
| - | andere Distributionen (bei denen root ein Passwort hat): | + | * [[sudo]] einrichten, falls noch nicht passiert |
| - | | + | |
| - | (( | + | ++++ |
| - | alternativ für MSDOS-Partitionstabellen: | + | ===== Sicherung ===== |
| + | Diese Schritte werden auf dem zu sichernden System ausgeführt. | ||
| + | ==== Sicherung der UEFI-Einstellungen ==== | ||
| + | Bei UEFI-Systemen ist es manchmal hilfreich die EFI Variablen zu sichern: | ||
| + | efibootmgr -v > sicherung.efivars | ||
| + | |||
| + | ==== Sicherung der Partitionierung ==== | ||
| + | Partitionstabelle im Textformat sichern: | ||
| sfdisk -d /dev/sda > sicherung.sfdisk | sfdisk -d /dev/sda > sicherung.sfdisk | ||
| - | scp sicherung.sfdisk root@server:/ | ||
| - | bei GPT-Partitionstabellen eine Warnung der Entwickler vorweg: //As of March 2014 (version 0.8.10), sgdisk should be considered | + | ((bei GPT-Partitionstabellen eine inzwischen veraltete |
| - | + | Lesbarer, aber nicht automatisch wiederherstellbar geht das auch so: | |
| - | )) | + | |
| + | oder | ||
| + | parted /dev/sda print > sicherung.parted | ||
| + | |||
| + | Mehr zur Vorgehensweise siehe [[Partitionierung]]. | ||
| ==== Sicherung LVM Informationen ==== | ==== Sicherung LVM Informationen ==== | ||
| + | vgcfgbackup -f sicherung.vg.%s | ||
| pvdisplay > sicherung.pvdisplay | pvdisplay > sicherung.pvdisplay | ||
| vgdisplay > sicherung.vgdisplay | vgdisplay > sicherung.vgdisplay | ||
| lvdisplay > sicherung.lvdisplay | lvdisplay > sicherung.lvdisplay | ||
| - | | ||
| - | alternativ mit | ||
| - | vgcfgbackup -f sicherung.vg | ||
| - | |||
| - | Ubuntu: | ||
| - | scp sicherung.pvdisplay sicherung.vgdisplay sicherung.lvdisplay nutzer@server:/ | ||
| - | |||
| - | andere Distributionen (bei denen root ein Passwort hat): | ||
| - | scp sicherung.pvdisplay sicherung.vgdisplay sicherung.lvdisplay root@server:/ | ||
| - | |||
| ==== Sicherung anderer Storage Informationen ==== | ==== Sicherung anderer Storage Informationen ==== | ||
| Zeile 71: | Zeile 63: | ||
| === Von welchen Dateisystemen müssen Einstellungen gesichert werden? === | === Von welchen Dateisystemen müssen Einstellungen gesichert werden? === | ||
| lsblk -f | lsblk -f | ||
| - | -> alle persistenten, | + | oder |
| + | df -Thlx tmpfs -x devtmpfs -x efivarfs | ||
| + | -> alle persistenten, | ||
| - | == ext3 / ext4 == | + | == ext2 / ext3 / ext4 == |
| tune2fs -l /dev/sdaX > sicherung.ext.sdaX | tune2fs -l /dev/sdaX > sicherung.ext.sdaX | ||
| ((''/ | ((''/ | ||
| Zeile 81: | Zeile 75: | ||
| xfs_info / | xfs_info / | ||
| ((''/ | ((''/ | ||
| + | |||
| + | == btrfs == | ||
| + | btrfs läßt sich ggf. nur umständlich (Subvolumes, | ||
| + | |||
| + | Die UUID des Dateisystems erhält man mit '' | ||
| + | |||
| + | btrfs subvolume list / > | ||
| == vfat == | == vfat == | ||
| blkid /dev/sdaX > sicherung.vfat.sdaX | blkid /dev/sdaX > sicherung.vfat.sdaX | ||
| + | ((''/ | ||
| == swap == | == swap == | ||
| blkid /dev/sdaX > sicherung.swap.sdaX | blkid /dev/sdaX > sicherung.swap.sdaX | ||
| + | ((''/ | ||
| - | === Einstellungs-Dateien auf Zielsystem kopieren === | + | ==== Einstellungs-Dateien auf Zielsystem kopieren ==== |
| - | Ubuntu: | + | |
| - | scp sicherung.* nutzer@server:/ | + | |
| - | andere Distributionen (bei denen root ein Passwort hat): | + | |
| - | | + | |
| - | ((''/ | + | |
| ==== Sicherung der Dateien ==== | ==== Sicherung der Dateien ==== | ||
| === Einhängen der Dateisysteme unter /mnt/system === | === Einhängen der Dateisysteme unter /mnt/system === | ||
| - | In der Ausgabe von '' | ||
| - | |||
| mkdir /mnt/system | mkdir /mnt/system | ||
| mount --bind / /mnt/system | mount --bind / /mnt/system | ||
| + | |||
| + | In der Ausgabe von '' | ||
| + | |||
| mount --bind /boot / | mount --bind /boot / | ||
| - | ... | + | und/oder |
| + | mount --bind /boot/efi / | ||
| + | und möglicherweise weitere: | ||
| + | mount --bind /… | ||
| - | ((ab RedHat 6, openSuSE 13.1, Debian 8 und Ubuntu 16.04 könnte man auf diesen Schritt verzichten, und statt dessen bei '' | + | ((ab RedHat 6, openSuSE 13.1, Debian 8 und Ubuntu 16.04 könnte man auf diesen Schritt verzichten, und statt dessen bei '' |
| + | rsync -axzRSHAX --numeric-ids --del / /boot/ /boot/efi/ … root@server:/ | ||
| + | )) | ||
| === mit rsync über ssh Dateien kopieren === | === mit rsync über ssh Dateien kopieren === | ||
| + | Auf Quell- und Zielsystem muss rsync installiert sein. Alternativ kann man auch [[# | ||
| - | == Debian (ab 8) == | + | ++++ Ubuntu ohne SSH root-Passwort |
| - | Wie oben unter " | + | |
| - | * wie bei anderen Distributionen, | + | |
| - | oder | + | |
| - | * wie bei Ubuntu | + | |
| - | + | ||
| - | == Ubuntu == | + | |
| Unter **Ubuntu** gibt es defaultmäßig kein root Passwort. | Unter **Ubuntu** gibt es defaultmäßig kein root Passwort. | ||
| Wenn ein **Ubuntu** System das **ZIEL** ist, muss man zunächst dem User, mit dem man sich auf dem Ziel einloggen will, einen Eintrag machen, der '' | Wenn ein **Ubuntu** System das **ZIEL** ist, muss man zunächst dem User, mit dem man sich auf dem Ziel einloggen will, einen Eintrag machen, der '' | ||
| Zeile 125: | Zeile 125: | ||
| <file txt / | <file txt / | ||
| %sudo ALL=(ALL) NOPASSWD: ALL | %sudo ALL=(ALL) NOPASSWD: ALL | ||
| - | </ | ||
| - | <file txt / | ||
| - | %sudo ALL=(ALL) NOPASSWD: / | ||
| </ | </ | ||
| - | )) | ||
| Der Benutzer muss in der Gruppe //sudo// sein | Der Benutzer muss in der Gruppe //sudo// sein | ||
| Und dann lautet der Befehl zum Backup: | Und dann lautet der Befehl zum Backup: | ||
| - | rsync -aSH --xattrs --acls --numeric-ids --del --rsync-path=" | + | rsync -azSH --xattrs --acls --numeric-ids --del --rsync-path=" |
| + | ++++ | ||
| - | == SuSE / BTRFS == | + | ++++ SuSE / BTRFS | |
| Btrfs snapshot subvolumes können nicht sinnvoll mit rsync oder tar gesichert und wieder hergestellt werden, da die Deduplizierung von Btrfs dabei nicht mehr genutzt wird und die Dateien mehrfach im Backup landen würden. | Btrfs snapshot subvolumes können nicht sinnvoll mit rsync oder tar gesichert und wieder hergestellt werden, da die Deduplizierung von Btrfs dabei nicht mehr genutzt wird und die Dateien mehrfach im Backup landen würden. | ||
| + | ++++ | ||
| - | == andere Distributionen (bei denen root ein Passwort hat) == | + | |
| - | | + | (( mehr zu [[rsync]], u.a. wie man hier '' |
| - | (( mehr zu [[rsync]], u.a. wie man hier '' | + | |
| - | (( mehr zu [[ssh]] )) | + | |
| - | (( wenn man ein Art Fortschrittsbalken haben will: '' | + | |
| - | + | ||
| - | == erweiterte Attribute und ACLs mit tar und rsync == | + | |
| - | RedHat' | + | |
| === Plausibilitätsprüfung === | === Plausibilitätsprüfung === | ||
| Zeile 166: | Zeile 158: | ||
| * Größenvergleich mit '' | * Größenvergleich mit '' | ||
| - | Optional, für Freude der Unix-Kommandozeile: | + | ++++ Optionale, genauere Prüfung |
| Auf dem Zielsystem Checksummen für Backup-Dateien erzeugen: | Auf dem Zielsystem Checksummen für Backup-Dateien erzeugen: | ||
| Zeile 186: | Zeile 178: | ||
| Berechtigungen vergleichen | Berechtigungen vergleichen | ||
| diff ~/ | diff ~/ | ||
| + | ++++ | ||
| + | ++++ ACLs und erweiterte Attribute | | ||
| === Sicherung der ACL-Dateirechte === | === Sicherung der ACL-Dateirechte === | ||
| - | nur nötig, wenn '' | + | aktuelle Versionen von '' |
| cd /mnt/system | cd /mnt/system | ||
| getfacl --skip-base -P -n -R . > sicherung.acl | getfacl --skip-base -P -n -R . > sicherung.acl | ||
| Zeile 198: | Zeile 191: | ||
| getfattr -Rh -m . -d . > sicherung.attr | getfattr -Rh -m . -d . > sicherung.attr | ||
| scp sicherung.attr root@server:/ | scp sicherung.attr root@server:/ | ||
| + | ++++ | ||
| ====== Löschen des Systems ====== | ====== Löschen des Systems ====== | ||
| + | (( Und wie geht es weiter, wenn die Festplatte gelöscht ist? Wie kann ich dann noch rebooten? | ||
| + | echo 1 > / | ||
| + | echo b > / | ||
| + | Siehe [[admin_grundlagen: | ||
| + | )) | ||
| === schnell === | === schnell === | ||
| wipefs -af /dev/sda | wipefs -af /dev/sda | ||
| Oder bei SSDs: | Oder bei SSDs: | ||
| - | blkdiscard /dev/sda | + | blkdiscard |
| + | (( | ||
| + | Das System lebt jetzt mit den Daten aus dem Cache etwas weiter. Cache löschen: | ||
| + | echo 1 > / | ||
| + | )) | ||
| === sicher === | === sicher === | ||
| dd if=/ | dd if=/ | ||
| Zeile 229: | Zeile 231: | ||
| ====== Wiederherstellung des Systems ====== | ====== Wiederherstellung des Systems ====== | ||
| - | Rettungssystem ( z.B. sysrcd, knoppix | + | Rettungssystem |
| + | |||
| + | (UEFI-Bootmenü: | ||
| ===== Schritte im Rettungs-System ===== | ===== Schritte im Rettungs-System ===== | ||
| + | ==== Sicherungs-Dateien zurückkopieren ==== | ||
| + | |||
| + | scp root@server:/ | ||
| + | |||
| ==== Wiederherstellung der Partitionierung ==== | ==== Wiederherstellung der Partitionierung ==== | ||
| - | Partitionierung anhand der Informationen aus der gesicherten Datei '' | + | Partitionstabelle wiederherstellen: |
| + | sfdisk /dev/sda < sicherung.sfdisk | ||
| + | |||
| + | (( Alternativ: | ||
| + | Typ der Partitionstabelle ('' | ||
| ==== Wiederherstellung LVM ==== | ==== Wiederherstellung LVM ==== | ||
| - | Partitionierung anhand der Informationen aus der gesicherten Datei '' | + | === mit vgcfgrestore === |
| IDs der Physical Volumes herausfinden: | IDs der Physical Volumes herausfinden: | ||
| - | less ~/sicherung.vg | + | less sicherung.vg |
| Physical Volumes anlegen: | Physical Volumes anlegen: | ||
| - | pvcreate -ff --zero y --restorefile ~/ | + | pvcreate -ff --zero y --restorefile ~/ |
| ... | ... | ||
| Name der Volume Group herausfinden: | Name der Volume Group herausfinden: | ||
| - | less ~/sicherung.vg | + | less sicherung.vg |
| Volume Group und Logical Volumes wiederherstellen: | Volume Group und Logical Volumes wiederherstellen: | ||
| vgcfgrestore -f ~/ | vgcfgrestore -f ~/ | ||
| - | )) | + | vgchange -a y |
| - | In Knoppix muss dazu zuerst lvm2 gestartet werden: | + | |
| - | | + | === von Hand === |
| + | LVM anhand der Informationen aus der gesicherten Datei '' | ||
| ==== Dateisysteme anlegen==== | ==== Dateisysteme anlegen==== | ||
| Dateisysteme mit '' | Dateisysteme mit '' | ||
| ((''/ | ((''/ | ||
| + | === ext4 === | ||
| mkfs.ext4 -U xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /dev/sdaX | mkfs.ext4 -U xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /dev/sdaX | ||
| (('' | (('' | ||
| - | oder | + | === xfs === |
| mkfs.xfs -m uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /dev/sdaX | mkfs.xfs -m uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /dev/sdaX | ||
| (('' | (('' | ||
| - | oder | + | === fat === |
| mkfs.vfat -i xxxxxxxx /dev/sdaX | mkfs.vfat -i xxxxxxxx /dev/sdaX | ||
| ((Eine UUID die von '' | ((Eine UUID die von '' | ||
| - | ... | ||
| + | === btrfs === | ||
| + | |||
| + | Es müssen alle Subvolumes wieder angelegt werden. Beispiel für openSUSE: | ||
| + | |||
| + | mkfs.btrfs -U xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /dev/sdaX | ||
| + | mount /dev/sdaX /mnt | ||
| + | btrfs subvolume create /mnt/@ | ||
| + | btrfs subvolume create /mnt/@/var | ||
| + | … | ||
| + | umount /mnt | ||
| ==== Swap anlegen ==== | ==== Swap anlegen ==== | ||
| ((''/ | ((''/ | ||
| Zeile 271: | Zeile 295: | ||
| ==== Mounten der Zielpartitionen ==== | ==== Mounten der Zielpartitionen ==== | ||
| - | In ''/ | + | In ''/ |
| ((''/ | ((''/ | ||
| - | mkdir -p /tmp/system | + | mkdir /tmp/system |
| mount /dev/sdaX /tmp/system | mount /dev/sdaX /tmp/system | ||
| + | # bei openSUSE mount -o subvol=@ /dev/sdaX /tmp/system | ||
| - | mkdir -p / | + | mkdir / |
| mount /dev/sdaY / | mount /dev/sdaY / | ||
| - | ... | + | und/oder |
| + | mkdir / | ||
| + | mount /dev/sdaZ / | ||
| + | und möglicherweise weitere: | ||
| + | mkdir / | ||
| + | mount … | ||
| + | Bei btrfs-Subvolumes: | ||
| + | |||
| + | mount -o subvol=@/ | ||
| + | … | ||
| ==== Wiederherstellen der Dateien mit rsync über ssh ==== | ==== Wiederherstellen der Dateien mit rsync über ssh ==== | ||
| - | ((mehr siehe [[rsync]])) | + | |
| - | | + | |
| - | evtl. ACLs und erweiterte Dateisystemattribute berücksichtigen | + | ((mehr siehe [[rsync]])) |
| - | (( Notlösung: Berechtigungen (teilweise) wiederherstellen, | + | |
| rpm -qa | xargs rpm --setperms | rpm -qa | xargs rpm --setperms | ||
| Todo: debian? | Todo: debian? | ||
| )) | )) | ||
| - | === Ubuntu === | ||
| - | rsync -aSH --acls --xattrs | ||
| + | ++++ ACLs und erweiterte Attribute | | ||
| === Wiederherstellen der ACL-Dateirechte === | === Wiederherstellen der ACL-Dateirechte === | ||
| nur nötig, wenn '' | nur nötig, wenn '' | ||
| Zeile 306: | Zeile 337: | ||
| oder | oder | ||
| touch / | touch / | ||
| - | + | ++++ | |
| - | ===== Bootloader wiederherstellen | + | ===== Bootfähig machen |
| ==== chroot vorbereiten ==== | ==== chroot vorbereiten ==== | ||
| mount --rbind /dev / | mount --rbind /dev / | ||
| mount --rbind /proc / | mount --rbind /proc / | ||
| mount --rbind /sys / | mount --rbind /sys / | ||
| - | + | mount --bind /run / | |
| - | (( nicht alle diese Befehle sind in allen Fällen notwendig! grub braucht hauptsächlich /dev, und das ist, wenn man zuvor beim Sichern mit '' | + | ((/run ist sinnvoll bei der Verwendung von lvm oder raid)) |
| - | Ich habe es schon erlebt, dass die Datei ''/ | + | === Alternativ mit bind statt rbind === |
| - | | + | |
| - | | + | mount --bind / |
| - | Nach dem chroot nicht vergessen, die ''/ | + | |
| - | | + | |
| + | mount --bind | ||
| )) | )) | ||
| - | bei UEFI-Systemen: | + | ==== UEFI ==== |
| + | (nur bei UEFI-Systemen) | ||
| + | |||
| + | === efivars schreibbar machen === | ||
| mount -o rw,remount / | mount -o rw,remount / | ||
| oder (falls ''/ | oder (falls ''/ | ||
| mount -t efivarfs efivarfs / | mount -t efivarfs efivarfs / | ||
| - | ==== Schritte im chroot Zielsystem | + | === Schritte im chroot Zielsystem === |
| chroot /tmp/system /bin/bash | chroot /tmp/system /bin/bash | ||
| - | Bootloader | + | === grub-efi bzw. efivars |
| + | |||
| + | Debian / Ubuntu: | ||
| + | grub-install | ||
| + | |||
| + | SuSE (ab 15.4): | ||
| + | | ||
| + | shim-install | ||
| + | |||
| + | CentOS / Rocky (ab 9): | ||
| + | |||
| + | '' | ||
| + | efibootmgr -v | ||
| + | |||
| + | -> alle alten Einträge löschen: | ||
| + | efibootmgr -B -b 000f | ||
| + | (( '' | ||
| + | |||
| + | EFI ESP Partition merken | ||
| + | grub2-probe -t device / | ||
| + | |||
| + | EFI-Eintrag anlegen | ||
| + | efi_label=' | ||
| + | distro=' | ||
| + | boot_device='/ | ||
| + | esp_partition_id=1 | ||
| + | efibootmgr --create --disk " | ||
| + | |||
| + | Ab RHEL/ | ||
| + | |||
| + | dnf -y reinstall kernel-core | ||
| + | oder mit grubby und kernel-install von Hand: | ||
| + | grubby --info DEFAULT | ||
| + | source / | ||
| + | grubby --update-kernel ALL --args " | ||
| + | |||
| + | grub-config neu erzeugen | ||
| + | grub2-mkconfig --update-bls-cmdline -o / | ||
| + | dnf -y reinstall grub2-common | ||
| + | |||
| + | (( | ||
| + | Nachfolgend die Befehle, die notwendig sind, ein reines EFI-System wiederherzustellen | ||
| + | oder wenn alle EFI-Informationen verloren sind | ||
| + | |||
| + | === EFI Variablen schreiben === | ||
| + | Die folgenden Shell-Variablen gemäß Ausgabe von | ||
| + | ls / | ||
| + | und der Datei '' | ||
| + | |||
| + | efi_label=' | ||
| + | distro=' | ||
| + | boot_device='/ | ||
| + | esp_partition_id=2 | ||
| + | efibootmgr --create --disk " | ||
| + | efibootmgr --create --disk " | ||
| + | |||
| + | === Grub2 konfigurieren === | ||
| + | |||
| + | In CentOS 8 BLSCFG abschalten: | ||
| + | <file txt / | ||
| + | … | ||
| + | GRUB_ENABLE_BLSCFG=false | ||
| + | … | ||
| + | </ | ||
| + | TODO: Lösung mit BLSCFG finden | ||
| + | |||
| + | == CentOS == | ||
| + | grub2-mkconfig -o / | ||
| + | |||
| + | == Debian, Ubuntu == | ||
| + | dpkg-reconfigure grub-efi-amd64 | ||
| + | oder | ||
| + | update-grub2 | ||
| + | |||
| + | )) | ||
| + | === EFI Variablen prüfen === | ||
| + | blkid | ||
| + | efibootmgr -v | ||
| + | |||
| + | * Partition unique GUID: muss zur ESP Partition passen | ||
| + | * The path of the EFI image to boot must use \ (backslash) instead of / (forward slash) as path separator. | ||
| + | |||
| + | ==== BIOS: Bootloader in mbr schreiben ==== | ||
| + | (nur bei BIOS-Systemen) | ||
| + | |||
| + | === Schritte im chroot Zielsystem === | ||
| + | chroot /tmp/system /bin/bash | ||
| === grub2 wiederherstellen === | === grub2 wiederherstellen === | ||
| Zeile 340: | Zeile 461: | ||
| update-bootloader --refresh | update-bootloader --refresh | ||
| - | == CentOS 7 == | + | == CentOS |
| grub2-install /dev/sda | grub2-install /dev/sda | ||
| grub2-mkconfig > / | grub2-mkconfig > / | ||
| Zeile 364: | Zeile 485: | ||
| ===== Anpassungen bei geänderter Hardware oder geänderten Partitionen ===== | ===== Anpassungen bei geänderter Hardware oder geänderten Partitionen ===== | ||
| + | ==== Ubuntu (22.04 LTS) ==== | ||
| + | * TODO: Nach Backup/ | ||
| + | |||
| + | |||
| + | ==== Rebuild Red Hat / Rocky / Alma 8 ==== | ||
| + | **[[Rebuild Red Hat 8|komplettes Rebuild Bootmanager UEFI+Rocky/ | ||
| + | |||
| Je nach dem wie sich die Hardware geändert hat, sind folgende Bereiche anzupassen: | Je nach dem wie sich die Hardware geändert hat, sind folgende Bereiche anzupassen: | ||
| + | |||
| ==== Format Partitionstabelle ==== | ==== Format Partitionstabelle ==== | ||
| - | Wenn die neue Festplatte größer als 2TB ist, dann GPT als Format für die Partitionstabelle verwenden. Statt '' | + | Wenn die neue Festplatte größer als 2TB ist, dann GPT als Format für die Partitionstabelle verwenden. |
| Wenn Linux von der Festplatte auch booten soll, dann braucht Grub vor der ersten Partition etwas Platz. Die erste Partition sollte daher - wie heute üblich - bei Block 2048 (= 1MiB ≈ 1,05MB) starten. Alternativ kann man diesen unpartitionierten Bereich mit einer [[wp> | Wenn Linux von der Festplatte auch booten soll, dann braucht Grub vor der ersten Partition etwas Platz. Die erste Partition sollte daher - wie heute üblich - bei Block 2048 (= 1MiB ≈ 1,05MB) starten. Alternativ kann man diesen unpartitionierten Bereich mit einer [[wp> | ||
| Zeile 380: | Zeile 509: | ||
| //If you are using gdisk, set the partition type to ‘0xEF02’. With partitioning programs that require setting the GUID directly, it should be ‘21686148-6449-6e6f-744e656564454649’. //)) | //If you are using gdisk, set the partition type to ‘0xEF02’. With partitioning programs that require setting the GUID directly, it should be ‘21686148-6449-6e6f-744e656564454649’. //)) | ||
| + | ==== /boot auf separater Partition ==== | ||
| + | Bei Debian mit UEFI anpassen: ''/ | ||
| ==== Bootloader grub ==== | ==== Bootloader grub ==== | ||
| ''/ | ''/ | ||
| Zeile 416: | Zeile 547: | ||
| ==== Kernel-Module und initrd ==== | ==== Kernel-Module und initrd ==== | ||
| Je nach Änderung muß eine neue [[admin_grundlagen: | Je nach Änderung muß eine neue [[admin_grundlagen: | ||
| + | |||
| + | === dracut (CentOS 8) === | ||
| + | in der chroot-Umgebung | ||
| + | dracut --hostonly --persistent-policy ' | ||
| === dracut (CentOS 7 / openSuSE 42.1) === | === dracut (CentOS 7 / openSuSE 42.1) === | ||
| in der chroot-Umgebung | in der chroot-Umgebung | ||
| + | |||
| + | <file txt / | ||
| + | add_drivers+=" | ||
| + | </ | ||
| dracut --force / | dracut --force / | ||
| Zeile 505: | Zeile 644: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | |||
| + | ====== Backup / Bare-Metal Restore Suse Linux ====== | ||
| + | |||
| + | Diese Anleitung beschreibt die Sicherung und Wiederherstellung eines Suse Linux Systems mit BTRFS Dateisystem. | ||
| + | |||
| + | Getestet wurde diese Anleitung auf einem Suse Leap 15.x im Dezember 2022 auf einem Tuxedo Laptop mit NVME Speicher. | ||
| + | |||
| + | ===== Sicherung (aka Backup) ===== | ||
| + | |||
| + | * Für die Sicherung des BTRFS benutzen wir die nur-lese (read-only) Snapshot Funktion des BTRFS zusammen mit dem '' | ||
| + | * Schritt 1: Erstellen eines Subvolumes, welches die zu sichernden Snapshots aufnimmt< | ||
| + | btrfs subvol create .backup | ||
| + | </ | ||
| + | |||
| + | * Schritt 2: von jedem Subvolume des Root-Dateisystems ein read-only Snapshot unterhalb des Backup-Subvolumes erstellen. Am Ende prüfen das auch alle Subvolumes (ggf. mit Aussnahme von '' | ||
| + | btrfs subvol list / | ||
| + | btrfs subvol snap -r / .backup/ | ||
| + | btrfs subvol snap -r /usr/local .backup/ | ||
| + | btrfs subvol snap -r /tmp .backup/tmp | ||
| + | ... | ||
| + | ls -l /.backup | ||
| + | </ | ||
| + | |||
| + | * Subvolumes welche gesichert werden:< | ||
| + | / | ||
| + | /home | ||
| + | /opt | ||
| + | /srv | ||
| + | /var | ||
| + | /root | ||
| + | / | ||
| + | /tmp | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | * Schritt 3: die Read-Only Snapshot-Volumes mittels '' | ||
| + | |||
| + | <code example> | ||
| + | ls -1 -d /.backup/* | xargs btrfs send | ssh -C nutzerXX@192.168.1.2XX "cat > notebookXX.btrfs" | ||
| + | </ | ||
| + | |||
| + | * Hiermit ist die Sicherung abgeschlossen. Die Backup-Snapshots können nun wieder entfernt werden< | ||
| + | btrfs subvol delete / | ||
| + | btrfs subvol delete / | ||
| + | btrfs subvol delete / | ||
| + | ... | ||
| + | btrfs subvol delete /.backup | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== System-Verlust simulieren (der spassige Teil) ===== | ||
| + | |||
| + | * System " | ||
| + | rm -rf /usr | ||
| + | </ | ||
| + | |||
| + | * Reboot testen -> das System sollte nicht mehr starten | ||
| + | |||
| + | ===== Bare-Metal System-Wiederherstellung ===== | ||
| + | |||
| + | * Diese Anleitung geht davon aus, das die EFI-Bootpartition, | ||
| + | * Ist das Ziel-System mit einer anderen Speicher-Lösung als NVME ausgestattet müssen im weiteren die Üfade der Grätedatei entsprechend angepasst werden (z.B. '' | ||
| + | |||
| + | ==== Rettungs-Linux starten ==== | ||
| + | |||
| + | * Mit einem Rettungs-Linux starten | ||
| + | * Tuxedo F7 beim UEFI Bootbildschirm | ||
| + | * Thinkpad F12 beim UEFI Bootbildschirm | ||
| + | * Netzwerk-Boot auswählen | ||
| + | * F4 -> Live-Linux-Systeme | ||
| + | * sysrcd starten | ||
| + | * Neues BTRFS Dateisystem erzeugen (ggf. Gerätedatei anpassen!!)< | ||
| + | mkfs.btrfs -f / | ||
| + | </ | ||
| + | |||
| + | * Neues Dateisystem unter '' | ||
| + | mount / | ||
| + | </ | ||
| + | |||
| + | * Subvolume für das Zurückspielen der Backups erstellen< | ||
| + | btrfs subvol create / | ||
| + | </ | ||
| + | |||
| + | * BTRFS Dateisysteme von Backup-System via SSH zurückspielen< | ||
| + | ssh nutzerXX@192.168.1.2XX "cat notebookXX.btrfs" | ||
| + | </ | ||
| + | |||
| + | * Neue schreibbare Snapshots aus dem Read-Only Snapshots erstellen. Die Namen der Subvolumes müssen nicht den original Namen entsprechen< | ||
| + | btrfs subvol snap / | ||
| + | btrfs subvol snap / | ||
| + | btrfs subvol snap / | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | * Subvolume für automatische Snapshots erstellen (wenn dieses nicht gesichert und zurückgespielt wurde)< | ||
| + | btrfs subvol create / | ||
| + | </ | ||
| + | |||
| + | * Subvolumes auflisten, Volume-ID des neuen Root-Filesystems notieren< | ||
| + | btrfs subvol list /mnt | ||
| + | </ | ||
| + | |||
| + | * Root-Filesystem-ID als neues Default-Volume des BTRFS Dateisystems eintragen< | ||
| + | btrfs subvol set-default <id> /mnt | ||
| + | </ | ||
| + | |||
| + | * BTRFS Dateisystem '' | ||
| + | umount /mnt | ||
| + | </ | ||
| + | |||
| + | * Neues BTRFS Dateisystem mit neuem (default) Root-Filesystem einhängen< | ||
| + | mount / | ||
| + | </ | ||
| + | |||
| + | * Pseudo-Dateisysteme aus dem Rettungs-System in das neue Root-Filesystem mounten (wird von der " | ||
| + | mount --rbind /dev /mnt/dev | ||
| + | mount --rbind /sys /mnt/sys | ||
| + | mount --rbind /proc /mnt/proc | ||
| + | </ | ||
| + | |||
| + | * In die " | ||
| + | chroot /mnt | ||
| + | </ | ||
| + | |||
| + | * Datei '' | ||
| + | * UUID durch Geräte-Pfad ersetzen | ||
| + | * Namen der Snapshots anpassen (aus '' | ||
| + | * Kurze Namen der Snapshots oder Subvol-IDs benutzen | ||
| + | * Mount testen mit '' | ||
| + | |||
| + | * Beispiel Datei /etc/fstab nach Wiederherstellung< | ||
| + | |||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | * Init-Ramdisk '' | ||
| + | mkinitrd | ||
| + | </ | ||
| + | |||
| + | * Bootloader Grub2 neu installieren< | ||
| + | grub2-install | ||
| + | </ | ||
| + | |||
| + | * Grub2 Konfiguration neu erstellen< | ||
| + | grub2-mkconfig -o / | ||
| + | </ | ||
| + | |||
| + | * chroot verlassen mit '' | ||
| + | * System neu booten, Daumen drücken …<code example> | ||
| + | reboot | ||
| + | </ | ||
| + | |||
| + | * Nach erfolgreichem Boot die Restore-Subvolumes löschen | ||
admin_grundlagen/systemsicherung.1570790165.txt.gz · Zuletzt geändert: 2019/10/11 10:36 von ingo_wichmann
