logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
16. September 2025, 06:56:22
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Allgemeine Diskussionen  |  Thema: btrfs Subvolumen auf einen anderen Dateisystem transportieren « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: btrfs Subvolumen auf einen anderen Dateisystem transportieren  (Gelesen 354 mal)
Sebastian
YaBB God
*****

Offline

Einträge: 774





Profil anzeigen
btrfs Subvolumen auf einen anderen Dateisystem transportieren
« am: 15. Juli 2025, 15:57:11 »

Hallo Suletuxe,

Andreas hatte mich durch eine Unterhaltung mit ihm auf eine Idee gebracht. Die ich unbedingt ausprobieren wollte.

Das man btrfs Subvolumen mithilfe von btrfs send auch als Datei Speichern kann ist bekannt und im Internet auch gut dokumentiert.

Kann man jetzt aber auch auf dieselbe Art und weiße Differenzielle Subvolumen als Datei speichern (Also Snapshots die auf einen Eltern Snapshot aufbauen)? Um diese vielleicht über ein anderes Dateisystem wie z.B. ext4 zu transportieren?

Die Antwort ist: ja es geht!

Und zwar habe ich dies durch einen kurzen Test ausprobiert:

Code:

# Erstelle das Subvolumen sub1 im aktuellen verzeichnis zum befüllen.
btrfs subvolumen create sub1
echo "Das ist ein Test" >sub1/test.txt

# Erstelle aus sub1 einen Readonly Snapshot um diesen in eine Datei zu senden
btrfs subvolumen snapshot -r sub1 sub1_ro_snap
btrfs send -f sub1_ro_snap.bsub sub1_ro_snap

# Führe eine Änderung an sub1 durch, und erstelle noch ein snapshot (sub2_ro_snap)
echo "Eine Veränderung" >>sub1/test2.txt
btrfs subvolumen snapshot -r sub1 sub2_ro_snap

# Sende nur den veränderten Teil in eine Datei indem als Elterntteil sub1_ro_snap angeben wird in eine Datei
btrfs send -f sub2_das_auf_sub1_aufbaut.bsub -p sub1_ro_snap sub2_ro_snap

# Lösche alle angelegten Subvolumen
btrfs subvolume delete sub1 sub1_ro_snap sub2_ro_snap

# Wiederherstellungs versuch ohne das Elternteil Subvolumen zu haben
btrfs receive -f sub2_das_auf_sub1_aufbaut.bsub .
At snapshot sub2_ro_snap
ERROR: snapshot: cannot find parent subvolume 8aee90ed-57b6-0c49-8465-ccb7405b5bf7

# Ok das ging nicht wie erwartet, also vorher das Elternteil einspielen
btrfs receive -f sub1_ro_snap.bsub .
At subvol sub1_ro_snap

# Jetzt das Diffrenzelle Subvolumen einspielen. Und es klappt
btrfs receive -f sub2_das_auf_sub1_aufbaut.bsub .
At subvol sub2_ro_snap


Damit ist es also möglich, selbst wenn der Empfänger kein btrfs zur Verfügung hat, ihnen ein Subvolumen Strom zu schicken. Dieser kann diesen in eine Datei aufbewahren und das geht auch  Differenziell. Um das Subvolumen wiederherzustellen, benötigt es dann aber ein btrfs. Das könnte man dann sogar mithilfe eines Loopback Devices erzeugen.

Es ist einfach total klasse wie man unter Linux mit Datenströmen jonglieren und verschachteln kann. Solange man weiß was man tut, bekommt man von Linux sehr mächtige Tools an die Hand.

LG
Sebastian
Gespeichert

Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
Andreas
Administrator
*****

Offline

Einträge: 1537



Linux von Innen

Profil anzeigen
Re:btrfs Subvolumen auf einen anderen Dateisystem transportieren
« Antwort #1 am: 15. Juli 2025, 16:30:36 »

Absoluter Wahnsinn. Ich kann nur staunen...

LG
Andreas
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es teilen, und es Menschen gibt, die bereit sind, dieses Geschenk auch mit eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.


Ohne IT-Kompetenz ist man heutzutage ein willkommenes Opfer und Spielball anderer, egal, welches System oder Gerät man nutzt. Nur Wissen schützt vor Schaden!
Sebastian
YaBB God
*****

Offline

Einträge: 774





Profil anzeigen
Re:btrfs Subvolumen auf einen anderen Dateisystem transportieren
« Antwort #2 am: 15. Juli 2025, 18:00:16 »

Ja, das ist schon verrückt.

Ich meine, man kann so ganze Subvolumen. Die man sich quasi als Btrfs eigenes Äquivalent zu Partitionen vorstellen kann. In eine Datei ablegen, die von mir aus sogar zipen und per Mail verschicken (wenn diese nicht zu groß ist) 

Mit anderen Dateisystemen kann man das zwar nicht so richtig vergleichen aber würde man dort versuchen eine ganze Partition über eine Datei zu verschicken. Dann würde man:

A. Wenn mit dd auch freien speicher verschicken. Oder
B.  man muss vorher umständlich das Dateisystem verkleinern (bei dem meisten geht das nicht wie bei btrfs im laufenden Betrieb). Und dann wieder vergrößern

Im Grunde kann man sich so ganze Subvolumen zu Seite legen und diese nach Bedarf auf einen Btrfs wieder einspielen. Optimal für Backup Prozesse oder um ein neues System aus vorhandenen Subvolumen auf einen neuen btrfs zu erzeugen.

Und das alles sehr Speicherplatz effizient, da Subvolumen die sich als Snapshots referenzieren, den Speicherplatz teilen und keine Schreibvorgänge auf dem Datenträger erzeugen. Diese Referenzierungsprinzip kann sogar noch fein granularer sein, da ein Kopierprozess auf demselben btrfs als Referenzierung endet und somit sofort ohne Wartezeit erledigt ist, und das auch auf Dateiebene für einzelne Dateien. Dateimanager machen sich das ganz Transparent zunutze ohne dass der Benutzer dafür etwas machen muss.

Man ist da sehr flexibel.

LG
Sebastian
Gespeichert

Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Allgemeine Diskussionen  |  Thema: btrfs Subvolumen auf einen anderen Dateisystem transportieren « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!