Convertire ext3 in ext4

Stamattina finalmente mi sono deciso a fare la conversione.

Le caratteristiche del nuovo filesystem potete trovarle qui, ne elenco alcune:

  • Extent
  • Preallocazione persistente
  • Allocazione ritardata
  • Deframmentazione in linea
  • Controllo dell’integrità più rapido

Ho seguito le istruzioni di questo articolo, mentre la discussione sul forum si trova qui.

Iniziamo..nel mio caso avevo tutte le partizioni in ext3:

[~]
mount | grep ext
/dev/sda5 on / type ext3 (rw)
/dev/sda7 on /home type ext3 (rw)
/dev/sda8 on /media/banca_dati type ext3 (rw)
[~]

Ho cambiato prima nell’fstab “ext3″ in “ext4″.

Poi visto che volevo convertire anche la root, ovviamente non potevo usare systemrescuecd bootandola da hard disk, perchè appunto l’ho installata in una directory su / (comincio a pentirmene).

EDIT: Come suggerito da claudio, è possibile usare systemrescuecd direttamente da hdd anche se l’avete copiato come me in una cartella di /, basta infatti aggiungere l’opzione docache nei parametri di avvio del kernel.

Se invece non l’avete su hard disk potete seguire questi passi per metterla su una chiavetta usb:

[~]
dd if=/dev/sdb1 of=/media/banca_dati/marinzpen_backup.iso
mkfs.vfat -F 32 -n SYSRESC /dev/sdb1
sudo pacman -S syslinux
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb
sync
[~]


[~]
mount -o loop -t iso9660 /media/banca_dati/temp/sysrescuecdISO.iso /media/temp
mount /dev/sdb1 /media/usbpen
cp -r /media/temp/* /media/usbpen/
rm -rf /media/usbpen/syslinux
mv /media/usbpen/isolinux/isolinux.cfg /media/usbpen/isolinux/syslinux.cfg
mv /media/usbpen/isolinux /media/usbpen/syslinux
[~]

[~]
umount /media/usbpen
syslinux /dev/sdb1
sync
[~]

La spiegazione di questi passi la trovate qui.
Bootando quindi da usb ho dato i comandi:

tune2fs -O extents,uninit_bg,dir_index /dev/sda5
fsck -pf /dev/sda5
tune2fs -O extents,uninit_bg,dir_index /dev/sda7
fsck -pf /dev/sda7
tune2fs -O extents,uninit_bg,dir_index /dev/sda8
fsck -pf /dev/sda8

(informazioni su quelle flag le trovate guardando il man di tune2fs e e2fsck).

Finito.. ho riavviato in arch senza alcun problema, controllando comunque i montaggi:

[~] mount | grep ext
/dev/sda5 on / type ext4 (rw)
/dev/sda7 on /home type ext4 (rw)
/dev/sda8 on /media/banca_dati type ext4 (rw)
[~]

Se invece si presenta un kernel panic, occorre avviare da fallback e ricreare l’initram con il solito comando:

mkinitcpio -p kernel26

4 Responses to “Convertire ext3 in ext4”

  1. marinz Says:

    “docache: copy all the files it needs to RAM . This permits the sysrescuecd to be ejected and insert another disc in the drive. The system runs faster. Requires at least 256MB of memory. ”

    Quante cose che si imparano.. Averlo saputo prima evitavo tutti quei passaggi per metterla su chiavetta.. grazie claudio per il suggerimento :-D

  2. claudio Says:

    Sono d’accordo ottima guida, aggiungo che l’installazione sotto root non è un problema basta usare l’opzione docache per bootare sysresccd, naturalmente
    l’opzione è da inserire in grub.

  3. marinz Says:

    @bego: Grazie.. hai fatto benissimo a metterla su una partizione staccata, pensandoci è la soluzione migliore , farò anch’io così

  4. bego Says:

    Ottima guida, mi è piaciuta anche quella relativa all’installazione di systemrescuecd su hdd. Ma per evitare di dover smanettare con una penna usb come sopra da te citato, ho installato systemrescuecd su una piccola partizione ext4 ed al volo ho convertito la / in ext4.
    Grazie per le guide


Leave a Reply