Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
admin_grundlagen:systemsicherung [2019/05/24 10:03] ingo_wichmann [Sicherung der Dateien] |
admin_grundlagen:systemsicherung [2020/09/18 12:39] stefan_miethke [Sicherung der Partitionierung] |
||
---|---|---|---|
Zeile 27: | Zeile 27: | ||
===== Sicherung ===== | ===== Sicherung ===== | ||
Diese Schritte werden auf dem zu sichernden System ausgeführt. | 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 ==== | ==== Sicherung der Partitionierung ==== | ||
Zeile 38: | Zeile 42: | ||
scp sicherung.parted root@server:/mnt/backup | scp sicherung.parted root@server:/mnt/backup | ||
(( | (( | ||
- | alternativ | + | alternativ für MSDOS-Partitionstabellen: |
sfdisk -d /dev/sda > sicherung.sfdisk | sfdisk -d /dev/sda > sicherung.sfdisk | ||
scp sicherung.sfdisk root@server:/mnt/backup | scp sicherung.sfdisk root@server:/mnt/backup | ||
+ | |||
+ | bei GPT-Partitionstabellen eine Warnung der Entwickler vorweg: //As of March 2014 (version 0.8.10), sgdisk should be considered beta software.// | ||
+ | | ||
)) | )) | ||
+ | |||
==== Sicherung LVM Informationen ==== | ==== Sicherung LVM Informationen ==== | ||
pvdisplay > sicherung.pvdisplay | pvdisplay > sicherung.pvdisplay | ||
Zeile 69: | Zeile 77: | ||
-> alle persistenten, lokalen Dateisysteme müssen gesichert werden, mit Ausnahme von loop-Devices | -> alle persistenten, lokalen Dateisysteme müssen gesichert werden, mit Ausnahme von loop-Devices | ||
- | == ext3 / ext4 == | + | == ext2 / ext3 / ext4 == |
tune2fs -l /dev/sdaX > sicherung.ext.sdaX | tune2fs -l /dev/sdaX > sicherung.ext.sdaX | ||
((''/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 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 Device ''/dev/mapper/xxx'' oder ähnlich)) | ||
Zeile 104: | Zeile 112: | ||
=== mit rsync über ssh Dateien kopieren === | === mit rsync über ssh Dateien kopieren === | ||
+ | Auf Quell- und Zielsystem muss rsync installiert sein. Alternativ kann man auch [[#tar_ueber_ssh|tar über ssh]] verwenden. | ||
== Debian (ab 8) == | == Debian (ab 8) == | ||
Zeile 130: | Zeile 139: | ||
Und dann lautet der Befehl zum Backup: | Und dann lautet der Befehl zum Backup: | ||
- | rsync -aH --xattrs --acls --numeric-ids --del --rsync-path="sudo rsync" /mnt/system/ user@zielsystem:/mnt/backup/dateien | + | rsync -aSH --xattrs --acls --numeric-ids --del --rsync-path="sudo rsync" /mnt/system/ user@zielsystem:/mnt/backup/dateien |
== SuSE / BTRFS == | == SuSE / BTRFS == | ||
Zeile 136: | Zeile 145: | ||
== andere Distributionen (bei denen root ein Passwort hat) == | == andere Distributionen (bei denen root ein Passwort hat) == | ||
- | rsync -aH --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]] )) | (( mehr zu [[ssh]] )) | ||
Zeile 214: | Zeile 223: | ||
... und laaaange warten | ... und laaaange warten | ||
- | === auf keinen Fall === | + | === Gefahr der Beschädigung der Hardware === |
- | rm -rf ... / | + | |
+ | Bis Kernel 4.5 ist es möglich, dass durch das Löschen der Dateien unter /sys/firmware/efi/efivars die UEFI-Firmware beschädigt wird und der Rechner nicht mehr booten kann. | ||
+ | |||
+ | Daher vorsichtig sein mit | ||
+ | rm -rf /… | ||
+ | |||
+ | Mehr dazu bei [[https://www.heise.de/newsticker/meldung/Linux-rm-rf-soll-keine-UEFI-Systeme-mehr-kaputt-machen-3113433.html|heise]] und im entsprechenden [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0389075ecfb6231818de9b0225d3a5a21a661171|Kernel-Patch]] | ||
- | :!: Das hat früher mal Spass gemacht. Heutzutage (Kernel < 3.0 und EFI) kann | ||
- | es leider passieren, dass die EFIVARS gelöscht werden. Danach ist kein | ||
- | Zugriff auf Wechselmedien mehr möglich. :!: | ||
====== Wiederherstellung des Systems ====== | ====== Wiederherstellung des Systems ====== | ||
Rettungssystem ( z.B. sysrcd, knoppix ) booten | Rettungssystem ( z.B. sysrcd, knoppix ) booten | ||
Zeile 227: | Zeile 240: | ||
Partitionierung anhand der Informationen aus der gesicherten Datei ''sicherung.parted'' und/oder gemäß ''etc/fstab'' aus dem Backup wie in [[Partitionierung]] beschrieben anlegen | Partitionierung anhand der Informationen aus der gesicherten Datei ''sicherung.parted'' und/oder gemäß ''etc/fstab'' aus dem Backup wie in [[Partitionierung]] beschrieben anlegen | ||
+ | Bitte Typ der Partitionstabelle (''gpt'' oder ''msdos'') beachten. | ||
==== Wiederherstellung LVM ==== | ==== Wiederherstellung LVM ==== | ||
Partitionierung anhand der Informationen aus der gesicherten Datei ''sicherung.pvdisplay'', ''sicherung.vgdisplay'', ''sicherung.lvdisplay'' und/oder gemäß ''etc/fstab'' aus dem Backup wie in [[lvm]] beschrieben anlegen (( | Partitionierung anhand der Informationen aus der gesicherten Datei ''sicherung.pvdisplay'', ''sicherung.vgdisplay'', ''sicherung.lvdisplay'' und/oder gemäß ''etc/fstab'' aus dem Backup wie in [[lvm]] beschrieben anlegen (( | ||
Zeile 254: | Zeile 268: | ||
oder | oder | ||
mkfs.vfat -i xxxxxxxx /dev/sdaX | mkfs.vfat -i xxxxxxxx /dev/sdaX | ||
- | ((Eine UUID die von ''blkid'' im Format ''%%UUID="066B-5CE0"%%'' ausgegeben wurde muss ''mkfs.vfat'' mit ''066B-5CE0'' (also ohne Minus) übergeben werden)) | + | ((Eine UUID die von ''blkid'' im Format ''%%UUID="066B-5CE0"%%'' ausgegeben wurde muss ''mkfs.vfat'' mit ''066B5CE0'' (also ohne Minus) übergeben werden)) |
... | ... | ||
Zeile 274: | Zeile 288: | ||
==== Wiederherstellen der Dateien mit rsync über ssh ==== | ==== Wiederherstellen der Dateien mit rsync über ssh ==== | ||
((mehr siehe [[rsync]])) | ((mehr siehe [[rsync]])) | ||
- | rsync -aH --acls --xattrs --numeric-ids --del -e ssh root@server:/mnt/backup/dateien/ /tmp/system | + | rsync -aSH --acls --xattrs --numeric-ids --del -e ssh root@server:/mnt/backup/dateien/ /tmp/system |
evtl. ACLs und erweiterte Dateisystemattribute berücksichtigen | evtl. ACLs und erweiterte Dateisystemattribute berücksichtigen | ||
Zeile 282: | Zeile 296: | ||
)) | )) | ||
=== Ubuntu === | === Ubuntu === | ||
- | rsync -aH --acls --xattrs --numeric-ids --del -e ssh --rsync-path="sudo rsync" user@server:/mnt/backup/dateien/ /tmp/system | + | rsync -aSH --acls --xattrs --numeric-ids --del -e ssh --rsync-path="sudo rsync" user@server:/mnt/backup/dateien/ /tmp/system |
=== Wiederherstellen der ACL-Dateirechte === | === Wiederherstellen der ACL-Dateirechte === | ||
Zeile 299: | Zeile 313: | ||
touch /tmp/system/.autorelabel | touch /tmp/system/.autorelabel | ||
- | ===== Bootloader wiederherstellen ===== | + | ===== Bootfähig machen ===== |
==== chroot vorbereiten ==== | ==== chroot vorbereiten ==== | ||
mount --rbind /dev /tmp/system/dev | mount --rbind /dev /tmp/system/dev | ||
Zeile 313: | Zeile 327: | ||
)) | )) | ||
- | bei UEFI-Systemen: | + | ==== UEFI ==== |
+ | (nur bei UEFI-Systemen) | ||
+ | |||
+ | === efivars schreibbar machen === | ||
mount -o rw,remount /tmp/system/sys/firmware/efi/efivars | mount -o rw,remount /tmp/system/sys/firmware/efi/efivars | ||
oder (falls ''/tmp/system/sys/firmware/efi/efivars'' kein mountpoint ist) | oder (falls ''/tmp/system/sys/firmware/efi/efivars'' kein mountpoint ist) | ||
mount -t efivarfs efivarfs /tmp/system/sys/firmware/efi/efivars | mount -t efivarfs efivarfs /tmp/system/sys/firmware/efi/efivars | ||
- | ==== Schritte im chroot Zielsystem ==== | + | === Schritte im chroot Zielsystem === |
chroot /tmp/system /bin/bash | chroot /tmp/system /bin/bash | ||
- | Bootloader wiederherstellen: entweder grub2 oder grub | + | === EFI Variablen schreiben === |
+ | ls /boot/efi/EFI/ | ||
+ | efi_label='Name der Distribution' | ||
+ | distro='DISTRIBUTION' | ||
+ | boot_device='/dev/sda' | ||
+ | esp_partition_id=2 | ||
+ | efibootmgr --create --disk "$boot_device" --part "$esp_partition_id" --label 'UEFI OS' --loader '\EFI\BOOT\BOOTX64.EFI' | ||
+ | efibootmgr --create --disk "$boot_device" --part "$esp_partition_id" --label "$efi_label" --loader '\EFI\$distro\SHIMX64.EFI' | ||
+ | |||
+ | === Grub2 konfigurieren === | ||
+ | |||
+ | In CentOS 8 BLSCFG abschalten: | ||
+ | <file txt /etc/default/grub> | ||
+ | … | ||
+ | GRUB_ENABLE_BLSCFG=false | ||
+ | … | ||
+ | </file> | ||
+ | TODO: Lösung mit BLSCFG finden | ||
+ | |||
+ | == CentOS == | ||
+ | grub2-mkconfig -o /boot/efi/EFI/$distro/grub.cfg | ||
+ | |||
+ | == Debian, Ubuntu == | ||
+ | dpkg-reconfigure grub-efi-amd64 | ||
+ | oder | ||
+ | update-grub2 | ||
+ | |||
+ | === EFI Variablen prüfen === | ||
+ | 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 === | ||
- | == Debian 6.0, Ubuntu 16.04 == | + | == Debian (ab 6.0), Ubuntu (ab 16.04) == |
grub-install /dev/sda | grub-install /dev/sda | ||
update-grub2 | update-grub2 | ||
Zeile 372: | Zeile 426: | ||
//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: ''/boot/efi/EFI/debian/grub.cfg'' | ||
==== Bootloader grub ==== | ==== Bootloader grub ==== | ||
''/boot/grub/menu.lst'' : | ''/boot/grub/menu.lst'' : | ||
Zeile 408: | Zeile 464: | ||
==== Kernel-Module und initrd ==== | ==== Kernel-Module und initrd ==== | ||
Je nach Änderung muß eine neue [[admin_grundlagen:initrd|initrd]] erzeugt werden und/oder die bei Booten geladenen Module müssen überarbeitet werden | Je nach Änderung muß eine neue [[admin_grundlagen:initrd|initrd]] erzeugt werden und/oder die bei Booten geladenen Module müssen überarbeitet werden | ||
+ | |||
+ | === dracut (CentOS 8) === | ||
+ | in der chroot-Umgebung | ||
+ | dracut --hostonly --persistent-policy 'by-uuid' --force /boot/initramfs-4.18.0-80.11.2.el8_0.x86_64.img 4.18.0-80.11.2.el8_0.x86_64 | ||
=== dracut (CentOS 7 / openSuSE 42.1) === | === dracut (CentOS 7 / openSuSE 42.1) === | ||
Zeile 423: | Zeile 483: | ||
==== tar über ssh ==== | ==== tar über ssh ==== | ||
=== Sicherung === | === Sicherung === | ||
- | tar cz --numeric-owner --xattrs --acls --directory /mnt/system . | ssh nutzer@server "cat > /mnt/backup/sicherung.tgz" | + | tar cz --numeric-owner --sparse --xattrs --acls --directory /mnt/system . | ssh nutzer@server "cat > /mnt/backup/sicherung.tgz" |
- | + | ||
- | Bei älteren Distributionen (SuSE bis SLES 11, Debian bis 7 und sehr alten RedHat) | + | |
- | tar cz --numeric-owner --directory /mnt/system . | ssh nutzer@server "cat > /mnt/backup/sicherung.tgz" | + | |
=== Wiederherstellen === | === Wiederherstellen === | ||
- | ssh nutzer@server 'cat /mnt/backup/sicherung.tgz' | tar xz --numeric-owner --xattrs --acls --xattrs-include='*' --directory /tmp/system | + | ssh nutzer@server 'cat /mnt/backup/sicherung.tgz' | tar xz --numeric-owner --sparse --xattrs --acls --xattrs-include='*' --directory /tmp/system |
=== Dokumentation === | === Dokumentation === | ||
Zeile 440: | Zeile 497: | ||
cd /mnt/system | cd /mnt/system | ||
- | find -xdev -depth -print0 | cpio -o0 --format=crc | bzip2 | ssh nutzer@server 'cat > /mnt/backup/sicherung.cpio.bz2' | + | find -xdev -depth -print0 | cpio -o0 --sparse --format=crc | bzip2 | ssh nutzer@server 'cat > /mnt/backup/sicherung.cpio.bz2' |
=== Wiederherstellen === | === Wiederherstellen === | ||
cd /tmp/system | cd /tmp/system | ||
- | ssh nutzer@server 'cat /mnt/backup/sicherung.cpio.bz2' | bunzip2 | cpio -dumin | + | ssh nutzer@server 'cat /mnt/backup/sicherung.cpio.bz2' | bunzip2 | cpio -dumin --sparse |
==== rsync ==== | ==== rsync ==== | ||
Auf lokale Platte: | Auf lokale Platte: | ||
- | rsync -ax --numeric-ids --del / /mnt/usbdisk/root/ | + | rsync -a --hard-links --sparse --acls --xattrs --numeric-ids --del / /mnt/usbdisk/root/ |
Übers Netz via ssh: | Übers Netz via ssh: | ||
- | rsync -ax --numeric-ids --del -e ssh / server:/mnt/backup/dateien | + | rsync -a --hard-links --sparse --acls --xattrs --numeric-ids --del / server:/mnt/backup/dateien |
Übers Netz via rsyncd: (( erfordert laufenden rsyncd auf dem Zielsystem //server// )) | Übers Netz via rsyncd: (( erfordert laufenden rsyncd auf dem Zielsystem //server// )) | ||
- | rsync -ax --numeric-ids --del / server::/backup/dateien/ | + | rsync -a --hard-links --sparse --acls --xattrs --numeric-ids --del / server::/backup/dateien/ |
==== Platzsparende Hardlink Backups mit rsnapshot ==== | ==== Platzsparende Hardlink Backups mit rsnapshot ==== |