/dev/sdaX
ist hier nur ein Beispiel für das root-Device. Liegt das /-Dateisystem auf einem Logical Volume, dann heißt das root-Device /dev/mapper/xxx
oder ähnlichDies ist eine alte Version des Dokuments!
Zuverlässiger ( z.B. offene Dateien ) und möglicherweise einfacher ( z.B. udev ) ist es aus einem Rettungssystem heraus zu sichern. Die folgende Anleitung zeigt dagegen wie man aus einem laufenden System heraus sichert. Hürden wie eine nach /dev
gemountete Ramdisk für udev
werden dabei gemeistert. Dienste wie Mailserver oder Datenbanken ( offene Dateien ) sollten vorher angehalten werden.
evtl. Platz schaffen wie in Plattenplatz, Partitionierung und lvm beschrieben
mkdir /mnt/backup
df -h mkdir /mnt/system mount --bind / /mnt/system mount --bind /boot /mnt/system/boot
evtl. weitere Verzeichnisse/Partitionen entsprechend der Ausgabe von df
rsync -a --numeric-ids --del -e ssh /mnt/system/ root@server:/mnt/backup
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 rsync via sudo ohne Passwort erlaubt:
sudo visudo
und diese Zeile ergänzen:
@admin ALL=(ALL) NOPASSWD: ALL
Und dann lautet der Befehl zum Backup:
rsync -a --numeric-ids --del -e ssh --rsync-path="sudo rsync" /mnt/system/ user@zielsystem:/mnt/backup
RedHat's Versionen von tar
und rsync
können mit ACLs und erweiterten Dateiattributen umgehen. Dazu die Optionen –xattrs
( tar
) oder –xattrs –acls
( rsync
) angeben.
nur nötig, wenn tar
oder rsync
das nicht kann
cd /mnt/system getfacl --skip-base -P -R . > sicherung.acl scp sicherung.acl root@server:/mnt/backup
nur nötig, wenn tar
oder rsync
das nicht kann
cd /mnt/system getfattr -Rh -m . -d . > sicherung.attr scp sicherung.attr root@server:/mnt/backup
Beispiel ext3:
tune2fs -l /dev/sdaX > sicherung.tune2fs.sdaX scp sicherung.tune2fs.sdaX root@server:/mnt/backup
Exakte Vorgehensweise siehe partitionierung, wenn die Wiederherstellung nicht automatisiert erfolgen muß reicht auch die Ausgabe von parted
oder df
parted /dev/sda print > sicherung.parted scp sicherung.parted root@server:/mnt/backup
alternativ
sfdisk -d /dev/sda > sicherung.sfdisk scp sicherung.sfdisk root@server:/mnt/backup
pvdisplay > sicherung.pvdisplay vgdisplay > sicherung.vgdisplay lvdisplay > sicherung.lvdisplay scp sicherung.pvdisplay sicherung.vgdisplay sicherung.lvdisplay root@server:/mnt/backup
dd if=/dev/zero of=/dev/sda
… und nach ein paar Sekunden ist das System zumindest unbrauchbar.
dd if=/dev/urandom of=/dev/sda
wipe /dev/sda
Rettungssystem / Knoppix booten
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.pvdisplay
, sicherung.vgdisplay
, sicherung.lvdisplay
und/oder gemäß etc/fstab
aus dem Backup wie in lvm beschrieben anlegen
mkswap /dev/sdaY
Mountpoints mit mkdir
anlegen und Dateisysteme mit mount
einhängen: 3)
4)
mkdir /tmp/system mount /dev/sdaX /tmp/system
mkdir /tmp/system/boot mount /dev/sdaY /tmp/system/boot
…
rsync -a --numeric-ids --del -e ssh root@server:/mnt/backup/ /tmp/system
evtl. ACLs und erweiterte Dateisystemattribute berücksichtigen
nur nötig, wenn tar
das nicht kann
cd /tmp/system setfacl --restore sicherung.acl
nur nötig, wenn tar
das nicht kann
( nicht erfolgreich getestet … )
cd /tmp/system setfacl -h --restore sicherung.attr
oder
touch /tmp/system/.autorelabel
Mir ist kein automatischer Weg bekannt … daher:
tune2fs .... ( UUID, Dateisystem-Label, Mountoptionen, ... )
mount --bind /dev /tmp/system/dev mount --bind /proc /tmp/system/proc
chroot /tmp/system
Grub in den MBR schreiben:
grub > root (hd0,0) > setup (hd0) > quit
oder mit
grub-install --recheck --no-floppy hd0
Je nach dem wie sich die Hardware geändert hat, sind folgende Bereiche anzupassen:
/boot/grub/menu.lst
:
Neue Partitionsnummern beachten, wichtig sind z.B.
root
) in Grub-Terminologie/boot/vmlinuz*
oder /vmlinuz*
)root= …
)
/etc/fstab
:
Neue Partitionsnummern, Software-RAID und Logical Volumes beachten
Je nach Änderung muß eine neue initrd erzeugt werden und/oder die bei Booten geladenen Module müssen überarbeitet werden
Gerätenamen in /etc/udev/rules.d
anpassen
Installation mit
apt-get install rsnapshot
Konfiguration unter:
/etc/rsnapshot.conf
Dabei wichtig:
snapshot_root - wohin soll gesichert werden interval daily 7 - Wieviele Versionen vom täglichen Backup sollen behalten werden? interval weekly 4 - Wieviele Versionen vom wöchentlichen Backup sollen behalten werden? interval monthly 6 - Wieviele Versionen vom monatlichen Backup sollen behalten werden? backup /quelle zielrechner/ - Zb localhost/ oder im Zusammenhang mit SSH gebrauchen
Testen der Config
rsnapshot configtest
Danach kann man das Ganze erst einmal im Probedurchlauf testen ohne wirklich Dateien zu schreiben:
rsnapshot -t daily
tar cz --numeric-owner --directory /mnt/system . | ssh nutzer@server "cat > /mnt/backup/sicherung.tgz"
Fedora 7, Centos 5:
tar cz --numeric-owner --xattrs --directory /mnt/system . | ssh nutzer@server "cat > /mnt/backup/sicherung.tgz"
cd /pfad/zur/quelle && tar -cpP --atime-preserve -f - . | ssh user@server "( cd /pfad/zum/ziel && tar -xpvP --atime-preserve -f - )"
cd /mnt/system find -mount -depth -print0 | cpio -o0 --format=crc | bzip2 | ssh nutzer@server 'cat > /mnt/backup/sicherung.cpio.bz2'
ssh nutzer@server 'cat /mnt/backup/sicherung.tgz' | tar xz --numeric-owner --directory /tmp/system
cd /tmp/system ssh nutzer@server 'cat /mnt/backup/sicherung.cpio.bz2' | bunzip2 | cpio -dumin
Auf lokale Platte:
rsync -ax --numeric-ids --delete / /mnt/usbdisk/root/
Übers Netz via ssh:
rsync -ax --numeric-ids --delete -e ssh / server:/mnt/usbdisk/root/
Übers Netz via rsyncd: 8)
rsync -ax --numeric-ids --delete / server::/mnt/usbdisk/root/
Auf modernen Linux-Installationen wird wegen udev das Verzeichnis /dev
von einem temporären Dateisystem überdeckt. Linux benötigt diese überdeckten Dateien aber beim Booten.
Lösungswege:
/dev
explizit angeben. Die wichtigsten Gerätedateien sollten auch darin enthalten sein.mkdir /tmp/system && mount –bind / /tmp/system
zugreifen. Die Sicherung muß man dann mit tar czpf /dev/st0 –numeric-owner –directory /tmp/system .
starten. FRAGE: das müsste doch durch die bind-mounts nach /mnt/system gelöst sein, oder?!
/dev/sdaX
ist hier nur ein Beispiel für das root-Device. Liegt das /-Dateisystem auf einem Logical Volume, dann heißt das root-Device /dev/mapper/xxx
oder ähnlich/dev/sdaY
ist hier nur ein Beispiel für das boot-Device. Liegt das /boot-Dateisystem auf einem Logical Volume, dann heißt das boot-Device /dev/mapper/xxx
oder ähnlich