Hur man migrerar Ext2 eller Ext3 filsystem till Ext4 på Linux

By rik

Visste du att det är möjligt att uppgradera ditt Linux-filsystem utan att behöva genomgå en total ominstallation? Här beskrivs hur du konverterar ext2 och ext3 till ext4 utan att behöva göra om hela systemet.

Linux filsystemens utveckling

Filsystemet ext3, som introducerades 2001, kan betraktas som en pionjär inom området. Ännu äldre är ext2, som lanserades 1993. I datorsammanhang är ext3 att betrakta som en äldre konstruktion, medan ext2 närmast kan liknas vid ett arkeologiskt fynd.

Det moderna filsystemet i Linux-världen är ext4, som lanserades 2008. Det utmärker sig genom högre hastighet, minskad fragmentering, förmåga att hantera större filsystem och filer, mer precisa tidsstämplar och inte minst, avsevärt högre prestanda jämfört med sina föregångare.

Är du redo för uppgraderingen?

Innan du påbörjar en uppgradering av filsystemet bör du tänka igenom beslutet. I många fall är det mer fördelaktigt att genomföra en fullständig uppgradering av hela Linux-systemet.

Detta innebär att du tar säkerhetskopior av din data, rensar systemet, installerar en modern Linux-distribution och återställer datan. En sådan fullständig uppdatering ger dig fördelarna med en modern Linux-distribution, uppdaterad programvara och ett nytt filsystem.

Om din hårdvara inte klarar en modern Linux-distribution, inte ens lättviktare som Lubuntu, LinuxLite eller CrunchBang++, och du absolut måste behålla ditt nuvarande system, finns det fortfarande saker att tänka på.

För att uppgradera till ext4 krävs minst kärnversion 2.6.28. Om du inte har den versionen eller en senare, måste du först uppgradera kärnan.

Varning: Försök inte detta utan rätt kärnversion. Det kan resultera i en dator som inte startar. Kontrollera kärnversionen innan du går vidare.

Se till att du har en installationsskiva för din nuvarande Linux-version till hands. En filsystemuppgradering är inte riskfri.

Säkerhetskopiering är avgörande. Gör flera säkerhetskopior av datan till olika medier och ha din gamla Linux-skiva redo. Om något går fel kan du installera om och återställa.

Du behöver också en aktuell Live CD/DVD med en modern Linux-distribution för att utföra uppgraderingen. Se till att du har det tillgängligt.

Informationen i den här artikeln har verifierats med en installation av Ubuntu Jaunty Jackalope från april 2009, som använde ext3.

Dags att börja?

Låt oss nu ta itu med uppgiften. Det första steget är att kontrollera kärnversionen med kommandot `uname`. Detta kommando visar systeminformation.

Öppna ett terminalfönster i din gamla Linux och skriv `uname -r` och tryck på Enter.

uname -r

Exemplet i artikeln har kärnversion 2.6.28-11, vilket uppfyller kraven. Om du inte har en kompatibel kärna, avbryt genast. Det är inte tillräckligt att nästan ha rätt version, du måste ha minst 2.6.28.

Därefter ska vi kontrollera diskidentifierarna med `blkid`, som identifierar blockenheterna.

blkid

Det här systemet har en hårddisk (sda) med ett filsystem (sda1) monterat på /dev/sda1. Detta är ett ext3-filsystem, vilket är det vi ska konvertera. Det finns också ett swap-filsystem, men det är inte relevant i sammanhanget.

Starta om med Live CD

Sätt i din Live CD och starta om datorn. Du kan behöva trycka på en tangent under uppstarten för att starta från CD:n. Denna tangent visas under uppstarten. Var snabb, tiden är kort. Missar du det, starta om och försök igen.

När du har startat i Live CD-miljön, se till att du inte startar installationen av misstag. Välj alternativet ”Testa DistributionNamn” eller liknande.

Få root-behörighet

Öppna ett terminalfönster och skriv `sudo bash`. Detta ger dig root-behörighet och du behöver inte använda `sudo` för varje kommando.

sudo bash

Du ser att kommandotolken har ändrats. Du har nu root-behörighet, så var försiktig.

Identifiera filsystemen igen

Vi måste identifiera filsystemen igen i den nya Linux-miljön.

fdisk -l

Du kommer att se liknande utdata som följande:

Filsystemet sda1 har identifierats av Live CD Linux. Detta är det första viktiga steget. Nästa steg är att konvertera filsystemet.

Konvertera filsystemet

Här finns två kommandon listade, ett för konvertering från ext2 till ext4 och ett för ext3 till ext4. Välj rätt kommando!

För att konvertera från ext2 till ext4, använd:

tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sda1

För att konvertera från ext3 till ext4, använd:

tune2fs -O extents,uninit_bg,dir_index /dev/sda1

Det ser ut som att ingenting händer, men det är normalt. Du kommer tillbaka till kommandotolken. Felmeddelanden kan visas om något är fel. Inga nyheter är bra nyheter här.

Kontrollera filsystemet

Trots att inga fel visades, ska vi kontrollera hela filsystemet för eventuella problem med kommandot `e2fsck`. Det är ett verktyg för att kontrollera filsystemens integritet. Det kan även reparera eventuella problem. `e2fsck` fungerar med ext2, ext3 och ext4.

Alternativet `-p` (preen) får `e2fsck` att försöka reparera fel och `-f` (force) gör att den kontrollerar systemet även om det ser rent ut.

e2fsck -pf /dev/sda1

Inga fel rapporterades, så vi kan försöka montera filsystemet.

Montera filsystemet

Vi måste justera filsystemtabellen (fstab) och grub bootloader för att det konverterade filsystemet ska fungera. För att göra det måste vi montera filsystemet. Vi monterar det på `/mnt`. Vi identifierade tidigare sda1, så vårt kommando är:

mount -t ext4 /dev/sda1 /mnt

Nu när det är monterat kan vi lista filsystemet. Roten finns på monteringspunkten, `/mnt`.

ls /mnt

Det ser ut som förväntat.

Redigera fstab

Vi måste nu redigera fstab-filen och ändra referenser till ext3 (eller ext2 om det är ditt ursprungliga filsystem) till ext4.

Den Live-CD som används i exemplet har nanoredigeraren. Om nano inte finns, finns det en annan redigerare som följer med Linux-distributionen.

nano /mnt/etc/fstab

Nanoredigeraren öppnas. Leta efter alla förekomster av ”ext3” eller ”ext2” och ändra dem till ”ext4”. I detta fall finns det en förekomst av ext3.

Ext3 ersätts med ext4.

Spara filen med Ctrl+O och avsluta med Ctrl+X.

Uppdatera grub

Eftersom vi har monterat sda1 på /mnt, har vägarna till filsystemet flyttats. Därför var sökvägen till nano `/mnt/etc/fstab` istället för `/etc/fstab`.

Eftersom grub förväntar sig att hitta filer på vissa platser, måste vi få det att se ut som att filsystemet är monterat normalt. Med andra ord ska roten vara på `/` och inte på `/mnt`. Kommandot `chroot` gör att vi kan köra ett kommando med den angivna rotpunkten.

Kommandot är:

chroot /mnt

Kommandotolken har ändrats.

Nu kan vi utfärda kommandot `update-grub` för att grub ska läsa fstab-filen och konfigurera om sig.

update-grub

Efter att grub har konfigurerat sig själv, måste vi installera en ny instans av grub på hårddisken (sda, inte sda1). Skriv bara ”sda”, inte ”sda1”.

grub-install /dev/sda

Starta om din Linux

Starta om systemet och ta ut Live CD:n. När systemet startat, öppna ett terminalfönster och skriv:

blkid

Som du ser är filsystemet nu ext4.

Maskinen som användes i detta exempel tog lång tid att starta om (över 10 minuter). Det antogs först att något gått fel, men tålamodet lönade sig och den startade till slut. Det kan ha berott på att det var en virtuell maskin eller att filsystemkonverteringen utfördes under den första uppstarten. Om din maskin beter sig likadant, ha tålamod. Allt kanske inte är förlorat.

Efterföljande omstarter gick lika snabbt som vanligt.

Uppgradera din Linux istället

Nu har du genomfört uppgraderingen, men du använder en gammal Linux-version med ett modernt filsystem.

Om det är viktigt att byta till ett nytt filsystem och din hårdvara klarar det, är det bästa alternativet att uppgradera till en aktuell Linux-distribution. Du får alla säkerhets- och mjukvarufördelar som följer med en sådan uppgradering.

Men om det inte går, och ibland har vi inte de alternativ vi önskar, kan du använda de här stegen för att uppgradera filsystemet.