Konwersja z systemu plików ext3 do ext4 w Linuksie
Jest to czynność dość prosta. W moim przypadku przeprowadziłem ją na systemie operacyjnym Fedora 12 w wersji 64- bitowej. W przypadku świeżej instalacji system instaluje się już od razu na ext4. Jednak ja wykonałem podniesienie wersji z 11 na 12. W Fedorze 12 GRUB już obsługuje ten system plików i istnieje możliwość uruchomienia z niego Linuksa.
System najlepiej uruchomić w trybie pojedynczego użytkownika (parametr single). W pliku /etc/fstab dokonujemy małej zmiany na wzór poniżej:
/dev/
dev-name
/ ext4 defaults 0 1Następnie przemontowujemy system plików, aby był tylko do odczytu poleceniem:
mount -o remount,ro /
Sprawdzamy czy nie ma błedów:
fsck.ext3 -pf /dev/
dev-name
Następnie włączamy wszystkie funkcjonalności ext4:
tune2fs -O extents,uninit_bg,dir_index /dev/
dev-name
I koniecznie ponownie po wszystkiem sprawdzamy (obowiązkowo; inaczej po ponownym uruchomieniu zostaniemy poinformowani o błedach) czy system plików nie zawiera błędów:
fsck.ext4 -yfD /dev/
dev-name
Najlepiej też dodać do grub.conf parametr uruchomienia kernela:
rootfstype=ext4
Zasadniczo to wszystko. Jednak pliki utworzone przed migracją nadal będą korzystały z bitmap mapping ext3, a nie z extens ext4. System zadba sobie o to sam zmieniając ten atrybut przy ponownytm zapisie danego pliku. Proces ten będzie raczej dość wolny, zwłaszcza gdy mamy duzo plików z których bardzo rzadko korzystamy. W przyszłości o proces ten będzie automatycznie dbało narzędzie e4defrag - jednak obecnie jest w fazie rozwojowej. Polecenie służące do sprawdzenia czy dany plik lub katalog posiada ten atrybut to: lsattr. Wydając polecenie:
lsattr /home
możemy otrzymać wynik:
------------------- /home
gdzie kreski oznaczają to, że dany plik/katalog nie korzysta jeszcze z atrybótów ext4. Możemy mu je nadać poleceniem:
chattr +e /home
Ponownie listując otrzymamy wynik:
-----------------e- /home/user/foo/bar
gdzie e oznacza extens. Polecenie chattr może być wykonywane na wielu plikach jednocześnie, lecz nie jest możliwe jego wykonanie rekursywnie (przez strukturę plików i katalogów). Dlatego zaleca się wykorzystanie dwóch magicznych poleceń (pierwsze dla plików, drugie dla katalogów):
find /home -xdev -type f -print0 | xargs -0 chattr +e f
find /home -xdev -type d -print0 | xargs -0 chattr +e
Można je wykorzystać do konwersji wszystkich plików z poziomu katalogu głownego (ale po konwersji samego systemu plików). Najlepiej wykonywać te dwa polecenia w trybie pojedynczego użytkownika, ze względu na minimalizację zakłóceń podczas ich pracy i prawdopodbnie dużą ilość komunikatów generowanych do logów.
0 komentarze:
Prześlij komentarz