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/10 10:59]
ingo_wichmann [Sicherung der Partitionierung]
admin_grundlagen:systemsicherung [2024/02/23 17:11] (aktuell)
ingo_wichmann [UEFI]
Zeile 35: Zeile 35:
 Partitionstabelle im Textformat sichern: Partitionstabelle im Textformat sichern:
   sfdisk -d /dev/sda > sicherung.sfdisk   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.// )) (( ((bei GPT-Partitionstabellen eine inzwischen veraltete Warnung der Entwickler vorweg: //As of March 2014 (version 0.8.10), sgdisk should be considered beta software.// )) ((
Zeile 44: Zeile 43:
  
 Mehr zur Vorgehensweise siehe [[Partitionierung]]. )) Mehr zur Vorgehensweise siehe [[Partitionierung]]. ))
- 
-Ubuntu: 
-  scp sicherung.parted nutzer@server:/​mnt/​backup 
- 
-andere Distributionen (bei denen root ein Passwort hat): 
-  scp sicherung.parted root@server:/​mnt/​backup 
- 
  
 ==== 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 377: Zeile 358:
   shim-install   shim-install
  
-CentOS8 ​/ Rocky (ab 8):+CentOS ​/ Rocky (ab 8):
  
 ''​grub-install''​ funktioniert nicht, also müssen die EFI-Einträge manuell gesetzt werden ''​grub-install''​ funktioniert nicht, also müssen die EFI-Einträge manuell gesetzt werden
   efibootmgr -v   efibootmgr -v
  
-da wird wahrscheinlich nur noch der PXE-Eintrag ​sein+-> alle alten Einträge löschen: 
 +  efibootmgr -B -b 000f 
 +(( ''​000f''​ ist hier nur ein Beispiel für einen veralteten ​Eintrag ​))
  
-EFI SP merken +EFI ESP Partition ​merken 
-  ​blkid +  ​grub2-probe -t device /boot/efi/EFI/
-  gdisk -/dev/sda+
  
-Achtung: Je nach Umgebung, sind efivars gar nicht gemountet ​oder RO +EFI-Eintrag anlegen 
-  ​mount -oremount,​rw ​/sys/firmware/efi/efivars +  efi_label='​Name der Distribution'​ # z.B. ''​CentOS Linux'' ​oder ''​Rocky Linux''​ 
-  ​ +  ​distro='​DISTRIBUTION'​ # ''​centos''​ oder ''​rocky''​ 
-EFI-Eintrag machen (-p ordinale Nummer der ESP) +  boot_device='​/dev/sda' # ''​/dev/​sda''​ oder ''/​dev/nvme0n1''​ 
-  efibootmgr --"CentOS Linux" -/EFI/centos/​shimx64.efi ​-p 1+  ​esp_partition_id=2 
 +  efibootmgr --create --disk ​"$boot_device" --part "​$esp_partition_id"​ --label "​$efi_label"​ --loader "/EFI/$distro/​shimx64.efi"
  
-nochmal kontrollieren 
-  blkid 
-  efibootmgr -v 
-  ​ 
 grub-config neu erzeugen grub-config neu erzeugen
-  grub2-mkconfig -o /​boot/​efi/​EFI/​centos/grub.cfg+  ​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:
  
-Fallen +  dnf -y reinstall kernel-core 
-  ​/​etc/​default/​grub ​# resume devices und Parameter+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 440: Zeile 425:
 )) ))
 === EFI Variablen prüfen === === EFI Variablen prüfen ===
 +  blkid
   efibootmgr -v   efibootmgr -v
  
Zeile 484: 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.1699613966.txt.gz · Zuletzt geändert: 2023/11/10 10:59 von ingo_wichmann