15.10.2021, 23:37 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

1

Gestern, 12:03

BTRFS Erfahrungsaustausch, Fragen, Versuche mit und ohne Knoppix

Für meine Rechner benutze ich FreeBSD, also kein GNU/Linux und dafür schon seit langer Zeit ZFS. ZFS ist mehr als ein Dateisystem und ich liebe es sehr.
In der Linux-Welt kommt BTRFS dem am nächsten und ich habe davon gar keine Ahnung und finde auch nicht wirklich gute und brauchbare Information. Also weitaus weniger, als über ZFS. Das liegt vielleicht daran, dass ein Grund für die Entwicklung von BTRFS weg gefallen ist, denn ZFS hat sich inzwischen aufgespalten und der OpenSource-Zweig ist nun GPL kompatibel, ja, es gibt nur noch ZFS on Linux, das auch von den anderen Freien Systemen benutzt wird. Trotzdem sieht man es selten in einem Linux, was allerdings auch für BTRFS gilt.
BTRFS kommt ZFS schon nahe, beides sind Copy on Write Dateisysteme, die im Grunde genommen niemals kaputt gehen und durch Prüfsummen auch die Integrität der gespeicherten Daten sicher stellen können. Außerdem können sie Snapshots des Dateisystems oder einzelner, spezieller Unterverzeichnisse. Die Vorteile sind beinahe erdrückend, trotzdem scheinen viele Leute sich vor den Neuerungen zu fürchten.
BTRFS ist noch näher daran, ein einfaches Dateisystem zu sein. Das bedeutet, dass es etwas mehr wie gewohnt auch gehandhabt werden kann. Das will ich später vielleicht noch zeigen.
Was ich aber schon jetzt als enttäuschend empfinde: dass manche gute Eigenschaft, wie etwa die Kompression, nicht eine Eigenschaft des Dateisystems bilden, sondern nur als mount-Option gesetzt werden können. Das ist doof, weil diese Eigenschaft dann ja verloren geht, wenn etwa ein Automatismus einen Wechseldatenträger ohne Kompression einbindet.
Trotzdem lohnt es sich womöglich, mit diesem Dateisystem auch ein wenig zu spielen.
Vor allem auf eingebauten Datenträgern und wiederum besonders auf SSDs macht es einen sehr guten Eindruck, würde ich mal sagen.

Dies mal soweit als Einleitung.
Vielleicht gibt es ja schon Wortmeldungen mit Interesse oder eigenen Erfahrungen.

2

Gestern, 13:52

mal einen Stick mit Knoppix (EFI-only) auf einem BTRFS

das soll mal ein erstes Beispiel sein.
Auf einem USB-Stick läuft ein Knoppix und dort habe ich einen weiteren Stick eingelegt, der zuvor mit lauter Nullen beschrieben worden war. Der neue Stick ist /dev/sdd und hat 32GB.

Was ich haben möchte, ist ein Stick zum Austausch von Daten in einem BTRFS-Dateisystem, auf dem aber auch ein Knoppix liegen soll und an EFI-PCs gebootet werden kann.
Alle meine PCs sind inzwischen EFI-PCs, so dass ich den Aufwand für Legacy nicht mehr unbedingt betreiben muss. EFI-PCs brauchen eine EFI-System-Partition in einem FAT. Der neue Stick soll also zwei Partitionen bekommen, sdd1 als FAT32 für die ESP und den Rest für das BTRFS mit Knoppix drauf. Trotzdem ich also nur zwei Partitionen möchte, will ich das moderne gpt-Schema einsetzen.
Weil ich den Stick nicht hier, sondern an einem entfernten Rechner habe, nehme ich die einzelnen Schritte auf der Konsole vor.
Man kann natürlich sehr bequem mit gparted die Partitionierung und das Formatieren auch grafisch erledigen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
root@Microknoppix:/home/knoppix# parted /dev/sdd
(parted) mklabel gpt

(parted) mkpart                                                           
Partition name?  []? EFI                                                  
File system type?  [ext2]? fat32                                          
Start? 100M                                                               
End? 600M 

(parted) set 1 boot on
(parted) set 1 hidden on
(parted) set 1 esp on

(parted) mkpart
Partition name?  []? BTRFS                                                
File system type?  [ext2]? btrfs                                          
Start? 700                                                                
End?                                                                      
End? 30G 

(parted) p                                                                
Model:  USB  SanDisk 3.2Gen1 (scsi)
Disk /dev/sdd: 30,8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name   Flags
 1      99,6MB  600MB   500MB   fat32        EFI    boot, hidden, esp
 2      700MB   30,0GB  29,3GB  btrfs        BTRFS

(parted) q
Damit sind die beiden Partitionen vorbereitet und ausreichend Platz vor und hinter diesen und sie sind auch ausreichend alligned.
Nun müssen sie formatiert werden:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@Microknoppix:/home/knoppix# mkfs -t vfat -F 32 -n EFI /dev/sdd1
mkfs.fat 4.1 (2017-01-24)

root@Microknoppix:/home/knoppix# mkfs -t btrfs  -m single -L BTRFS1 -O skinny-metadata /dev/sdd2
btrfs-progs v5.10 
See http://btrfs.wiki.kernel.org for more information.

Label:              BTRFS1
UUID:               be6a143f-791e-4e7a-9cc2-69b170f8a03a
Node size:          16384
Sector size:        4096
Filesystem size:    27.29GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         single            8.00MiB
  System:           single            4.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Runtime features:   
Checksum:           crc32c
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1    27.29GiB  /dev/sdd2
Formatiert ist und ich habe jeweils noch einen Label gesetzt. Für BTRFS habe ich die Optionen -m single und -O skinny-metadata gesetzt, weil mir das für einen kleinen Stick am sinnvollsten schien. Gerne hätte ich weitere Optionen hinzugefügt, allen voran die Kompression, aber das geht halt offenbar nicht. Außerdem benutze ich den Stick als Ganzes, also die zweite Partition komplett und ohne weitere Subvolumes.

Dann füllen EFI:

Quellcode

1
2
3
4
5
6
root@Microknoppix:/home/knoppix# mkdir EFI
root@Microknoppix:/home/knoppix# mount /dev/sdd1 EFI
root@Microknoppix:/home/knoppix# rsync -au /mnt-system/efi EFI/
root@Microknoppix:/home/knoppix# rsync -au /mnt-system/boot EFI/
root@Microknoppix:/home/knoppix# umount EFI
root@Microknoppix:/home/knoppix# rm -rf EFI
Hätte ich nun nicht von einem laufenden Knoppix vom Stick kopiert, sondern die Dateien direkt von DVD oder aus einem ISO genommen, müsste ich alles im neuen EFI/boot/ erst noch von isolinux nach syslinux umbenen. Also das Verzeichnis und einige der Dateien darin.

Dann füllen BTRFS1:

Quellcode

1
2
3
root@Microknoppix:/home/knoppix# mkdir BTRFS1
root@Microknoppix:/home/knoppix# mount -o rw,noatime,compress=lzo,inode_cache /dev/sdd2 BTRFS1
root@Microknoppix:/home/knoppix# rsync -au /mnt-system/KNOPPIX BTRFS1/


Das sollte es eigentlich schon gewesen sein und dieser neue Stick hat dann von dem laufenden Stick auch die Overlay-Datei bekommen, würde also alle Änderungen am System ebenfalls gleich mitbekommen. Für gewöhnlich will ich das auch so haben. In diesem speziellen Fall ist der Stick nicht für mich gedacht und daher lege ich gleich eine neue Overlay-Datei an und zwar eine von 8G, also wirklich unsinnig groß. Das mache ich manuell. Klaus Knopper zwingt eine maximale Größe von 4G, weil er die Overlay auf einem FAT unterbringen möchte. Wir haben BTRFS und nehmen deshalb nun mal 8G, machen es aber ansonsten dem Klaus Knopper nach und formatieren die Overlay dann in ext2fs:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
root@Microknoppix:/home/knoppix# dd if=/dev/zero of=BTRFS1/KNOPPIX/knoppix-data.img bs=1M count=8096
8096+0 Datensätze ein
8096+0 Datensätze aus
8489271296 Bytes (8,5 GB, 7,9 GiB) kopiert, 61,6561 s, 138 MB/s

root@Microknoppix:/home/knoppix# mke2fs -F -m 0 BTRFS1/KNOPPIX/knoppix-data.img
mke2fs 1.45.7 (28-Jan-2021)
warning: Unable to get device geometry for BTRFS1/KNOPPIX/knoppix-data.img
Discarding device blocks: done                            
Creating filesystem with 2072576 4k blocks and 518144 inodes
Filesystem UUID: 1feed426-e226-451e-9f17-6b8c354f8388
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

root@Microknoppix:/home/knoppix# umount BTRFS1
root@Microknoppix:/home/knoppix# rm -rf BTRFS1


Nundenn, da darf man dann gespannt sein, ob das denn auch funktioniert. Das berichte ich dann später.

3

Gestern, 15:22

Das berichte ich dann später.


ja, hat jedenfalls funktioniert.
Also an drei PCs mit EFI (darunter ein Mac-Book), bootete der Stick anstandslos und ziemlich flott, wie ich finde. Allerdings habe ich ja den Compiz nicht gelöscht und so kommen dann die 3D-Effekte wieder mit, die ich nicht so mag.
Außerdem konnte ich sowohl in einem Knoppix als in zwei FreeBSD-Systemen den Stick mit seinem BTRFS vollkommen problemlos automatisch mounten lassen (in FreeBSD mittels FUSE und DSBMD/DSBMC, einem eigenen Mechanismus, den es nicht für Linux gibt) und darauf Daten schreiben. Wie befürchtet hat man aber keinen Einfluss auf dem Mechanismus und das BTRFS wird immer ohne Kompression und weitere zusätzliche Nützlichkeiten (noatime...) gemounted. Das ist sehr schade.
Trotzdem war der Test nicht so umsonst. Das System, also auch der Zugriff auf das BTRFS, erschien mir sehr flott und flüssig. Ich denke, wenn man so einen Stick nicht dauerhaft benutzt, entsteht daraus kein Schaden.

Vielleicht gibt es demnächst noch mehr Erfahrungsberichte.

Linux HardwareLinux Computer & PCs | Linux Notebooks & Laptops | Geek Shirts | Geek und Nerd Shirt Shop