Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Deutsches Forum (German) Deutsche Dokumentation
  • Search

Systemwiederherstellung mit btrfs.

Dokumentation, Tipps und Tricks.
Post Reply
  • Print view
Advanced search
4 posts • Page 1 of 1
Author
Message
Klaus Meier
Advocate
Advocate
User avatar
Posts: 2908
Joined: Mon Apr 18, 2005 8:08 pm
Location: Bozen

Systemwiederherstellung mit btrfs.

  • Quote

Post by Klaus Meier » Sun Jul 19, 2015 10:28 am

Mit btrfs kann man ja mit Hilfe der Snapshotfunktion wunderbar das System im laufenden Betrieb sichern (und davon dann auch bootbare Backups erstellen). Dies ist recht trivial. Hier meine Variante, ich starte dieses Script jeden Tag als erstes, wenn ich den Rechner einschalte. Und bevor ich größere Umbauten vornehme. Die letzte Sicherung steht in /backup/1, das vom Tag davor in 2 usw. Die Snapshots werden mit -r angelegt, damit man sie nicht mehr verändern kann, z.B. wenn das Restore-Script Amok läuft oder man sonst etwas damit anstellt.

Code: Select all

#! /bin/bash
Pfad=/backup
if ! test -d $Pfad
then
	mkdir $Pfad
fi
cd $Pfad
if test -d 3
then
	btrfs sub del 3
fi
if test -d 2
then
	echo 2 wird nach 3 verschoben
	mv 2 3
fi
if test -d 1
then
	echo 1 wird nach 2 verschoben
        mv 1 2
fi
btrfs sub snap -r / 1
Mit der Wiederherstellung habe ich mich sehr schwer getan, bis ich da eine brauchbare Lösung gefunden habe. Im Prinzip hat mich der Artikel in der c't über Suse auf den richtigen Pfad gebracht. Bei Suse wird aber jeder Ordner, in dem sich etwas ändert, als Subvolume angelegt. Dieser Weg ging bei mir voll in die Hose, da ich gerne einen vollständigen Snapshot erstelle. Und leider werden Subvolumes, die sich in einem Subvolume befinden, bei einem Snapshot nicht mit gesichert und darüber hinaus auch noch als leerer Ordner gespeichert. Das hat durchaus seine Berechtigung, z.B. wenn man /home als Subvolume anlegt, kann man / ganz einfach ohne /home sichern, hat aber massive Nachteile. Was man an dem Subvolume /var/lib/machines sieht. Dieser wird bei mir als Subvolume erstellt und durch den Snapshot in einen leeren Ordner umgewandelt. Ok, leer ist er sowieso immer, zu was wird der eigentlich gebraucht?

Solange das System noch läuft muss man diese Wiederherstellung nicht aufrufen. Man kann ja Dateien, die man gelöscht oder kaputt editiert hat, manuell aus dem Snapshot wiederherstellen. Wenn das System aber nicht mehr starten will, entweder weil ein Update in die Hose gegangen ist oder man emerge -C glibc gemacht hat, dann hilft folgendes Script. Das System wird auf den Stand von /backup/1 versetzt, mit Ausnahme von /usr/portage und /var/lib/layman. Die bleiben erhalten. Zum einen verhindern diese Ordner ja keinen Systemstart und wenn ein Update in die Hose gegangen ist, dann hat man genau diese Updates wieder vor der Nase und kann analysieren, an welchem es lag. Und alles, was man sonst noch so hatte, ist in /backup/Jetzt gespeichert. Wenn man Änderungen an world oder USE-Flags gemacht hat, dann kann man sich die Dateien aus diesem Ordner zurückkopieren.

Man startet dazu ein Rettungssystem, mountet sein System nach /mnt/gentoo und startet dieses Script. Aber aufpassen, man sollte es vorher sichern. Wenn man es gerade erst auf sein System kopiert hat und es sich noch nicht im /bakup/1 befindet, ist es nach der Wiederherstellung nicht mehr in $PATH vorhanden und befindet sich nur noch in /backup/Jetzt. Wenn man nicht daran denkt, ist es irgendwann ganz weg. Die Ordner werden mit reflink=auto kopiert, weil ich für /var/log cow abgeschaltet habe.

Ansonsten bitte noch mit Vorsicht anwenden, es muss noch ausführlich getestet werden. Eventuell haben sich noch Fehler versteckt. Und es funktioniert auch nur, wenn man vorher das oben aufgeführte Backup-Script ausgeführt hat.

Code: Select all

#! /bin/bash
Sicherung=backup/Jetzt
Backup=backup/1
cd /mnt/gentoo
#
# Testen, ob Backup vorhanden ist
if ! test -d $Backup
then
	echo $Backup ist nicht vorhanden
	exit
fi
#
# Ordner von alter Sicherung entfernen falls vorhanden
if test -d $Sicherung
then
	if test -d $Sicherung/var/lib/machines
	then
		btrfs sub del $Sicherung/var/lib/machines
	fi
	btrfs sub del $Sicherung
fi
btrfs sub create $Sicherung
#
# Ordner in Jetzt sichern und aus 1 wiederherstellen
for Ordner in bin boot etc lib32 lib64 opt sbin
do
	echo $Ordner wird wiederhergestellt
	mv $Ordner $Sicherung/
	cp -a --reflink=auto $Backup/$Ordner .
done
#
# Bei usr zusätzlich aktuelles portage zwischenspeichern und wiederherstellen
Ordner=usr
echo $Ordner wird wiederhergestellt
mv $Ordner/portage $Sicherung/
mv $Ordner $Sicherung/
cp -a --reflink=auto $Backup/$Ordner .
mv $Ordner/portage $Sicherung/$Ordner/
mv $Sicherung/portage $Ordner/
#
# Bei var zusätzlich aktuelles layman zwischenspeichern und wiederherstellen
# machines wird durch den Snapshot vom subvolume zum Ordner.
Ordner=var
echo $Ordner wird wiederhergestellt
mv $Ordner/lib/layman $Sicherung/
mv $Ordner $Sicherung/
cp -a --reflink=auto $Backup/$Ordner .
mv $Ordner/lib/layman $Sicherung/$Ordner/lib/
mv $Sicherung/layman $a/lib/
rmdir $Ordner/lib/machines
btrfs sub create $Ordner/lib/machines
chmod 700 $Ordner/lib/machines
#
# Sicher ist sicher...
echo Warten, bis alle Operationen abgeschlossen sind
btrfs sub sync /mnt/gentoo
btrfs file sync /mnt/gentoo
Last edited by Klaus Meier on Tue Jul 21, 2015 10:12 am, edited 3 times in total.
Top
toralf
Developer
Developer
User avatar
Posts: 3944
Joined: Sun Feb 01, 2004 2:58 pm
Location: Hamburg
Contact:
Contact toralf
Website

Re: Backup und Restore mit btrfs.

  • Quote

Post by toralf » Sun Jul 19, 2015 12:43 pm

Klaus Meier wrote:Eventuell haben sich noch Fehler versteckt.
Und ob, hier fehlt ein "t" :
Klaus Meier wrote:

Code: Select all

echo Warten, bis alle Operaionen abgeschlossen sind
:-)
Top
Klaus Meier
Advocate
Advocate
User avatar
Posts: 2908
Joined: Mon Apr 18, 2005 8:08 pm
Location: Bozen

  • Quote

Post by Klaus Meier » Mon Jul 20, 2015 6:05 am

Also, wenn das der einzige Fehler sein sollte, ich habe ich bislang auf die ausgeführten Befehle konzentriert....
Top
py-ro
Veteran
Veteran
User avatar
Posts: 1734
Joined: Tue Sep 24, 2002 11:55 am
Location: Velbert
Contact:
Contact py-ro
Website

  • Quote

Post by py-ro » Mon Jul 20, 2015 3:46 pm

Soweit ganz anschaulich, aber bitte qualifiziere das nicht als Backup, es ist genauso wenig ein Backup wie RAID ein Backup ist.

Ich wäre dankbar, wenn Du den Titel anpassen würdest.

Ansonsten danke für die Arbeit die Du hinein gesteckt hast!

Bye
Py
Top
Post Reply
  • Print view

4 posts • Page 1 of 1

Return to “Deutsche Dokumentation”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy