Jakiś czas temu na phoronix.com pojawiło się porównanie wydajności systemów plików na dyskach SSD. Samsung utworzył system przeznaczony właśnie na dyski flash (pendrive, karty SD, dyski SSD). Zachęcony tym, postanowiłem przenieść system plików na partycję F2FS (flash friendly file system). [phoronix.com]
Aby to zrobić, trzeba zrobić odpowiednio dużo miejsca na dysku, by móc skopiować dane z jednej partycji, na drugą, by móc sformatować 'pierwotną' jako f2fs i przenieść tam dane z powrotem.
Po każdym przeniesieniu konieczne jest zaktualizowanie grub'a, by móc uruchomić stary system.
Dodatkowo, grub nie obsługuje f2fs, więc koniecznym jest posiadanie partycji boot w 'starym' systemie plików (ext2, 3 lub 4).kocham godzie.
Aby to zrobić warto skorzystać z przewodnika Ubuntu:
- Tworzymy partycję boot (200 mb powinno wystarczyć, 500 jest dużo ponad rzeczywiste zapotrzebowanie). Wygodnym narzędziem będzie gparted (dostępny w centrum oprogramowania). Partycja najlepiej by była ext4 lub coś podobnego.
- Montujemy tak przygotowaną partycję o odpowiednim numerze zamiast X (X to numer utworzonej partycji pod boot) i kopiujemy na nią dotychczasową zawartość katalogu boot:
sudo mkdir /mnt/boot
sudo mount /dev/sdaX /mnt/boot
sudo cp -a /mnt/main/boot/* /mnt/boot/
sudo umount /mnt/boot - Aktualizujemy grub:
sudo mount /dev/sdaX /boot
grub-install --root-directory=/ /dev/sda - Aktualizujemy fstab:
W tym celu należy sprawdzić jaki ID posiada nasza nowa partycja poleceniami mount i sudo blkid. Przykładowe wyjście:
mount:
(...)
/dev/sda8 on /boot type ext4 (rw)
(...)
blkid:
(...)
/dev/sda8: LABEL="boot" UUID="3429a664-5f36-4878-baa6-35e8f63c63cc" TYPE="ext4" PARTUUID="000186d0-08"
Jak widać nasza partycja (tutaj ósma) posiada UUID 3429a664-5f36-4878-baa6-35e8f63c63cc.
Kopiujemy tę wartość i umieszczamy na końcu pliku /etc/fstab w takiej postaci:
UUID=3429a664-5f36-4878-baa6-35e8f63c63cc /boot ext4 defaults 0 0
Zapisujemy i wychodzimy. - Restartujemy komputer mając nadzieję, że wszystko poszło jak należy i ew. czyścimy stary katalog boot:
sudo umount /boot
sudo rm -r /boot
By przenieść się na nowy system plików (f2fs) potrzebny nam blkid go obsługujący. Będzie nim wersja od 2.25 (blkid -v). Jeśli takiej nie mamy:
sudo add-apt-repository ppa:xeron-oskom/util-linuxInstalujemy co potrzebne:
sudo apt-get update
sudo apt-get install util-linux --reinstall
sudo apt-get install f2fs-tools gparted
Dodajemy moduł f2fs do initramfs (niezbędne, by system był w stanie odczytać nową partycję!). W tym celu edytujemy /etc/initramfs-tools/modules i dodajemy na końcu linijkę f2fs, oraz uruchamiamy komendę sudo update-initramfs -u. Mamy już system, który jest w stanie zbootować się z partycji f2fs, teraz trzeba go na nią przenieść. Tworzymy zatem nową partycję o formacie f2fs (za pomocą gparted), montujemy ją* i kopijemy zawartość / (generalnie niepolecane jest kopiowanie plików z działającego systemu, ale raczej nie powinno być z tym problemów):
sudo mkdir /media/f2fsPonownie edytujemy fstab (tym razem na nowej partycji), tj. plik /media/f2fs/etc/fstab, usuwając starą linijkę / nową, np taką:
sudo mount /dev/sdx /media/f2fs
sudo cp -ax /* /media/f2fs
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx / f2fs rw,relatime,background_gc=on,user_xattr,acl,active_logs=6 0 0zastępując x'y UUID nowej partycji (podobnie jak w przypadku /boot).
Na koniec (ponowna) aktualizacja grub'a:
sudo mount /dev/sdx /media/f2fs/bootWykonujemy (w chrootowanym systemie) komendę sudo update-grub.
sudo mount --bind /dev /media/f2fs/dev
sudo mount --bind /proc /media/f2fs/proc
sudo mount --bind /sys /media/f2fs/sys
sudo chroot /media/f2fs
Po restarcie powinniśmy się już cieszyć linuksem chodzącym z nowej partycji.
Zapraszam, do dopisania się do życzenia o dodanie opcji instalacji ubuntu na systemie F2FS: link.
Gdyby gparted niepoprawnie utworzył system plików, wystarczy uruchomić komendę mkfs.f2fs -t f2fs na odpowiedniej partycji.
Inne źródła: 1 2