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 [2022/12/09 11:02] – carsten_strotmann | admin_grundlagen:systemsicherung [2025/11/28 11:53] (aktuell) – [Sicherung der Dateisystem-Einstellungen] ingo_wichmann | ||
|---|---|---|---|
| Zeile 8: | Zeile 8: | ||
| ===== 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 | ||
| </ | </ | ||
| - | )) | + | |
| + | systemctl restart ssh.service | ||
| + | |||
| + | ++++ Alternativ: sudo und ssh-Schlüssel | | ||
| + | Zielverzeichnis ''/ | ||
| + | chown nutzerXX / | ||
| + | |||
| + | * [[sudo]] einrichten, falls noch nicht passiert | ||
| + | * einen [[ssh]]-Schlüssel beim Benutzer root hinterlegen | ||
| + | ++++ | ||
| ===== Sicherung ===== | ===== Sicherung ===== | ||
| Diese Schritte werden auf dem zu sichernden System ausgeführt. | Diese Schritte werden auf dem zu sichernden System ausgeführt. | ||
| Zeile 33: | Zeile 37: | ||
| ==== Sicherung der Partitionierung ==== | ==== Sicherung der Partitionierung ==== | ||
| - | Mehr zur Vorgehensweise siehe [[partitionierung]]. Wenn die Wiederherstellung nicht automatisiert erfolgen muss, reicht | + | Partitionstabelle im Textformat sichern: |
| + | sfdisk -d /dev/sda > sicherung.sfdisk | ||
| + | |||
| + | ((bei GPT-Partitionstabellen eine inzwischen veraltete Warnung der Entwickler vorweg: //As of March 2014 (version 0.8.10), sgdisk should be considered beta software.// )) (( | ||
| + | Lesbarer, aber nicht automatisch wiederherstellbar geht das auch so: | ||
| fdisk -l -o device, | fdisk -l -o device, | ||
| oder | oder | ||
| parted /dev/sda print > sicherung.parted | parted /dev/sda print > sicherung.parted | ||
| - | Ubuntu: | + | Mehr zur Vorgehensweise siehe [[Partitionierung]]. )) |
| - | scp sicherung.parted nutzer@server:/ | + | |
| - | + | ||
| - | andere Distributionen (bei denen root ein Passwort hat): | + | |
| - | scp sicherung.parted root@server:/ | + | |
| - | (( | + | |
| - | alternativ für MSDOS-Partitionstabellen: | + | |
| - | + | ||
| - | sfdisk -d /dev/sda > sicherung.sfdisk | + | |
| - | scp sicherung.sfdisk root@server:/ | + | |
| - | + | ||
| - | bei GPT-Partitionstabellen eine inzwischen veraltete Warnung der Entwickler vorweg: //As of March 2014 (version 0.8.10), sgdisk should be considered beta software.// | + | |
| - | )) | + | |
| ==== Sicherung LVM Informationen ==== | ==== Sicherung LVM Informationen ==== | ||
| - | vgcfgbackup -f sicherung.vg | + | vgcfgbackup -f sicherung.vg.%s |
| pvdisplay > sicherung.pvdisplay | pvdisplay > sicherung.pvdisplay | ||
| vgdisplay > sicherung.vgdisplay | vgdisplay > sicherung.vgdisplay | ||
| Zeile 68: | Zeile 64: | ||
| lsblk -f | lsblk -f | ||
| oder | oder | ||
| - | df -Thlx tmpfs -x devtmpfs | + | df -Thlx tmpfs -x devtmpfs |
| -> alle persistenten, | -> alle persistenten, | ||
| Zeile 81: | Zeile 77: | ||
| == btrfs == | == btrfs == | ||
| - | btrfs läßt sich nicht einfach | + | btrfs läßt sich ggf. nur umständlich (Subvolumes, |
| + | |||
| + | Die UUID des Dateisystems erhält man mit '' | ||
| + | |||
| + | btrfs subvolume list / > | ||
| == vfat == | == vfat == | ||
| Zeile 92: | Zeile 92: | ||
| ==== 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 [[# | 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 128: | 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 169: | 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 189: | 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 201: | 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 ====== | ||
| Zeile 240: | 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: | ||
| - | Bitte Typ der Partitionstabelle ('' | + | Typ der Partitionstabelle ('' |
| ==== Wiederherstellung LVM ==== | ==== Wiederherstellung LVM ==== | ||
| - | In Knoppix muss dazu zuerst lvm2 gestartet werden: | ||
| - | service lvm2 start | ||
| === mit vgcfgrestore === | === 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 | ||
| === von Hand === | === von Hand === | ||
| Zeile 280: | Zeile 279: | ||
| ((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 287: | 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 322: | Zeile 337: | ||
| oder | oder | ||
| touch / | touch / | ||
| + | ++++ | ||
| ===== Bootfähig machen ===== | ===== Bootfähig machen ===== | ||
| ==== chroot vorbereiten ==== | ==== chroot vorbereiten ==== | ||
| Zeile 328: | Zeile 343: | ||
| 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 |
| - | mv / | + | |
| - | cp -a / | + | |
| - | Nach dem chroot nicht vergessen, die ''/ | + | |
| - | mv / | + | |
| - | )) | + | |
| - | + | ||
| - | (( | + | |
| - | === Alternativ | + | |
| mount --bind /dev / | mount --bind /dev / | ||
| mount --bind /dev/pts / | mount --bind /dev/pts / | ||
| mount --bind /proc / | mount --bind /proc / | ||
| mount --bind /sys / | mount --bind /sys / | ||
| + | mount --bind /run / | ||
| )) | )) | ||
| - | /run ist sinnvoll bei der Verwendung von lvm oder raid | ||
| - | mount --bind /run / | ||
| - | | ||
| ==== UEFI ==== | ==== UEFI ==== | ||
| (nur bei UEFI-Systemen) | (nur bei UEFI-Systemen) | ||
| Zeile 359: | Zeile 364: | ||
| chroot /tmp/system /bin/bash | chroot /tmp/system /bin/bash | ||
| + | === grub-efi bzw. efivars wiederherstellen === | ||
| - | === grub-efi über efi === | + | Debian / Ubuntu: |
| - | Bei einfachen Installationen ist grub-efi der zweite Bootloader hinter efi. | + | grub-install |
| - | In diesem Fall reicht | + | |
| - | grub-install | + | SuSE (ab 15.4): |
| + | grub2-install | ||
| + | shim-install | ||
| - | Voraussetzung dafür ist, dass die EFI-System-Partition | + | CentOS / Rocky (ab 9): |
| - | Stelle gemountet ist (/boot/grub/efi) | + | |
| + | '' | ||
| + | efibootmgr | ||
| + | |||
| + | -> 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 | ||
| (( | (( | ||
| Zeile 405: | Zeile 440: | ||
| )) | )) | ||
| === EFI Variablen prüfen === | === EFI Variablen prüfen === | ||
| + | blkid | ||
| efibootmgr -v | efibootmgr -v | ||
| Zeile 425: | Zeile 461: | ||
| update-bootloader --refresh | update-bootloader --refresh | ||
| - | == CentOS 7 == | + | == CentOS |
| grub2-install /dev/sda | grub2-install /dev/sda | ||
| grub2-mkconfig > / | grub2-mkconfig > / | ||
| Zeile 443: | Zeile 479: | ||
| grub-install --recheck --no-floppy hd0 | grub-install --recheck --no-floppy hd0 | ||
| - | ==== Centos 8 Recovery mit UEFI ==== | ||
| - | grub-install funktioniert nicht, also müssen die EFI-Einträge manuell gesetzt werden | ||
| - | efibootmbr -v | ||
| - | da wird wahrscheinlich nur noch der PXE-Eintrag sein | ||
| - | |||
| - | EFI SP merken | ||
| - | blkid | ||
| - | gdisk -l /dev/sda | ||
| - | |||
| - | Achtung: Je nach Umgebung, sind efivars gar nicht gemountet oder RO | ||
| - | mount -oremount, | ||
| - | | ||
| - | EFI-Eintrag machen (-p = ordinale Nummer der ESP) | ||
| - | efibootmgr -c -L " | ||
| - | |||
| - | nochmal kontrollieren | ||
| - | blkid | ||
| - | efibootmgr -v | ||
| - | | ||
| - | grub-config neu erzeugen | ||
| - | grub2-mkconfig -o / | ||
| - | |||
| - | Fallen | ||
| - | * / | ||
| ==== reboot ==== | ==== reboot ==== | ||
| chroot-Umgebung (z.B. mit '' | chroot-Umgebung (z.B. mit '' | ||
| Zeile 473: | 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 / Rocky / Alma 8 ==== | ||
| - | **[[Rebuild Red Hat 8|komplettes Rebuild Bootmanager UEFI+Rocky/ | + | **[[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: | ||
| Zeile 713: | Zeile 729: | ||
| * BTRFS Dateisysteme von Backup-System via SSH zurückspielen< | * BTRFS Dateisysteme von Backup-System via SSH zurückspielen< | ||
| - | ssh nutzerXX@192.168.1.2XX "cat notebookXX.btrfs" | + | ssh nutzerXX@192.168.1.2XX "cat notebookXX.btrfs" |
| </ | </ | ||
| Zeile 732: | Zeile 748: | ||
| * Root-Filesystem-ID als neues Default-Volume des BTRFS Dateisystems eintragen< | * Root-Filesystem-ID als neues Default-Volume des BTRFS Dateisystems eintragen< | ||
| - | btrfs subvol set-default <id> | + | btrfs subvol set-default < |
| </ | </ | ||
| Zeile 795: | Zeile 811: | ||
| * Nach erfolgreichem Boot die Restore-Subvolumes löschen | * Nach erfolgreichem Boot die Restore-Subvolumes löschen | ||
| + | |||
admin_grundlagen/systemsicherung.1670583750.txt.gz · Zuletzt geändert: 2022/12/09 11:02 von carsten_strotmann
