btrfs - Jedi-Ritter System - per script ein snapshot vor dem Update

xsid

Active member
Registriert
29 Mai 2007
Beiträge
4.621
aus: https://thinkpad-forum.de/threads/2...ux-Distribution-gesucht?p=2209342#post2209342

was beim Einsatz von btrfs kein problem darstellt.
Einfach per script ein snapshot vor dem Update machen und man kann immer wieder zurück - auch über das Bootmenu von Grub 2 wenn man es 1x einrichtet.

Ich habe das ständige installieren / updaten der ganzen Distros satt, wenn sie alle paar Jahre auslaufen. Ein rolling release - in meinem Falle arch linux - mit ausgewählter Software ist für mich die beste Wahl.
Ich kann nur jedem Linux-Interssierten mal empfehlen, dem Nick von unicks.eu mal zuzuhören - die Playlist "arch my way" war hier für mich sehr zielführend.

Hallo GI-Joe,

Du schreibst "man kann immer wieder zurück - auch über das Bootmenu von Grub 2 wenn man es 1x einrichtet.", wie hast Du das eingerichtet?

Kennst Du auch timeshift?

https://github.com/teejee2008/timeshift/wiki/Restoring-Snapshots

MfG
xsid

###########################################################################################################
Hier wird manchmal angepasst!
6. Mai. 2020

Siehe Fehler: https://thinkpad-forum.de/threads/2...r-dem-Update?p=2236072&viewfull=1#post2236072 06.05.2020

Konzeptübersicht

8ejBF0O.jpg


@ ist das „top-level subvolume“, also die Wurzel eines btrfs-Dateisystems, hat immer die ID 5.

Kurzkurzanleitung, GI-Joe, Teilparts unkonventionell, #24

https://thinkpad-forum.de/threads/2...ift-Nov-2019?p=2210895&viewfull=1#post2210895

Kurzkurzanleitung, GI-Joe, Version 2, #95


https://thinkpad-forum.de/threads/2...System-11-19?p=2211720&viewfull=1#post2211720

Kernel am Anfang kopieren, auch für Abgleich:

Code:
[root@arch boot]# cp initramfs-linux.img initramfs-linux-stable.img
[root@arch boot]# cp initramfs-linux.img initramfs-linux-oldstable.img
[root@arch boot]# cp vmlinuz-linux vmlinuz-linux-stable
[root@arch boot]# cp vmlinuz-linux vmlinuz-linux-oldstable

Code:
sudo cp /boot/vmlinuz-linux-lts /boot/vmlinuz-linux-lts-stable
sudo cp /boot/vmlinuz-linux-lts /boot/vmlinuz-linux-lts-oldstable
sudo cp /boot/initramfs-linux-lts.img /boot/initramfs-linux-lts-stable.img
sudo cp /boot/initramfs-linux-lts.img /boot/initramfs-linux-lts-oldstable.img


4 unterschiedliche /etc/fstab
hier sind noch Fehler enthalten, Berichtigung siehe ---> https://thinkpad-forum.de/threads/2...ate-Nov-2019?p=2213444&viewfull=1#post2213444

https://nopaste.linux-dev.org/?1277211

Händisch angepasste: /boot/grub/grub.cfg [beachte! rootflags=subvol=@snapshots............]

https://nopaste.linux-dev.org/?1277194

Meine /etc/grub.d/40_custom

https://nopaste.linux-dev.org/?1279542


Anpassung von grub [ https://www.gnu.org/software/grub/manual/grub/grub.html ]

Code:
chmod 644 /etc/grub.d/10_linux
cp /etc/grub.d/10_linux /etc/grub.d/disabled_10_linux
chmod 644 /etc/grub.d/20_linux_xen
cp /etc/grub.d/20_linux_xen /etc/grub.d/disabled_20_linux_xen
chmod 644 /etc/grub.d/30_os-prober
cp /etc/grub.d/30_os-prober /etc/grub.d/disabled_30_os-prober
cp /boot/grub/grub.cfg /boot/grub/grub.cfg.old
grub-mkconfig -o /boot/grub/grub.cfg
systemctl reboot

So sieht Grub dann aus:

DFPqtpD.jpg


submenu 'Advanced options for Arch Linux'

acRXrKi.jpg




Handwerkszeug, Script, erfolgreich angewandt:


https://www.dropbox.com/s/ju13bjbw09mpzaq/update.sh?dl=0

https://nopaste.linux-dev.org/?1277171

Gespeichert in: ~/.scripte/

Code:
sudo chmod 750  update.sh


Erweiterte Scripte von GI-Joe mit LTS-Kernel, reflector und pikaur aus den AUR:

(Siehe Posting #95)
Scripte GI-Joe, vom 8. Dezember 2019 ...

snapshot+systemupdate.sh https://pastebin.com/M8F2pSu2

rollback_stable_nach_testing.sh https://pastebin.com/uRNvfFuw

rollback_oldstable_nach_stable_und_testing.sh https://pastebin.com/iBmjx8GY

Zur einwandfreien Funktion der Scripte muss pacman-contrib und reflector installiert sein:
Code:
pacman -S pacman-contrib reflector

chmod ist auch erforderlich:
Code:
sudo chmod 750 ..............

- abspeichern in ~/.scripte/ oder /usr/local/bin oder wo man möchte

chmod
http://www.onlineconversion.com/html_chmod_calculator.htm

Die drei Scripte von GI-Joe funktionieren einwandfrei, getestet am 11. Dezember 2019.
 
Zuletzt bearbeitet:
ups, nun ist mein ganzer Text weg :(
geantwortet - text wurde im Posting angezeigt.
Nochmal bearbeitet, Text ist wech :(

naja, dann nu nochmal ....

- - - Beitrag zusammengeführt - - -

Hallo GI-Joe,

Du schreibst "man kann immer wieder zurück - auch über das Bootmenu von Grub 2 wenn man es 1x einrichtet.", wie hast Du das eingerichtet?

Kennst Du auch timeshift?

https://github.com/teejee2008/timeshift/wiki/Restoring-Snapshots

MfG
xsid

nee , timeshift kenn ich nicht aber das sieht mir nach rsync + hardlinks aus - sowas will ich nicht.

BTRFS bringt durch sein CopyOnWrite ein leistungfähiges und schnelles Snapshoting mit.

die Einrichtung ist bisschen Handarbeit, aber es lohnt sich und als archlinux-user ist Handarbeit kein Problem ;)

eine gute Übersicht über die erforderlichen findet man hier: ab Timecode 5:00 min
und hier ab Anfang.

- - - Beitrag zusammengeführt - - -

es gibt im Prinzip 3 Snapshots:
TESTING (damit arbeite ich täglich)
STABLE
OLDSTABLE


Vor dem Update wird folgendes gemacht:
# -------- make new OLDSTABLE --------
$SUDO $BTRFS subvolume delete /.snapshots/OLDSTABLE
$SUDO $MV /.snapshots/STABLE /.snapshots/OLDSTABLE
$SUDO $SED -i 's/STABLE/OLDSTABLE/g' /.snapshots/OLDSTABLE/etc/fstab
$SUDO $CP /boot/vmlinuz-linux-stable /boot/vmlinuz-linux-oldstable
$SUDO $CP /boot/initramfs-linux-stable.img /boot/initramfs-linux-oldstable.img

# --------- make new STABLE ----------
$SUDO $BTRFS subvolume snapshot / /.snapshots/STABLE
$SUDO $SED -i 's/TESTING/STABLE/g' /.snapshots/STABLE/etc/fstab
$SUDO $CP /boot/vmlinuz-linux /boot/vmlinuz-linux-stable
$SUDO $CP /boot/initramfs-linux.img /boot/initramfs-linux-stable.img

dann folgt das Update und dabei wenn was in die Hose geht, kann ich im grub2-menu einfach mit STABLE (ist ja das TESTING vor dem Update) booten und weitere Maßnahmen ergreifen ....

mein TESTING /etc/fstab -Eintrag für / sieht so aus ....
LABEL=ROOT / btrfs rw,noatime,compress=lzo,ssd,space_cache,subvol=/@snapshots/TESTING 0 0

mein Eintrag in der /boot/grub/grub.cfg sieht u.a. so aus ....
menuentry 'Arch Linux TESTING' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-22617c40-a25f-440e-99bf-050edfdcd822' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 adcfbcd8-897e-47e7-8a21-04a6642d2926
else
search --no-floppy --fs-uuid --set=root adcfbcd8-897e-47e7-8a21-04a6642d2926
fi
echo 'Loading Linux TESTING ...'
linux /vmlinuz-linux root=UUID=22617c40-a25f-440e-99bf-050edfdcd822 rw rootflags=subvol=@snapshots/TESTING loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}



kann man hier nicht alles im Detail beschreiben, schaut Euch die Tutorial-Videos von Nick an, das ist echt gut und Step By Step erklärt ....
 
ups, nun ist mein ganzer Text weg
geantwortet - text wurde im Posting angezeigt.
Nochmal bearbeitet, Text ist wech

naja, dann nu nochmal ....
Nochmal war ganz falsch. Beachte bitte, welche Hinweise dir die Forensoftware anzeigt.

Dein Beitrag musste nach dem Edit (in dem du vermutlich die Links hinzugefügt hast) von einem Moderator überprüft und freigeschaltet werden. Und das wurde dir angezeigt.
Dann denselben Beitrag noch mal zu verfassen, anstatt zu warten, macht dir und uns nur unnötige Arbeit.
 
Nochmal war ganz falsch. Beachte bitte, welche Hinweise dir die Forensoftware anzeigt.

Dein Beitrag musste nach dem Edit (in dem du vermutlich die Links hinzugefügt hast) von einem Moderator überprüft und freigeschaltet werden. Und das wurde dir angezeigt.
Dann denselben Beitrag noch mal zu verfassen, anstatt zu warten, macht dir und uns nur unnötige Arbeit.
ok, danke für die Info.
Sowas kenne ich aus meinen anderen Foren nicht - darum die Nichtbeachtung der Infoanzeige und die daraus resultierende Verwirrung, aber man lernt ja immer gern dazu :)
 
bei btrfs snapshots sagst du dem Dateisystem "merk dir den aktuellen stand unter dem namen xy".
Durch das erstellen des Snapshots werden jedoch noch keine Daten Kopiert.
Erst wenn du eine Datei änderst wird diese tatsächlich kopiert.
 
Was ist eigendlich aus der "deprecated" Meldung von btrfs vor ~ 2 Jahren geworden?
 
Etwas schillernd vielleicht, aber hat das aktuelle NTFS sich etwas von ZFS bzw. btrfs abgesehen oder umgekehrt ?
 
welche Vorteile hat die Lösung mit btrfs?
so, mal BTT .... :rolleyes:

btrfs hat viele Vorteile - ein paar Nachteile natürlich auch ....
und bis auf die RAID 5/RAID6 - Funktionen gilt btrfs als stable - auch ggf. mit RAID 0/1/10

Die Vorteile, die für mich im Moment hervorstechend sind und die ich gerade gern benutze :
1. es wird eine große Partition gemacht und alle anderen Aufteilungen kann man in Subvolumes machen (/ /home /var u.s.w.), die man dann innerhalb von Sekunden snapshot´ en kann.
Auf jedem Subvolume steht zunächst erst einmal der Volle Plattenplatz zur Verfügung - also keine Vorüberlegungen/Entscheidungen mehr wie z.B. "wie groß mache ich / , wie groß mache ich /home u.s.w.
2. readonly-snapshots - zur Beackup-Vorbereitung und als gute Hürde vor Crypto-Trojaner
3. superschnelles inkrementelles Backup mittels btrfs send | btrfs recieve auf z.B. eine USB-Festplatte (die auch mit BTRFS formatiert ist)
4. tranparente Komprimierung im Hintergrund


Ein paar Nachteile (für mich aber eher keine weil ich damit leben kann ....) gibts natürlich auch:
1. btrfs ist minimal langsamer als z.B. ext4 - gerade bei eingeschalteter Komprimierung
2. bei RAID und/oder Hintergrund-Komprimierung hat man ein bisschen mehr CPU-Last (IMHO aber eher vernachlässigbar)3. ein btrfs benötigt ab und zu ein wenig Pflege, damit es sauber und performant bleibt (scrub, check, balance)
3. es werden Metadaten mit angelegt, was Festplattenplatz benötigt. Je mehr Snapshots man macht (und sie nicht irgendwann wieder löscht), desto mehr Metadaten fallen an.
 
Zuletzt bearbeitet:
nee , timeshift kenn ich nicht aber das sieht mir nach rsync + hardlinks aus - sowas will ich nicht.

Hallo Lesende,

was für Nachteile hat das?

Wo ist der Speicherbedarf größer, bei timeshift oder bei der btrfs Lösung?

So richtig traue ich mich an btrfs noch nicht ran.

MfG

xsid
 
was für Nachteile hat das?
Offsite: Egal. Onsite: Rollback ist praktisch "sofort" verfügbar.
Wo ist der Speicherbedarf größer, bei timeshift oder bei der btrfs Lösung?
Auch egal. Bei rsync nimmt man normalerweise Hardlinks aka inodes, Snapshots basieren im Prinzip auf einem ähnichen Mechanismus. BTRFS und RSYNC bieten keinen Schutz vor Bitrotting - da brauchst du ZFS.
 
Hallo Lesende,
was für Nachteile hat das?
Wo ist der Speicherbedarf größer, bei timeshift oder bei der btrfs Lösung?
So richtig traue ich mich an btrfs noch nicht ran.
MfG
xsid

bei btrfs kann ich mal eben wenn ich will auch von älteren Snapshots booten, was mir persönlich sehr gut gefällt.
Bei Timeshift kann ich mein System zwar wiederherstellen auf einen vorherigen Stand aber das nur mit Mehraufwand und falls ich verschiedene Versionen booten will wegen Fehlersuche z.B. wirds kniffelig.
Auch finde ich bei BTRFS die Hintergrund-Komprimierung ein nettes Feature.
 
Hallo GI-Joe,

zeigst Du uns deine Partitionen?

Code:
parted -l

Hast Du ein Dualbootsystem, Windows - Linux?

Bestimmt seit 4 - 5 Jahren habe ich btrfs im Blickwinkel.
btrfs paßt besser zu einem Archsystem, weil ohne AUR (timeshift) auskommt.

MfG

xsid
 
Zuletzt bearbeitet:
Hallo GI-Joe,

zeigst Du uns deine Partitionen?

Code:
parted -l

Hast Du ein Dualbootsystem, Windows - Linux?

Bestimmt seit 4 - 5 Jahren habe ich btrfs im Blickwinkel.
btrfs paßt besser zu einem Archsystem, weil ohne AUR (timeshift) auskommt.

MfG

xsid
Auf dem SL500 meiner Frau hab ich Dualboot mit Archlinux und WinXP, auf meinem X61 und auf meinem T61 standalone Archlinux.
Dem Grub2 ist das aber egal bzgl. BTRFS, ist halt beim Dualboot-Rechner 1 Eintrag mehr ....

parted -l geht gerade nicht, da ich gerade auf den Weg zum Flieger in den Urlaub bin ....
Wenn ich wieder Zugriff auf mein T61 und das Internat hab, mach ich das gern ....

Obwohl parted IMHO keine Subvolumes von BTRFS anzeigt - das wäre entscheidend ....
Ich schau mal, was ich noch so liefern kann.
Aber eigentlich ist in dem Video alles schon super erklärt (siehe Link oben ....) ;)


- - - Beitrag zusammengeführt - - -


So, ich hab nochmal ein paar outputs von meiner Konfiguration.




[gero@x61archmachine ~]$ sudo parted -l
Modell: ATA Patriot Burst (scsi)
Festplatte /dev/sda: 960GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags:


Nummer Anfang Ende Größe Typ Dateisystem Flags
1 1049kB 538MB 537MB primary ext4
2 538MB 855GB 854GB primary btrfs
3 855GB 864GB 8590MB primary linux-swap(v1)






[gero@x61archmachine ~]$ sudo btrfs filesystem usage /
Overall:
Device size: 795.75GiB
Device allocated: 63.02GiB
Device unallocated: 732.73GiB
Device missing: 0.00B
Used: 59.85GiB
Free (estimated): 733.56GiB (min: 367.20GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 117.38MiB (used: 0.00B)


Data,single: Size:59.01GiB, Used:58.18GiB
/dev/sda2 59.01GiB


Metadata,DUP: Size:2.00GiB, Used:858.95MiB
/dev/sda2 4.00GiB


System,DUP: Size:8.00MiB, Used:16.00KiB
/dev/sda2 16.00MiB


Unallocated:
/dev/sda2 732.73GiB






[gero@x61archmachine ~]$ cat /etc/fstab
# /dev/sda2 UUID=22617c40-a25f-440e-99bf-050edfdcd822
LABEL=ROOT / btrfs rw,noatime,compress=lzo,ssd,space_cache,subvol=/@snapshots/TESTING 0 0


# /dev/sda1 UUID=adcfbcd8-897e-47e7-8a21-04a6642d2926
LABEL=BOOT /boot ext4 rw,relatime 0 2


# /dev/sda2 UUID=22617c40-a25f-440e-99bf-050edfdcd822
LABEL=ROOT /home btrfs rw,noatime,compress=lzo,ssd,space_cache,subvol=/@home 0 0


# /dev/sda2 UUID=22617c40-a25f-440e-99bf-050edfdcd822
LABEL=ROOT /btrfs btrfs rw,noatime,compress=lzo,ssd,space_cache,subvolid=5 0 0


# /dev/sda2 UUID=22617c40-a25f-440e-99bf-050edfdcd822
LABEL=ROOT /.snapshots btrfs rw,noatime,compress=lzo,ssd,space_cache,subvol=/@snapshots 0 0


# /dev/sda2 UUID=22617c40-a25f-440e-99bf-050edfdcd822
LABEL=ROOT /var/cache/pacman/pkg btrfs rw,noatime,compress=lzo,ssd,space_cache,subvol=/@pkg 0 0


# /dev/sda3 UUID=b26a9810-408d-4dd6-8e20-4a9bb874477a
LABEL=SWAP none swap defaults 0 0


tmpfs /ramdisk tmpfs noatime,nodev,nosuid,size=2G 0 0
 
Zuletzt bearbeitet:
Hallo,

Code:
Nummer Anfang Ende Größe Typ Dateisystem Flags
1 1049kB 538MB 537MB primary ext4
2 538MB 855GB 854GB primary btrfs
3 855GB 864GB 8590MB primary linux-swap(v1)

Wie sieht es bei deinem anderen ThinkPad mit Windows XP aus?
Muss die ext4 am Anfang stehen?

MfG

xsid
 
Wie sieht es bei deinem anderen ThinkPad mit Windows XP aus?
Muss die ext4 am Anfang stehen?
MfG
xsid

Linux ist das völlig egal und der /boot - Partition auch, denn der Grub-Bootloader wird ja in den MBR der Festplatte installiert und der sucht sich dann schon seine /boot - Partition mit der entsprechenden Config ....
XP wurde bei unserem SL500 damals auf der ersten Partition installiert, da gibt es auch noch ne 2. Partition "D:" .
Danach kannste eigentlich alles machen was Du willst, denn das lässt sich alles konfigurieren in den grub config-files bzw. in der /etc/fstab .
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben