Warnung: F2FS ist recht neu im Kernel und noch nicht stabil. Es ist wahrscheinlich keine gute Idee, es für die Rootpartition zu nutzen. Man braucht ein Backup.
F2FS ist ein für NAND-Speicher entworfenes Dateisystem. Eine detaillierte Erklärung ist auf lwn.net. Auf mich wirkte es verlockend, es ist relativ simpel aufgebaut und doch ist klar, warum es für SSDs gut funktionieren sollte. Bisher ist es aber eher im Gespräch für Smartphones und USB-Sticks, auch wenn die initiale Ankündigung explizit SSDs erwähnt. Wahrscheinlich weil ausgewachsene SSDs mit normalen Dateisystemen gut umgehen können.
Unter Ubuntu 14.04 ist es im Kernel, aber nicht in den Installer integriert und es wird nicht beim Boot geladen. Das macht die Installation etwas schwierig. Die Hauptknackpunkte:
- Es braucht eine separate Bootpartition mit einem Dateisystem, mit dem Grub umgehen kann
- Die initramfs muss das F2FS-Modul integrieren
Mein Szenario ist so: Ich habe ein bestehendes Ubuntu-System auf einer alten Festplatte, /dev/sda mit ext4, frisch auf Ubuntu 14.04 aktualisiert, ohne separate Boot-Partition. Die neue SSD ist unter /dev/sdc (Vorsicht: Mit dem neuen Kernel sind diese Zuweisungen wirklich nicht mehr zuverlässig, die Platten springen. Man muss Labels und UUIDs nutzen). Mein Mainboard hat ein BIOS, kein UEFI.
Zuerst wird mit gparted die SSD formatiert.
Da ich als Partitionstabelle GPT ausgewählt habe, muss auf meinem BIOS-System eine 2MB-Partition ohne Dateisystem mit dem Flag bios_grub am Anfang stehen (ein UEFI-System bräuchte laut Wiki stattdessen eine 200MB große FAT32-Partition mit boot-flag, die später unter /boot/efi eingebunden werden müsste). Dann die boot-Partition mit einem beliebigen Linux-Dateisystem, hier ext2, Label boot. Und schließlich die Root-Partition mit f2fs und Label linuxssd; wie man auf dem Bild sieht, kann gparted damit später nicht mehr umgehen, man muss sich das merken und kann gparteds Arbeit hier nicht kontrollieren.
Nun das alte System auf die SSD kopieren:
sudo modprobe f2fs
sudo mkdir /media/ssd
sudo mount /dev/sdc3 /media/ssd
sudo cp -a / /media/ssd
Das dauert.
Allerdings wird so auch /boot auf sdc3 kopiert, das wollen wir nicht. Also rückgängig und richtig machen:
sudo rm -R /media/ssd/boot/*
sudo mount /dev/sdc2 /media/ssd/boot
sudo cp -a /boot /media/ssd
Noch ist weder Grub installiert noch die fstab angepasst. Letzteres zuerst. Meine /media/sdd/etc/fstab sieht so aus:
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# Linux Root
LABEL=linuxssd / f2fs noatime,discard 0 1
UUID=36a84be5-21aa-4f23-ba29-da62adbe4216 /boot ext2 defaults 0 0
# have /tmp in ram
tmpfs /tmp tmpfs defaults,noatime 0 0
# have logs in ram
tmpfs /var/log tmpfs defaults,noatime 0 0
Klar, die UUID für /boot muss angepasst werden, entweder per blkid
oder mit gparted auslesen. Edit: Stellt sich raus, dass das nicht funktioniert, weil das label nicht unter /dev/disk/by-label aufgeführt wird. Stattdessen muss man derzeit die id verwenden, also statt der LABEL-Zeile:
/dev/disk/by-id/ata-SanDisk_SDSSDHP128G_140203400869-part3 / f2fs noatime,discard 0 1
Nun ist es Zeit, in das neue System zu chrooten um den Bootvorgang einzurichten:
sudo mount --bind /dev /media/ssd/dev
sudo mount --bind /proc /media/ssd/proc
sudo mount --bind /sys /media/ssd/sys
sudo chroot /media/ssd
Auf der SSD kann nun die initramfs gefixt werden:
echo "f2fs" >> /etc/initramfs-tools/modules
update-initramfs -u
Dann fehlt nur noch Grub:
Edit: Da update-grub irrigerweise /dev/disk/by-id/…
ignoriert und stattdessen /dev/sdc3 einträgt, muss zuerst in der /etc/default/grub
GRUB_DEVICE="/dev/disk/by-id/…"
eingetragen werden. Dann:
grub-install /dev/sdc
update-grub
Jetzt sollte von der SSD Ubuntu mit F2FS gebootet werden können.
onli blogging am : swrast_dri.so fehlt
Vorschau anzeigen