F2FS
Das Flash-Friendly File System (F2FS) ist ein Open-Source Projekt unter der Federführung von Samsung. Es sorgt im Wesentlichen dafür, dass die Schreibzugriffe gleichmäßig über den Speicher verteilt werden. Das erhöht die Lebensdauer einer SD-Karte deutlich, weshalb F2FS eine gute Alternative zum Standard-Filesystem des Raspberry Pi OS ist: ext4.
Sie können Ihr Raspberry Pi OS nach F2FS migrieren, indem Sie einen USB-Stick als Zwischenspeicher verwenden.
Backup
Zunächst müssen Sie eine Sicherung der Daten von der SD-Karte und vom USB-Stick machen.
Konvertierung
Sie installieren die benötigten Softwarepakete.
sudo apt-get update
sudo apt-get install f2fs-tools
Das Dateisystem des USB-Sticks (in meinem Fall auf dem Device /dev/sda erkannt) wird mit fdisk für den Transfervorgang neu erstellt.
pi@raspberrypi:~ $ sudo fdisk /dev/sda
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 7.2 GiB, 7743995904 bytes, 15124992 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
Disk identifier: 0xc3072e18
Device Boot Start End Sectors Size Id Type
/dev/sda1 8064 15124991 15116928 7.2G 82 Linux swap / Solaris
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-15124991, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-15124991, default 15124991):
Created a new partition 1 of type 'Linux' and of size 7.2 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda1
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 1890368 4k blocks and 473280 inodes
Filesystem UUID: 923c060e-48fe-40e8-aa8b-025e934bc623
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
Das Filesystem wird montiert und die Daten kopiert.
sudo mount /dev/sda1 /mnt
sudo rsync -avx / /mnt/
Boot from USB
Um von dem USB-Stick booten zu können, muss in der Datei /mnt/etc/fstab die Rootpartition auf /dev/sda1 gelegt werden.
proc /proc proc defaults 0 0
PARTUUID=e1bb85a1-01 /boot vfat defaults 0 2
#PARTUUID=e1bb85a1-02 / ext4 defaults,noatime 0 1
/dev/sda1 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
In der Datei /boot/cmdline.txt wird der Eintrag root= angepasst.
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Jetzt wird der Pi vom USB-Stick gebootet.
sudo umount /mnt
sudo shutdown -r 0
Boot from F2FS
Nun wird das Filesystem auf der SD-Karte initialisiert und anschließend alles zurück kopiert.
sudo mkfs.f2fs /dev/mmcblk0p2
sudo mount /dev/mmcblk0p2 /mnt
sudo rsync -avx / /mnt/
Um von dem F2FS booten zu können, muss in der Datei /mnt/etc/fstab die Rootpartition wieder zurück gelegt werden. Dieses mal ändert sich der Typ des Filesystems auf f2fs.
proc /proc proc defaults 0 0
PARTUUID=e1bb85a1-01 /boot vfat defaults 0 2
PARTUUID=e1bb85a1-02 / f2fs defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
In der Datei /boot/cmdline.txt wird der Eintrag root= erneut und der Eintrag rootfstype= erstmalig angepasst.
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=e1bb85a1-02 rootfstype=f2fs elevator=deadline fsck.repair=yes rootwait
Jetzt kann der USB-Stick entfernt und der Pi vom F2F2 gebootet werden.
sudo umount /mnt
sudo shutdown -r 0




