Seiten: [1]
|
 |
|
|
Autor
|
Thema: btrfs Subvolumen auf einen anderen Dateisystem transportieren (Gelesen 354 mal)
|
|
Sebastian
YaBB God
    
Offline
Einträge: 774

|
 |
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:
# 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
|
 |
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

|
 |
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]
|
|
|
|
|
|
|