Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:systemsicherung [2023/11/10 11:35] ingo_wichmann [Wiederherstellung LVM] |
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 241: | 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 ===== | ||
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 -l /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 -c -L "CentOS Linux" -l /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]]** |