Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:systemsicherung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:systemsicherung [2023/11/09 16:38]
natureshadow2 [Wiederherstellung LVM] vgchange nach vgcfgrestore
admin_grundlagen:systemsicherung [2024/02/23 17:11] (aktuell)
ingo_wichmann [UEFI]
Zeile 33: Zeile 33:
  
 ==== Sicherung der Partitionierung ==== ==== Sicherung der Partitionierung ====
-Mehr zur Vorgehensweise siehe [[partitionierung]]Wenn die Wiederherstellung nicht automatisiert erfolgen mussreicht ​auch die Ausgabe von ''​parted''​+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,​size,​type,​uuid /dev/sda > sicherung.fdisk   fdisk -l -o device,​size,​type,​uuid /dev/sda > sicherung.fdisk
 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:/​mnt/​backup +
- +
-andere Distributionen (bei denen root ein Passwort hat): +
-  scp sicherung.parted root@server:/​mnt/​backup +
-(( +
-alternativ für MSDOS-Partitionstabellen:​ +
- +
-  sfdisk -d /dev/sda > sicherung.sfdisk +
-  scp sicherung.sfdisk root@server:/​mnt/​backup +
- +
-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 ====
Zeile 118: Zeile 110:
 == Debian (ab 8) == == Debian (ab 8) ==
 Wie oben unter "​[[#​debian_ab_8|Vorbereitung Zielsystem]]"​ beschrieben kann man entweder so vorgehen Wie oben unter "​[[#​debian_ab_8|Vorbereitung Zielsystem]]"​ beschrieben kann man entweder so vorgehen
-  * wie bei anderen Distributionen,​ bei denen root ein Passwort hat+  * wie bei [[#​andere_distributionen_bei_denen_root_ein_passwort_hat|anderen Distributionen,​ bei denen root ein Passwort hat]]
 oder oder
   * wie bei Ubuntu   * wie bei Ubuntu
Zeile 148: Zeile 140:
 == andere Distributionen (bei denen root ein Passwort hat) == == andere Distributionen (bei denen root ein Passwort hat) ==
   rsync -aSH --acls --xattrs --numeric-ids --del /​mnt/​system/​ root@server:/​mnt/​backup/​dateien   rsync -aSH --acls --xattrs --numeric-ids --del /​mnt/​system/​ root@server:/​mnt/​backup/​dateien
-(( mehr zu [[rsync]], u.a. wie man hier ''​rsync''​ auch ohne root-Rechte benutzen kann )) +(( mehr zu [[rsync]], u.a. wie man hier ''​rsync''​ auch ohne root-Rechte benutzen kann )) (( mehr zu [[ssh]] )) (( wenn man ein Art Fortschrittsbalken haben will: ''​progress''​ installieren und ''​progress -wm''​ ausführen während rsync läuft. ))
-(( mehr zu [[ssh]] )) +
-(( wenn man ein Art Fortschrittsbalken haben will: ''​progress''​ installieren und ''​progress -wm''​ ausführen während rsync läuft. )) +
- +
-== erweiterte Attribute und ACLs mit tar und rsync == +
-RedHat'​s Versionen von ''​[[tar]]''​ und ''​[[rsync]]''​ können mit ACLs und erweiterten Dateiattributen umgehen, bei Debian ab Version 8. Dazu die Optionen ''​--xattrs''​ ( ''​tar''​ ) oder ''​--xattrs --acls''​ ( ''​rsync''​ ) angeben.+
  
 === Plausibilitätsprüfung === === Plausibilitätsprüfung ===
Zeile 173: Zeile 160:
   * Größenvergleich mit ''​du -sh''​ -> Achtung: die Größen sind nie exakt gleich, die Größenordnung pro Dateisystem sollte passen.   * Größenvergleich mit ''​du -sh''​ -> Achtung: die Größen sind nie exakt gleich, die Größenordnung pro Dateisystem sollte passen.
  
-Optional, für Freude der Unix-Kommandozeile:+++++ Optionalegenauere Prüfung ​für Freude der Unix-Kommandozeile ​|
  
 Auf dem Zielsystem Checksummen für Backup-Dateien erzeugen: Auf dem Zielsystem Checksummen für Backup-Dateien erzeugen:
Zeile 193: Zeile 180:
 Berechtigungen vergleichen Berechtigungen vergleichen
   diff ~/​getfacl.orig /​run/​getfacl.backup   diff ~/​getfacl.orig /​run/​getfacl.backup
 +++++ 
 +++++ ACLs und erweiterte Attribute |
 === Sicherung der ACL-Dateirechte === === Sicherung der ACL-Dateirechte ===
-nur nötig, wenn ''​tar'' ​oder ''​rsync''​ das nicht kann+aktuelle Versionen von ''​tar'' ​und ''​rsync'' ​erledigen ​das mit, bei älteren Systemen:
   cd /mnt/system   cd /mnt/system
   getfacl --skip-base -P -n -R . > sicherung.acl   getfacl --skip-base -P -n -R . > sicherung.acl
Zeile 205: Zeile 193:
   getfattr -Rh -m . -d . > sicherung.attr   getfattr -Rh -m . -d . > sicherung.attr
   scp sicherung.attr root@server:/​mnt/​backup   scp sicherung.attr root@server:/​mnt/​backup
 +++++
  
 ====== Löschen des Systems ====== ====== Löschen des Systems ======
Zeile 244: Zeile 233:
  
 ====== Wiederherstellung des Systems ====== ====== Wiederherstellung des Systems ======
-Rettungssystem ( z.B. sysrcd, knoppix ​booten+Rettungssystem ​booten ​(im Linuxhotel-Netz:​ PXE-Boot und ''​debian11live''​ eingeben)
  
 ===== Schritte im Rettungs-System ===== ===== Schritte im Rettungs-System =====
 ==== Wiederherstellung der Partitionierung ==== ==== Wiederherstellung der Partitionierung ====
-Partitionierung anhand der Informationen aus der gesicherten Datei ''​sicherung.parted''​ und/oder gemäß ''​etc/fstab''​ aus dem Backup wie in [[Partitionierung]] beschrieben anlegen+Partitionstabelle wiederherstellen:​ 
 +  sfdisk ​/dev/sda < sicherung.sfdisk
  
-Bitte Typ der Partitionstabelle (''​gpt''​ oder ''​msdos''​) beachten. ​+(( Alternativ: Partitionierung manuell anhand der Informationen aus der gesicherten Datei ''​sicherung.parted''​ und/oder gemäß ''​etc/​fstab''​ aus dem Backup wie in [[Partitionierung]] beschrieben anlegen 
 + 
 +Typ der Partitionstabelle (''​gpt''​ oder ''​msdos''​) beachten. ​))
 ==== Wiederherstellung LVM ==== ==== Wiederherstellung LVM ====
 In Knoppix muss dazu zuerst lvm2 gestartet werden: In Knoppix muss dazu zuerst lvm2 gestartet werden:
Zeile 256: Zeile 248:
 === 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 ~/​sicherung.vg --uuid xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx /dev/sdaX   pvcreate -ff --zero y --restorefile ~/​sicherung.vg --uuid xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx /dev/sdaX
   ...   ...
 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 ~/​sicherung.vg centos_notebook17   vgcfgrestore -f ~/​sicherung.vg centos_notebook17
Zeile 291: Zeile 283:
  
 ==== Mounten der Zielpartitionen ==== ==== Mounten der Zielpartitionen ====
-In ''/​mnt/​backup/​dateien/​etc/​fstab''​ aufgeführte Mountpoints mit ''​mkdir ​-p''​ anlegen und Dateisysteme mit ''​mount''​ einhängen: (( evtl. mount-optionen ( z.B. acl ) beachten )) +In ''/​mnt/​backup/​dateien/​etc/​fstab''​ aufgeführte Mountpoints mit ''​mkdir''​ anlegen und Dateisysteme mit ''​mount''​ einhängen: (( evtl. mount-optionen ( z.B. acl ) beachten )) 
 ((''/​dev/​sdaX''​ ist hier nur ein Beispiel für ein Speichergerät ( Partition, LVM, ...). Liegt das Dateisystem auf einem Logical Volume, dann heißt das root-Device ''/​dev/​mapper/​xxx''​ oder ähnlich)) ((''/​dev/​sdaX''​ ist hier nur ein Beispiel für ein Speichergerät ( Partition, LVM, ...). Liegt das Dateisystem auf einem Logical Volume, dann heißt das root-Device ''/​dev/​mapper/​xxx''​ oder ähnlich))
-  mkdir -p /tmp/system+  mkdir /tmp/system
   mount /dev/sdaX /tmp/system   mount /dev/sdaX /tmp/system
  
-  mkdir -p /​tmp/​system/​boot+  mkdir /​tmp/​system/​boot
   mount /dev/sdaY /​tmp/​system/​boot   mount /dev/sdaY /​tmp/​system/​boot
 und/oder und/oder
-  mkdir -p /​tmp/​system/​boot/​efi+  mkdir /​tmp/​system/​boot/​efi
   mount /dev/sdaZ /​tmp/​system/​boot/​efi   mount /dev/sdaZ /​tmp/​system/​boot/​efi
 und möglicherweise weitere: und möglicherweise weitere:
-  mkdir -p /​tmp/​system/​…+  mkdir /​tmp/​system/​…
   mount …   mount …
  
 ==== Wiederherstellen der Dateien mit rsync über ssh ==== ==== Wiederherstellen der Dateien mit rsync über ssh ====
-((mehr siehe [[rsync]])) 
   rsync -aSH --acls --xattrs --numeric-ids --del root@server:/​mnt/​backup/​dateien/​ /​tmp/​system ​   rsync -aSH --acls --xattrs --numeric-ids --del root@server:/​mnt/​backup/​dateien/​ /​tmp/​system ​
  
-evtl. ACLs und erweiterte Dateisystemattribute berücksichtigen +((mehr siehe [[rsync]])) ​(( Notlösung: Berechtigungen (teilweise) wiederherstellen,​ wenn sie nicht richtig gesichert wurden
-(( Notlösung: Berechtigungen (teilweise) wiederherstellen,​ wenn sie nicht richtig gesichert wurden+
   rpm -qa | xargs rpm --setperms   rpm -qa | xargs rpm --setperms
 Todo: debian? Todo: debian?
Zeile 317: Zeile 307:
   rsync -aSH --acls --xattrs ​ --numeric-ids --del --rsync-path="​sudo rsync" user@server:/​mnt/​backup/​dateien/​ /​tmp/​system ​   rsync -aSH --acls --xattrs ​ --numeric-ids --del --rsync-path="​sudo rsync" user@server:/​mnt/​backup/​dateien/​ /​tmp/​system ​
  
 +++++ ACLs und erweiterte Attribute |
 === Wiederherstellen der ACL-Dateirechte === === Wiederherstellen der ACL-Dateirechte ===
 nur nötig, wenn ''​rsync''​ bzw. ''​tar''​ das nicht kann nur nötig, wenn ''​rsync''​ bzw. ''​tar''​ das nicht kann
Zeile 331: Zeile 322:
 oder oder
   touch /​tmp/​system/​.autorelabel   touch /​tmp/​system/​.autorelabel
 +++++
 ===== Bootfähig machen ===== ===== Bootfähig machen =====
 ==== chroot vorbereiten ==== ==== chroot vorbereiten ====
Zeile 337: Zeile 328:
   mount --rbind /proc /​tmp/​system/​proc   mount --rbind /proc /​tmp/​system/​proc
   mount --rbind /sys  /​tmp/​system/​sys   mount --rbind /sys  /​tmp/​system/​sys
- +  mount --rbind /run  /​tmp/​system/​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 ''​mount --bind''​ gearbeitet hat, schon minimal befüllt. Kann man also weglassen, aber wenn grub meckert, sollte man das versuchen! ​ +((/run ist sinnvoll bei der Verwendung von lvm oder raid)) ​(( nicht alle diese Befehle sind in allen Fällen notwendig! grub braucht hauptsächlich /dev, und das ist, wenn man zuvor beim Sichern mit ''​mount --bind''​ gearbeitet hat, schon minimal befüllt. Kann man also weglassen, aber wenn grub meckert, sollte man das versuchen! )) (( 
-Ich habe es schon erlebt, dass die Datei ''/​etc/​mtab''​ falsche Informationen enthält. Falls das so ist, kann man sie so ersetzen: +=== Alternativ ​mit bind statt rbind ===
-  mv /​tmp/​system/​etc/​mtab ​ /​tmp/​system/​etc/​mtab.bak +
-  cp -a /​proc/​mounts /​tmp/​system/​etc/​mtab +
-Nach dem chroot nicht vergessen, die ''/​etc/​mtab''​ wiederherzustellen:​ +
-  mv /​tmp/​system/​etc/​mtab.bak /​tmp/​system/​etc/​mtab +
-)) +
- +
-(( +
-=== Alternativ ​ohne rbind ===+
   mount --bind /dev /​tmp/​system/​dev   mount --bind /dev /​tmp/​system/​dev
   mount --bind /dev/pts /​tmp/​system/​dev/​pts   mount --bind /dev/pts /​tmp/​system/​dev/​pts
   mount --bind /proc /​tmp/​system/​proc   mount --bind /proc /​tmp/​system/​proc
   mount --bind /sys /​tmp/​system/​sys   mount --bind /sys /​tmp/​system/​sys
 +  mount --bind /run /​tmp/​system/​run
 )) ))
  
-/run ist sinnvoll bei der Verwendung von lvm oder raid 
-  mount --bind /run /​tmp/​system/​run 
-  ​ 
 ==== UEFI ==== ==== UEFI ====
 (nur bei UEFI-Systemen) (nur bei UEFI-Systemen)
Zeile 368: Zeile 349:
   chroot /tmp/system /bin/bash   chroot /tmp/system /bin/bash
  
-=== grub-efi wiederherstellen ===+=== grub-efi ​bzw. efivars ​wiederherstellen ===
  
 Debian: Debian:
Zeile 376: Zeile 357:
   grub-install   grub-install
   shim-install   shim-install
 +
 +CentOS / Rocky (ab 8):
 +
 +''​grub-install''​ funktioniert nicht, also müssen die EFI-Einträge manuell gesetzt werden
 +  efibootmgr -v
 +
 +-> alle alten Einträge löschen:
 +  efibootmgr -B -b 000f
 +(( ''​000f''​ ist hier nur ein Beispiel für einen veralteten Eintrag ))
 +
 +EFI ESP Partition merken
 +  grub2-probe -t device /​boot/​efi/​EFI/​
 +
 +EFI-Eintrag anlegen
 +  efi_label='​Name der Distribution'​ # z.B. ''​CentOS Linux''​ oder ''​Rocky Linux''​
 +  distro='​DISTRIBUTION'​ # ''​centos''​ oder ''​rocky''​
 +  boot_device='/​dev/​sda'​ # ''/​dev/​sda''​ oder ''/​dev/​nvme0n1''​
 +  esp_partition_id=2
 +  efibootmgr --create --disk "​$boot_device"​ --part "​$esp_partition_id"​ --label "​$efi_label"​ --loader "/​EFI/​$distro/​shimx64.efi"​
 +
 +grub-config neu erzeugen
 +  grub2-mkconfig -o /​boot/​grub2/​grub.cfg
 +oder
 +  grub2-mkconfig -o /​boot/​efi/​EFI/​$distro/​grub.cfg
 +
 +Ab RHEL/​CentOS/​Rocky 8 werden zusätzlich Einträge für BLS (''/​boot/​loader/​entries/''​) benötigt, da grub.cfg keinen direkten Eintrag für Kernel und initrd enthält:
 +
 +  dnf -y reinstall kernel-core
 +oder mit grubby von Hand:
 +  source /​etc/​default/​grub
 +  grubby --add-kernel=/​boot/​vmlinuz-5.14.0-284.30.1.el9_2.x86_64 --args="​$GRUB_CMDLINE_LINUX"​ --initrd=/​boot/​initramfs-5.14.0-284.30.1.el9_2.x86_64.img --title="​Rocky Linux"
  
 (( ((
Zeile 413: Zeile 425:
 )) ))
 === EFI Variablen prüfen === === EFI Variablen prüfen ===
 +  blkid
   efibootmgr -v   efibootmgr -v
  
Zeile 451: Zeile 464:
   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 
-  efibootmgr -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,​rw /​sys/​firmware/​efi/​efivars 
-  ​ 
-EFI-Eintrag machen (-p = ordinale Nummer der ESP) 
-  efibootmgr -c -L "​CentOS Linux" -l /​EFI/​centos/​shimx64.efi -p 1 
- 
-nochmal kontrollieren 
-  blkid 
-  efibootmgr -v 
-  ​ 
-grub-config neu erzeugen 
-  grub2-mkconfig -o /​boot/​efi/​EFI/​centos/​grub.cfg 
  
-Fallen 
-  * /​etc/​default/​grub # resume devices und Parameter 
 ==== reboot ==== ==== reboot ====
 chroot-Umgebung (z.B. mit ''​Strg+d''​) verlassen und chroot-Umgebung (z.B. mit ''​Strg+d''​) verlassen und
Zeile 481: Zeile 470:
  
 ===== 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/​Restore ist snap kaputt
 +
 +
 ==== Rebuild Red Hat / Rocky / Alma 8 ==== ==== Rebuild Red Hat / Rocky / Alma 8 ====
 **[[Rebuild Red Hat 8|komplettes Rebuild Bootmanager UEFI+Rocky/​Alma/​Red Hat 8]]** **[[Rebuild Red Hat 8|komplettes Rebuild Bootmanager UEFI+Rocky/​Alma/​Red Hat 8]]**
admin_grundlagen/systemsicherung.1699547917.txt.gz · Zuletzt geändert: 2023/11/09 16:38 von natureshadow2