Možná víte, že byste měli inovovat svůj linuxový systém souborů, ale obáváte se komplikací? Představíme vám postup, jak převést souborové systémy ext2 a ext3 na modernější ext4, a to bez nutnosti kompletní reinstalace.
Základní informace o souborových systémech Linuxu
Souborový systém ext3 by se dal označit za veterána, protože se poprvé objevil už v roce 2001. Pokud jde o starší ext2, ten má kořeny dokonce v roce 1993, a z pohledu informatiky se jedná doslova o pravěk. Ext3 je v dnešní době považován za zastaralý, a ext2 je už skutečný archeologický nález.
V současnosti je standardem ve světě Linuxu souborový systém ext4, který byl představen v roce 2008. Oproti předchůdcům je rychlejší, méně náchylný k fragmentaci, dokáže zpracovávat větší soubory i souborové systémy a nabízí přesnější časová razítka souborů. A ano, je výrazně rychlejší.
Dobře, přesvědčili jste mě – jak na to?
Než se pustíme do samotného postupu, měli bychom se nad celou věcí zamyslet. V mnoha případech totiž nemusí být upgrade souborového systému tou nejlepší volbou.
Často je lepší provést kompletní upgrade celého systému Linux. To znamená provést zálohu vašich dat, vymazat stávající systém, nainstalovat moderní distribuci a obnovit data ze zálohy. S kompletní aktualizací získáte nejen moderní souborový systém, ale i nejnovější software a celkově aktuální systém.
Pokud ale z nějakého důvodu nemůžete spustit moderní Linux (například na starším hardwaru), nebo potřebujete zůstat u stávající instalace, pak je možné převod provést. Je však nutné splnit určité podmínky.
Pro upgrade na ext4 potřebujete jádro verze 2.6.28 nebo novější. Pokud tedy nemáte aktuální jádro, musíte ho nejprve aktualizovat. V opačném případě by se mohlo stát, že se počítač nebude dát spustit.
Zkontrolujte, prosím, verzi jádra, než budete pokračovat dále, a ujistěte se, že máte po ruce instalační médium pro váš stávající systém. Změna souborového systému není bez rizika a zálohy dat jsou nezbytností.
Kromě zálohy si připravte i Live CD/DVD moderní linuxové distribuce, abyste měli po ruce potřebné nástroje.
Pro informaci, tento návod byl testován s instalací Ubuntu Jaunty Jackalope z dubna 2009, která používala souborový systém ext3.
Jdeme na to?
Prvním krokem je ověření verze jádra pomocí příkazu `uname`. Otevřete okno terminálu a zadejte příkaz `uname -r`.
uname -r
V tomto konkrétním případě je použita verze jádra 2.6.28-11, což splňuje požadavek na minimální verzi.
Pokud máte nižší verzi jádra, zastavte prosím. Musíte mít minimálně verzi 2.6.28 nebo vyšší. Nyní pomocí příkazu `blkid` ověříme identifikátory disků a zařízení.
blkid
Vidíme, že systém má jeden pevný disk (sda), na kterém je souborový systém (sda1) připojený k `/dev/sda1`. V našem případě je to souborový systém ext3, který budeme konvertovat. Nezapomínejme také na swap, který však nyní řešit nebudeme.
Restartujeme počítač z Live CD
Vložte Live CD do počítače a restartujte ho. Během startu možná bude potřeba stisknout klávesu pro bootování z CD. Tato klávesa se zobrazí během spouštění. Buďte pozorní, okno příležitosti trvá jen krátce. Pokud to nestihnete, restartujte počítač znovu.
Po nastartování systému z Live CD se ujistěte, že jste omylem nespustili instalaci. Přečtěte si nabídku a pokud je k dispozici možnost „Vyzkoušet (název distribuce)“, zvolte ji.
Přepnutí do režimu root
Otevřete okno terminálu a zadejte následující příkaz. Ten vás přepne do režimu root a umožní vám provádět akce bez nutnosti opakovaného používání příkazu `sudo`.
sudo bash
Všimněte si změny příkazového řádku. Nyní máte root přístup. Buďte opatrní.
Identifikace souborových systémů
Ještě jednou ověříme souborové systémy, abychom viděli, jak je v této instanci Linuxu vidí. Použijeme příkaz `fdisk -l`.
fdisk -l
Zobrazí se výstup podobný následujícímu:
Systém Live CD Linux úspěšně našel a rozpoznal náš souborový systém sda1. To je náš první malý úspěch.
Nyní se můžeme pustit do samotné konverze.
Konverze souborového systému
Následující příkazy použijeme pro konverzi. Buďte opatrní a použijte ten správný pro váš případ! Jeden příkaz slouží pro převod z ext2 na ext4 a druhý pro převod z ext3 na ext4.
Pro převod z ext2 na ext4 použijte:
tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sda1
Pro převod z ext3 na ext4 použijte:
tune2fs -O extents,uninit_bg,dir_index /dev/sda1
Po zadání příkazu se může zdát, že se nic neděje. Měli byste se dostat zpět do příkazového řádku. Pokud se objeví nějaká hláška, pravděpodobně to budou chybová hlášení. Absence hlášek je dobrá zpráva.
Kontrola souborového systému
I když se neobjevily žádné chyby, je dobré souborový systém důkladně zkontrolovat. Použijeme nástroj `e2fsck`, který kontroluje integritu souborových systémů a případně se pokusí opravit nalezené problémy. Nástroj `e2fsck` pracuje s ext2, ext3 i ext4.
Volba `-p` (preen) zajistí automatickou opravu chyb a volba `-f` (force) zkontroluje souborový systém i v případě, že se zdá být v pořádku.
e2fsck -pf /dev/sda1
Pokud se neobjevily žádné chyby, můžeme se pokusit o připojení souborového systému.
Připojení souborového systému
Před restartem musíme upravit tabulku souborových systémů (fstab) a konfiguraci zavaděče grub. Provedeme to po připojení souborového systému. Připojíme ho do adresáře `/mnt`. Souborový systém jsme identifikovali jako sda1, takže příkaz bude:
mount -t ext4 /dev/sda1 /mnt
Po připojení si můžeme ověřit obsah systému. Kořen systému se nachází v bodě připojení /mnt.
ls /mnt
Vypadá to dobře, soubory jsou tam, kde mají být.
Úprava fstab
Nyní musíme upravit soubor `fstab` a změnit všechny odkazy na `ext3` (nebo `ext2`, pokud jste konvertovali z něj) na `ext4`. V tomto příkladu používáme editor nano, ale na vašem Live CD může být dostupný jiný editor.
nano /mnt/etc/fstab
Otevře se okno editoru nano. V něm vyhledejte všechny výskyty textu „ext3“ nebo „ext2“ a změňte je na „ext4“. V našem případě je zde jeden výskyt „ext3“.
Text „ext3“ byl změněn na „ext4“.
Soubor uložte pomocí `Ctrl+O` a editor zavřete pomocí `Ctrl+X`.
Aktualizace Grub
Protože jsme souborový systém sda1 připojili do /mnt, všechny adresy souborového systému se zdánlivě přesunuly o úroveň hlouběji. To je důvod, proč jsme zadali cestu /mnt/etc/fstab místo /etc/fstab. Kvůli Grub, který očekává soubory na určitých místech, potřebujeme, aby se zdálo, že souborový systém je připojen normálně. Musíme kořen souborového systému přesunout do /, nikoli do /mnt. Použijeme příkaz `chroot`, který nám umožní spustit příkazový shell a nastavit kořenový bod.
Příkaz je:
chroot /mnt
Všimněte si změny v příkazovém řádku.
Nyní můžeme zadat příkaz `update-grub`, aby grub načetl soubor `fstab` a překonfiguroval se.
update-grub
Jakmile se grub překonfiguruje, musíme na pevný disk nainstalovat novou instanci grubu. Důležité – zadáváme název disku sda, nikoli sda1, vynecháváme tedy „1“.
grub-install /dev/sda
Restartování vašeho Linuxu
Restartujte systém a vyjměte Live CD. Po restartu otevřete terminál a zadejte:
blkid
Souborovým systémem je nyní ext4.
Stroj, na kterém byl tento návod testován, se restartoval tak dlouho, že se zdálo, že se něco pokazilo. Možná to bylo virtuálním strojem, nebo konverzí souborového systému. Ať tak či onak, trpělivost se vyplatila a systém nakonec naskočil. Pokud se u vás stane něco podobného, vyčkejte. Ne všechno musí být ztraceno.
Následující restarty už byly standardní.
Zvažte kompletní upgrade Linuxu
Nyní máte funkční systém se starou verzí Linuxu a novým souborovým systémem. Pokud je pro vás důležitý moderní souborový systém a váš hardware to zvládne, přechod na aktuální distribuci Linuxu je nejlepším řešením. Získáte tak i aktuální software a bezpečnostní aktualizace.
Nicméně, pokud to není možné (a někdy prostě nemáme jinou možnost), tento postup by vám měl umožnit upgradovat souborový systém.