Linux von einem USB-Stick mit f2fs betreiben
Ein angepasstes Linux-System kann auf einen USB-Stick legen, um es immer parat zu haben. Den Stick kann man mit dem »Flash-Friendly File System« (f2fs) betreiben, das besser auf die Eigenheiten des Sticks optimiert ist. Hier wird gezeigt, wie man einen solchen Stick anlegt.
Ausgehend von dem Wunsch, ein Linux-System auf Reisen – speziell längeren Radreisen – mit den »Lieblingsprogrammen« dabei zu haben, wurde ein Devuan-ASCII (entspricht Debian Stretch ohne systemd) auf einem 32 GByte USB-Stick installiert. Zur Steigerung der Haltbarkeit der Flash-Zellen kommt das »Flash-Friendly File System« – kurz f2fs – zum Einsatz.
Übrigens kann man auch SSDs mit f2fs betreiben, ohne mit dem Aufruf von fstrim oder der mount-Option »discard« arbeiten zu müssen. Diese Funktionalitäten sind Teil von f2fs. Diese Anleitung gilt daher sinngemäß auch, um von einer SSD starten zu können.
Vorbereitungen
Vorbereitet werden muss ein Rechner, mit dem der USB-Stick bearbeitet wird – hier Arbeitsrechner genannt – und der USB-Stick selbst. Auf dem Arbeitsrechner muss »f2fs-tools« installiert werden, um entsprechende Partitionen auf dem Stick anlegen zu können.
Auf dem Stick müssen mindestens drei Partitionen mit fdisk /dev/sdc
angelegt werden (mit /dev/sdc wird hier der USB-Stick bezeichnet).
- Die erste Partition für den UEFI-Teil bentötigt etwa 50 MByte vom MBR-Typ
ef
. - Die zweite Partition wird unter /boot eingebunden, weil Grub ein System nicht von f2fs starten kann. Dafür wurden 200 MByte vom MBR-Typ
83
, also für Linux, reserviert. - Der verbleibende Platz kann als Ganzes einer Partition zugewiesen oder in zwei Partitionen, eine für das root-Dateisystem und eine für /home aufgeteilt werden. Ich habe sieben GByte für die Root- und den Rest für eine /home-Partition angelegt, jeweils als MBR-Typ 83.
- Ein Swap-Partition wird nicht angelegt, denn ausgelagert werden soll in eine Datei.
Beispiel der Stickaufteilung (hier bei einem 16-GB-Stick):
Disk /dev/sdc: 15,2 GiB, 16282288128 bytes, 31801344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Device Boot Start End Sectors Size Id Type /dev/sdc1 2048 104447 102400 50M ef EFI (FAT-12/16/32) /dev/sdc2 104448 514047 409600 200M 83 Linux /dev/sdc3 514048 15194111 14680064 7G 83 Linux /dev/sdc4 15194112 31801343 16607232 7,9G 83 Linux
Auf den Partitionen werden folgende Dateisysteme angelegt:
- Auf Partition 1 eine vfat-32-Struktur mit
mkfs.vfat -F 32 /dev/sdc1
– UEFI braucht das so. - Auf Partition 2 mit
mkfs.ext4 /dev/sdc2
ein Standard-Linux-Dateisystem. - Die Partition für das System und eine evtl. angelegte Partition für /home müssen mit dem f2fs-Dateisystem formatiert werden. Dies geschieht mit
mkfs.f2fs /dev/sdc3
(evtl. auch für sdc4).