Difference between revisions of "Ext4 (Italiano)"

From ArchWiki
Jump to: navigation, search
(Migrating files to extents)
(wikify some external links, use https for archlinux.org)
(19 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:HOWTOs (Italiano)]]
 
 
[[Category:File systems (Italiano)]]
 
[[Category:File systems (Italiano)]]
{{i18n|Ext4}}
+
[[cs:Ext4]]
 
+
[[de:Ext4]]
{{translateme}}
+
[[en:Ext4]]
 
+
[[es:Ext4]]
 +
[[fr:Ext4]]
 +
[[ru:Ext4]]
 +
[[tr:Ext4]]
 +
[[zh-CN:Ext4]]
 
Ext4 è l'evoluzione del filesystem Linux più utilizzato, ext3. Per molti versi, ext4 è un miglioramento più consistente di Ext3 rispetto quello che è stato ext3 su ext2. Ext3 implementava la nuova funzionalità del journaling a Ext2, ma Ext4 modifica importanti strutture dati nel filesystem, come quelli destinati a memorizzare i file dei dati. Il risultato è un filesystem con un design migliorato, migliori prestazioni, affidabilità e funzionalità.
 
Ext4 è l'evoluzione del filesystem Linux più utilizzato, ext3. Per molti versi, ext4 è un miglioramento più consistente di Ext3 rispetto quello che è stato ext3 su ext2. Ext3 implementava la nuova funzionalità del journaling a Ext2, ma Ext4 modifica importanti strutture dati nel filesystem, come quelli destinati a memorizzare i file dei dati. Il risultato è un filesystem con un design migliorato, migliori prestazioni, affidabilità e funzionalità.
  
Line 11: Line 14:
 
==Creazione di partizioni ext4 "from scratch"==
 
==Creazione di partizioni ext4 "from scratch"==
  
# Aggiornare il sistema: {{Codeline|pacman -Syu}}
+
# Aggiornare il sistema: {{Ic|pacman -Syu}}
# Formattare la partizione: {{Codeline|mkfs.ext4 /dev/sdxY}} (sostituire {{Codeline|sdxY}} con il dispositivo da formattae (es. {{Codeline|sda1}}))
+
# Formattare la partizione: {{Ic|mkfs.ext4 /dev/sdxY}} (sostituire {{Ic|sdxY}} con il dispositivo da formattae (es. {{Ic|sda1}}))
 
# Montare la partizione
 
# Montare la partizione
# Aggiungere una voce a {{Filename|/etc/fstab}}, usando il filesystem 'type' ext4
+
# Aggiungere una voce a {{ic|/etc/fstab}}, usando il filesystem "type" ext4
  
{{Tip|Consultare il mkfs.ext4 man page per ulteriori opzioni; modificare {{Filename|/etc/mke2fs.conf}} per visualizzare/configurare le opzioni di default.}}
+
{{Tip|Consultare il mkfs.ext4 man page per ulteriori opzioni; modificare {{ic|/etc/mke2fs.conf}} per visualizzare/configurare le opzioni di default.}}
  
 
==Migrazione da ext3 a ext4==
 
==Migrazione da ext3 a ext4==
Line 44: Line 47:
 
====Procedura====
 
====Procedura====
  
# Modificare {{Filename|/etc/fstab}} e cambiare il 'type' da ext3 a ext4 per ogni partizione che si desidera montare come ext4.
+
# Modificare {{ic|/etc/fstab}} e cambiare il "type" da ext3 a ext4 per ogni partizione che si desidera montare come ext4.
 
# Rimontare le partizioni in questione.
 
# Rimontare le partizioni in questione.
 
# Fatto.
 
# Fatto.
Line 64: Line 67:
  
 
Il seguente software è richiesto sul sistema operativo Arch Linux:
 
Il seguente software è richiesto sul sistema operativo Arch Linux:
* {{Codeline|1=kernel26 >= 2.6.28}}
+
* {{Ic|1=kernel >= 2.6.28}}
* {{Codeline|1=e2fsprogs >= 1.41}}
+
* {{Ic|1=e2fsprogs >= 1.41}}
  
 
Convertendo la propria partizione /boot a ext4:
 
Convertendo la propria partizione /boot a ext4:
* {{Codeline|1=grub >= 0.97}} (con patch ext4)
+
* {{Ic|1=grub >= 0.97}} (con patch ext4)
  
 
{{Note|La patch ext4 è inclusa di default con il pacchetto GRUB di Arch (al momento in cui si sta scrivendo, e questo probabilmente non cambierà). Altrimenti, [[GRUB2]] è richiesto per l'avvio da una partizione ext4.}}
 
{{Note|La patch ext4 è inclusa di default con il pacchetto GRUB di Arch (al momento in cui si sta scrivendo, e questo probabilmente non cambierà). Altrimenti, [[GRUB2]] è richiesto per l'avvio da una partizione ext4.}}
  
{{Warning|Fare il boot da una partizione ext4 non è "ufficialmente" supportato da GRUB, e [[GRUB2]] è ancora in fase di sviluppo. Mentre GRUB è attivo e predefinito, l'opzione "sicura" è fare il boot da una partizione /boot formattata ext2 o ext3  
+
{{Attenzione|Fare il boot da una partizione ext4 non è "ufficialmente" supportato da GRUB, e [[GRUB2]] è ancora in fase di sviluppo. Mentre GRUB è attivo e predefinito, l'opzione "sicura" è fare il boot da una partizione /boot formattata ext2 o ext3  
 
. '''CONSIDERATEVI AVVISATI!}}
 
. '''CONSIDERATEVI AVVISATI!}}
  
 
Se si converte la partizione di root (/) a ext4:
 
Se si converte la partizione di root (/) a ext4:
* {{Codeline|1=mkinitcpio >= 0.5.20}}
+
* {{Ic|1=mkinitcpio >= 0.5.20}}
  
 
Se si converte la partizione di root (/) a ext4, anche il seguente software è necessario su un CD/USB:
 
Se si converte la partizione di root (/) a ext4, anche il seguente software è necessario su un CD/USB:
* {{Codeline|1=e2fsprogs >= 1.41}}
+
* {{Ic|1=e2fsprogs >= 1.41}}
  
{{Note|1=È raccomandabile usare le ultime release di Arch Linux (2009.02). Le immagini di Arch Linux più datate (<= 2008.06) includono versioni di {{Codeline|e2fsprogs}} obsolete, anche se è semplice risolvere con {{Codeline|pacman -S e2fsprogs}} dall'ambiente live dopo aver configurato la rete. In alternativa, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] include una versione adatta, ed è un CD utile da avere a portata di mano.}}
+
{{Note|1=È raccomandabile usare le ultime release di Arch Linux (2009.02). Le immagini di Arch Linux più datate (<= 2008.06) includono versioni di {{Ic|e2fsprogs}} obsolete, anche se è semplice risolvere con {{Ic|pacman -S e2fsprogs}} dall'ambiente live dopo aver configurato la rete. In alternativa, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] include una versione adatta, ed è un CD utile da avere a portata di mano.}}
  
 
====Procedura====
 
====Procedura====
  
Queste istruzioni sono state adattate da http://ext4.wiki.kernel.org/index.php/Ext4_Howto e http://bbs.archlinux.org/viewtopic.php?id=61602. Sono state verificate e confermate da questo autore il 16 gennaio 2009.
+
Queste istruzioni sono state adattate da http://ext4.wiki.kernel.org/index.php/Ext4_Howto e https://bbs.archlinux.org/viewtopic.php?id=61602. Sono state verificate e confermate da questo autore il 16 gennaio 2009.
  
* '''UPGRADE!''' Eseguire un sysupgrade per garantire che tutti i pacchetti necessari siano aggiornati: {{Codeline|pacman -Syu}}
+
* '''UPGRADE!''' Eseguire un sysupgrade per garantire che tutti i pacchetti necessari siano aggiornati: {{Ic|pacman -Syu}}
 
* '''[[Backup programs|BACK-UP!]]''' Eseguire il back up di tutti i dati delle partizioni ext3 che devono essere convertiti in ext4. Anche se ext4 è considerato "stabile" per un uso generale, è ancora relativamente giovane e non ancora collaudato completamente. Inoltre, questo processo di conversione è stato solo testato su una configurazione relativamente semplice, non è possibile testare ogni singola configurazione delle molte possibili che si potrebbero avere in esecuzione.
 
* '''[[Backup programs|BACK-UP!]]''' Eseguire il back up di tutti i dati delle partizioni ext3 che devono essere convertiti in ext4. Anche se ext4 è considerato "stabile" per un uso generale, è ancora relativamente giovane e non ancora collaudato completamente. Inoltre, questo processo di conversione è stato solo testato su una configurazione relativamente semplice, non è possibile testare ogni singola configurazione delle molte possibili che si potrebbero avere in esecuzione.
* Modificare {{Filename|/etc/fstab}} e cambiare il "tipo" da ext3 a ext4 per tutte le partizioni che devono essere convertite a ext4.
+
* Modificare {{ic|/etc/fstab}} e cambiare il "tipo" da ext3 a ext4 per tutte le partizioni che devono essere convertite a ext4.
  
{{Warning|ext4 è retrocompatibile con ext3 fino a che le estensioni ed altre opzioni rimangono abilitate. Se si ha una partizione che viene condivisa con un altro sistema operativo che non può ancora leggere il formato ext4, è possibile montare suddetta partizione come ext4 su Arch e poter ancora usarla come ext3 su altri sistemi. Non sarà più così dopo il seguente passo! Si noti, tuttavia, che ci sono meno vantaggi ad utilizzare ext4 se la partizione non è completamente convertita.}}
+
{{Attenzione|ext4 è retrocompatibile con ext3 fino a che le estensioni ed altre opzioni rimangono abilitate. Se si ha una partizione che viene condivisa con un altro sistema operativo che non può ancora leggere il formato ext4, è possibile montare suddetta partizione come ext4 su Arch e poter ancora usarla come ext3 su altri sistemi. Non sarà più così dopo il seguente passo! Si noti, tuttavia, che ci sono meno vantaggi ad utilizzare ext4 se la partizione non è completamente convertita.}}
  
* Il processo di conversione con {{Codeline|e2fsprogs}} deve essere fatto quando l'unità non è montata. If converting one's root (/) partition, il modo più semplice per raggiungere questo obiettivo è fare il boot da qualche altra supporto live, come descritto nella sezione 'Prerequisiti' sopra.
+
* Il processo di conversione con {{Ic|e2fsprogs}} deve essere fatto quando l'unità non è montata. Se applicato ad una partizione di root (/), il modo più semplice per raggiungere questo obiettivo è fare il boot da qualche altra supporto live, come descritto nella sezione 'Prerequisiti' sopra.
 
** Avviare il supporto live (se necessario).
 
** Avviare il supporto live (se necessario).
 
** Per ogni partizione da convertire in ext4:
 
** Per ogni partizione da convertire in ext4:
 
*** Assicurarsi che la partizione '''NON''' sia montata
 
*** Assicurarsi che la partizione '''NON''' sia montata
*** Eseguire {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (dove {{Codeline|/dev/the_partition}} va sostituito con il percorso della partizione desiderata, come {{Codeline|/dev/sda1}})
+
*** Eseguire {{Ic|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (dove {{Ic|/dev/the_partition}} va sostituito con il percorso della partizione desiderata, come {{Ic|/dev/sda1}})
*** Eseguire {{Codeline|fsck -fp /dev/the_partition}}
+
*** Eseguire {{Ic|fsck -fDp /dev/the_partition}}
  
{{Note|Si '''DEVE''' eseguire un fsck sul filesystem, altrimenti sarà illeggibile! L'esecuzione di fsck è necessaria per restituire al file system uno stato di coerenza.
+
{{Note|Si '''DEVE''' eseguire un fsck sul filesystem, altrimenti sarà illeggibile! L'esecuzione di fsck è necessaria per restituire al file system uno stato di coerenza. '''Verranno trovati errori di checksum nel "descriptors group"''' -- questo è previsto. Il parametro "-f" richiede a fsck di forzare il controllo, anche se il file system sembra pulito. Il parametro "-p" richiede a fsck di "riparare automaticamente" (in caso contrario, all'utente verranno richiesti interventi per ogni errore).
'''Verranno trovati errori di checksum nel "descriptors group"''' -- questo è previsto. Il parametro '-f' richiede a fsck di forzare il controllo, anche se il file system sembra pulito. Il parametro '-p' richiede a fsck di "riparare automaticamente" (in caso contrario, all'utente verranno richiesti interventi per ogni errore).
+
 
Potrebbe essere necessario eseguire fsck -f anziché fsck -fp.}}
 
Potrebbe essere necessario eseguire fsck -f anziché fsck -fp.}}
  
 
* Riavviare Arch Linux!
 
* Riavviare Arch Linux!
  
{{Warning|1=Se si ha convertito la partizione root (/), si possono verificare dei kernel panic durante il tentativo di avvio. Se questo accade, è sufficiente riavviare con l'initial ramdisk "fallback", e rigenerare l'initial ramdisk predefinito: {{Codeline|mkinitcpio -p kernel26}}}}
+
{{Attenzione|1=Se è stata convertita la partizione root (/), si possono verificare dei kernel panic durante il tentativo di avvio. Se questo accade, è sufficiente riavviare con l'initial ramdisk "fallback", e rigenerare l'initial ramdisk predefinito: {{Ic|mkinitcpio -p linux}}}}
  
 
====Migrare i file all'estensione ====
 
====Migrare i file all'estensione ====
 +
{{Attenzione|'''NON''' utilizzare il seguente metodo con i repository Mercurial che sono stati clonati in locale, poichè in questo modo si possono danneggiare i repository. Si potrebbero inoltre corrompere determinati "hard link" nel filesystem.}}
 
Anche se il filesystem risulta ora convertito in ext4, tutti i file scritti prima della conversione non godono dei vantaggi derivanti dalla nuova "estensione" di ext4, che va a migliorare le performance per file grandi e a ridurre la frammentazione e il tempo di controllo del filesystem. Per godere pienamente dei vantaggi di ext4, tutti i file dovrebbero essere riscritti sul disco. Un programma chiamato "e4defrag" è in via di sviluppo e si prenderà cura di questo compito; tuttavia non è ancora pronto per la produzione.  
 
Anche se il filesystem risulta ora convertito in ext4, tutti i file scritti prima della conversione non godono dei vantaggi derivanti dalla nuova "estensione" di ext4, che va a migliorare le performance per file grandi e a ridurre la frammentazione e il tempo di controllo del filesystem. Per godere pienamente dei vantaggi di ext4, tutti i file dovrebbero essere riscritti sul disco. Un programma chiamato "e4defrag" è in via di sviluppo e si prenderà cura di questo compito; tuttavia non è ancora pronto per la produzione.  
  
Per fortuna, è possibile utilizzare il programma "chattr", che farà in modo che il kernel riscriva i file utilizzando la nuova estensione. È possibile lanciare il comando su tutti i file e cartelle di una partizione (ad esempio se /home si trova su una partizione dedicata) in questa maniera:  
+
Per fortuna, è possibile utilizzare il programma "chattr", che farà in modo che il kernel riscriva i file utilizzando la nuova estensione. È possibile lanciare il comando su tutti i file e cartelle di una partizione (ad esempio se /home si trova su una partizione dedicata) in questa maniera, da root:  
 
  find /home -xdev -type f -print0 | xargs -0 chattr +e
 
  find /home -xdev -type f -print0 | xargs -0 chattr +e
 
  find /home -xdev -type d -print0 | xargs -0 chattr +e
 
  find /home -xdev -type d -print0 | xargs -0 chattr +e
 
Si raccomanda di provare questo comando prima su una piccola quantità di file, e controllare che tutto sia andato per il verso giusto. Potrebbe essere anche utile controllare il filesystem dopo la conversione.  
 
Si raccomanda di provare questo comando prima su una piccola quantità di file, e controllare che tutto sia andato per il verso giusto. Potrebbe essere anche utile controllare il filesystem dopo la conversione.  
  
Usando il comando ''lsattr'', è possibile controllare che i file ora utilizzino l'"estensione". La lettera 'e' dovrebbe apparire nella lista attributi dei file elencati.
+
Usando il comando ''lsattr'', è possibile controllare che i file ora utilizzino l'"estensione". La lettera "e" dovrebbe apparire nella lista attributi dei file elencati.
  
==Troubleshooting==
+
==Suggerimenti==
 +
===Rimuovere i blocchi riservati===
 +
 
 +
Di default, il 5% di un file system è contrassegnato come riservato per l'utente root. Per i moderni dischi ad alta capacità, questo equivale a più del necessario, in particolare se la partizione non viene utilizzata per i file di sistema. È generalmente ritenuto sicuro ridurre la percentuale dei blocchi riservati per liberare spazio sul disco, nei casi in cui la partizione sia:
 +
 
 +
*Molto grande (per esempio superiore ai 50 G)
 +
*Non utilizzata per i file di sistema
 +
 
 +
Utilizzare a questo scopo l'utilità tune2fs. Il comando d'esempio riportato in seguito, imposta la percentuale dei blocchi riservati sulla partizione /dev/sdXY all' 1.0%:
 +
 
 +
tune2fs -m 1.0 /dev/sdXY
 +
 
 +
==Risoluzione dei problemi==
  
 
===Kernel Panic===
 
===Kernel Panic===
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :
+
Un problema che quest'autore ha incontrato è quello di un kernel panic dopo aver convertito la partizione di root (/) in ext4. Ciò è dovuto al fatto che il ramdisk iniziale identifica la partizione come "ext4dev", invece di "ext4". È semplice quindi avviare con il ramdisk "fallback" iniziale e ricreare il ramdisk iniziale di "base":
* Remount the root partition in read-write mode; assuming 'XXX' is your root partition :
+
* Rimontare la partizione di root in modalità lettura-scrittura; presupponendo che la partizione root sia 'XXX' :
 
  # mount /dev/XXX / -o remount,rw
 
  # mount /dev/XXX / -o remount,rw
* Manually mount the boot partition on /boot if it is on a separate partition.
+
* Montare manualmente la partizione di boot in /boot se si trova su un'altra partizione.
* Re-create the ramdisk :
+
* Ricreare il ramdisk :
  # mkinitcpio -p kernel26
+
  # mkinitcpio -p linux
  
During the creation process, {{Codeline|mkinitcpio}} correctly detected and included ext4 modules in the initial ramdisk.
+
Durante il processo di creazione, {{Ic|mkinitcpio}} individuerà correttamente e includerà il modulo ext4 nel ramdisk iniziale.
  
===GRUB Error 13===
+
===Corruzione dei dati===
After a recent kernel update, this author encountered a GRUB error while attempting to boot from an ext4 /boot partition:
+
Alcuni dei primi utilizzatori di ext4 si sono imbattuti in corruzioni di dati dopo un reboot forzato. Si legga [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 perdita di dati; spiegazioni e soluzioni] per maggiori informazioni.
Error 13: Invalid or unsupported executable format
+
  
The solution is to boot from the live medium and chroot into the Arch Linux installation:
+
Dal kernel 2.6.30, ext4 è considerato "(più) sicuro". Numerose sono le patch utilizzate per aumentare la robustezza di ext4 - sebbene ad un lieve costo in termini di prestazioni. Una nuova opzione di mount ({{Ic|auto_da_alloc}}) può essere utilizzata per disabilitare questo comportamento. Per maggiori informazioni, si legga [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - aumento di performance del filesystem].
# mkdir /mnt/arch
+
# mount -t ext4 /dev/sda1 /mnt/arch
+
# mount -t proc proc /mnt/arch/proc
+
# mount -t sysfs sys /mnt/arch/sys
+
# mount -o bind /dev /mnt/arch/dev
+
  
  # chroot /mnt/arch /bin/bash
+
Per le versioni di kernel precedenti alla 2.6.30, si consideri di poter aggiungere {{Ic|1=rootflags=data=ordered}} alla linea {{Ic|kernel}} nel file di GRUB {{ic|menu.lst}} come misura preventiva.
  
If /boot is on a separate partition, this partition must also be mounted:
+
===Barrier e performance===
# mount -t ext4 /dev/sda2 /boot
+
A partire dal kernel 2.6.30, le performance di ext4 sono diminuite a causa di cambiamenti atti a migliorare l'integrità dei dati [http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1].
  
Then, the following command should resolve the issue. (Does anyone know why?):
+
''La maggior parte dei filesystem (XFS, ext3, ext4, reiserfs) inviano al disco delle barriere in scrittura dopo l'fsync o durante i transaction commits. Le barriere in scrittura inducono ad un corretto ordinamento delle stesse, rendendo sicure all'uso le scritture sulla cache del disco (ad un certo calo delle prestazioni). Se i dischi hanno un qualche vincolo alla batteria, disabilitare le barriere può migliorare le prestazioni.''
# grub-install --recheck /dev/sda
+
  
===Data Corruption===
+
''L'invio di barriere in scrittura può essere disabilitato utilizzando l'opzione di mount barrier=0 (per ext3, ext4, e reiserfs), o usando l'opzione di mount nobarrier mount (per XFS)'' [http://doc.opensuse.org/products/draft/SLES/SLES-tuning_sd_draft/cha.tuning.io.html].
Some early adopters of ext4 encountered data corruption after a hard reboot. Please read [http://www.h-online.com/open/Ext4-data-loss-explanations-and-workarounds--/news/112892 Ext4 data loss; explanations and workarounds] for more information.
+
  
Since kernel 2.6.30, ext4 is considered "safe(er)." Several patches improved the robustness of ext4 - albeit at a slight performance cost. A new mount option ({{Codeline|auto_da_alloc}}) can be used to disable this behavior. For more information, please read [http://kernelnewbies.org/Linux_2_6_30#head-329ba44b44a7f58c98ae22b8f2730418cdd6630d Linux 2 6 30 - Filesystems performance improvements].
+
{{Warning|Disabilitando le barriere quando i dischi non garantiscono che la cache scriva in caso di mancanza di alimentazione può portare a una grave corruzione del file system e perdita di dati.}}
  
For kernel versions earlier than 2.6.30, consider adding {{Codeline|1=rootflags=data=ordered}} to the {{Codeline|kernel}} line in GRUB's {{Filename|menu.lst}} as a preventative measure.
+
Per disattivare le barriere aggiungere l'opzione {{Ic|1=barrier=0}} al filesystem desiderato in {{ic|/etc/fstab}}. Ad esempio:
 
+
===Improving performance===
+
Since kernel 2.6.30, ext4 performance has decreased due to changes that serve to improve data integrity.[http://www.phoronix.com/scan.php?page=article&item=ext4_then_now&num=1] Users can improve performance with the {{Codeline|nobarrier}} option when mounting the disk, but '''this can be dangerous''' and may result in data loss or corruption after power failures. To turn barriers off, add the option {{Codeline|1=barrier=0}} to the desired filesystem in {{Filename|/etc/fstab}}. For example:
+
  
 
  # /dev/sda5    /    ext4    noatime,barrier=0    0    1
 
  # /dev/sda5    /    ext4    noatime,barrier=0    0    1
 +
 +
====E4rat====
 +
[[E4rat]] è un'applicazione di precaricamento progettata per ext4. Controlla i file aperti durante l'avvio, ottimizza la loro collocazione sulla partizione per migliorare i tempi di accesso e li precarica all'inizio del processo di boot.

Revision as of 15:41, 4 December 2012

Ext4 è l'evoluzione del filesystem Linux più utilizzato, ext3. Per molti versi, ext4 è un miglioramento più consistente di Ext3 rispetto quello che è stato ext3 su ext2. Ext3 implementava la nuova funzionalità del journaling a Ext2, ma Ext4 modifica importanti strutture dati nel filesystem, come quelli destinati a memorizzare i file dei dati. Il risultato è un filesystem con un design migliorato, migliori prestazioni, affidabilità e funzionalità.

Fonte: Ext4 - Linux Kernel Newbies

Creazione di partizioni ext4 "from scratch"

  1. Aggiornare il sistema: pacman -Syu
  2. Formattare la partizione: mkfs.ext4 /dev/sdxY (sostituire sdxY con il dispositivo da formattae (es. sda1))
  3. Montare la partizione
  4. Aggiungere una voce a /etc/fstab, usando il filesystem "type" ext4
Tip: Consultare il mkfs.ext4 man page per ulteriori opzioni; modificare /etc/mke2fs.conf per visualizzare/configurare le opzioni di default.

Migrazione da ext3 a ext4

Ci sono due modi per passare da ext3 a partizioni ext4:

  • mediante il montaggio delle partizioni ext3 come ext4 senza conversione (compatibilità)
  • mediante la conversione da ext3 a ext4 (performance)

Questi due metodi sono descritti di seguito.

Montare partizioni ext3 come ext4 senza convertirle

Fondamento logico

Un compromesso tra convertire completamente a ext4 e rimanere con ext3, è quello di montare le partizioni esistenti ext3 come ext4.

Pro:

  • Compatibilità (il filesystem può continuare ad essere montato come ext3) – Questo permette agli utenti di leggere ancora il filesystem da altre distribuzioni/sistemi operativi senza supporto a ext4 (ad esempio, Windows con i driver ext3)
  • Miglioramento delle prestazioni (anche se non tanto quanto una piena conversione a della partizione a ext4) – Consultare Ext4 - Linux Kernel Newbies per maggiori delucidazioni.

Contro:

  • Meno funzionalità complessive di ext4 utilizzate (solo quelle che non cambiano il formato del disco, quali l'assegnazione e la ripartizione multiblock ritardato)
Note: Fatta eccezione per la relativa novità di ext4 (che può essere vista come un rischio), non vi è grave inconveniente a questa tecnica .

Procedura

  1. Modificare /etc/fstab e cambiare il "type" da ext3 a ext4 per ogni partizione che si desidera montare come ext4.
  2. Rimontare le partizioni in questione.
  3. Fatto.

Convertire partizioni ext3 a ext4

Fondamento logico

Per provare i vantaggi di ext4, deve essere completato un irreversibile processo di conversione.

Pro:

Contro:

  • L'accesso in sola lettura da Windows può essere fornito da Ext2Explore, ma non c'è attualmente nessun driver per la scrittura dei dati.
  • Irreversibile (le partizioni in ext4 non possono essere ripristinate a ext3)

Prerequisiti

Il seguente software è richiesto sul sistema operativo Arch Linux:

  • kernel >= 2.6.28
  • e2fsprogs >= 1.41

Convertendo la propria partizione /boot a ext4:

  • grub >= 0.97 (con patch ext4)
Note: La patch ext4 è inclusa di default con il pacchetto GRUB di Arch (al momento in cui si sta scrivendo, e questo probabilmente non cambierà). Altrimenti, GRUB2 è richiesto per l'avvio da una partizione ext4.
Attenzione: Fare il boot da una partizione ext4 non è "ufficialmente" supportato da GRUB, e GRUB2 è ancora in fase di sviluppo. Mentre GRUB è attivo e predefinito, l'opzione "sicura" è fare il boot da una partizione /boot formattata ext2 o ext3 . CONSIDERATEVI AVVISATI!

Se si converte la partizione di root (/) a ext4:

  • mkinitcpio >= 0.5.20

Se si converte la partizione di root (/) a ext4, anche il seguente software è necessario su un CD/USB:

  • e2fsprogs >= 1.41
Note: È raccomandabile usare le ultime release di Arch Linux (2009.02). Le immagini di Arch Linux più datate (<= 2008.06) includono versioni di e2fsprogs obsolete, anche se è semplice risolvere con pacman -S e2fsprogs dall'ambiente live dopo aver configurato la rete. In alternativa, SystemRescueCd >= 1.1.4 include una versione adatta, ed è un CD utile da avere a portata di mano.

Procedura

Queste istruzioni sono state adattate da http://ext4.wiki.kernel.org/index.php/Ext4_Howto e https://bbs.archlinux.org/viewtopic.php?id=61602. Sono state verificate e confermate da questo autore il 16 gennaio 2009.

  • UPGRADE! Eseguire un sysupgrade per garantire che tutti i pacchetti necessari siano aggiornati: pacman -Syu
  • BACK-UP! Eseguire il back up di tutti i dati delle partizioni ext3 che devono essere convertiti in ext4. Anche se ext4 è considerato "stabile" per un uso generale, è ancora relativamente giovane e non ancora collaudato completamente. Inoltre, questo processo di conversione è stato solo testato su una configurazione relativamente semplice, non è possibile testare ogni singola configurazione delle molte possibili che si potrebbero avere in esecuzione.
  • Modificare /etc/fstab e cambiare il "tipo" da ext3 a ext4 per tutte le partizioni che devono essere convertite a ext4.
Attenzione: ext4 è retrocompatibile con ext3 fino a che le estensioni ed altre opzioni rimangono abilitate. Se si ha una partizione che viene condivisa con un altro sistema operativo che non può ancora leggere il formato ext4, è possibile montare suddetta partizione come ext4 su Arch e poter ancora usarla come ext3 su altri sistemi. Non sarà più così dopo il seguente passo! Si noti, tuttavia, che ci sono meno vantaggi ad utilizzare ext4 se la partizione non è completamente convertita.
  • Il processo di conversione con e2fsprogs deve essere fatto quando l'unità non è montata. Se applicato ad una partizione di root (/), il modo più semplice per raggiungere questo obiettivo è fare il boot da qualche altra supporto live, come descritto nella sezione 'Prerequisiti' sopra.
    • Avviare il supporto live (se necessario).
    • Per ogni partizione da convertire in ext4:
      • Assicurarsi che la partizione NON sia montata
      • Eseguire tune2fs -O extents,uninit_bg,dir_index /dev/the_partition (dove /dev/the_partition va sostituito con il percorso della partizione desiderata, come /dev/sda1)
      • Eseguire fsck -fDp /dev/the_partition
Note: Si DEVE eseguire un fsck sul filesystem, altrimenti sarà illeggibile! L'esecuzione di fsck è necessaria per restituire al file system uno stato di coerenza. Verranno trovati errori di checksum nel "descriptors group" -- questo è previsto. Il parametro "-f" richiede a fsck di forzare il controllo, anche se il file system sembra pulito. Il parametro "-p" richiede a fsck di "riparare automaticamente" (in caso contrario, all'utente verranno richiesti interventi per ogni errore). Potrebbe essere necessario eseguire fsck -f anziché fsck -fp.
  • Riavviare Arch Linux!
Attenzione: Se è stata convertita la partizione root (/), si possono verificare dei kernel panic durante il tentativo di avvio. Se questo accade, è sufficiente riavviare con l'initial ramdisk "fallback", e rigenerare l'initial ramdisk predefinito: mkinitcpio -p linux

Migrare i file all'estensione

Attenzione: NON utilizzare il seguente metodo con i repository Mercurial che sono stati clonati in locale, poichè in questo modo si possono danneggiare i repository. Si potrebbero inoltre corrompere determinati "hard link" nel filesystem.

Anche se il filesystem risulta ora convertito in ext4, tutti i file scritti prima della conversione non godono dei vantaggi derivanti dalla nuova "estensione" di ext4, che va a migliorare le performance per file grandi e a ridurre la frammentazione e il tempo di controllo del filesystem. Per godere pienamente dei vantaggi di ext4, tutti i file dovrebbero essere riscritti sul disco. Un programma chiamato "e4defrag" è in via di sviluppo e si prenderà cura di questo compito; tuttavia non è ancora pronto per la produzione.

Per fortuna, è possibile utilizzare il programma "chattr", che farà in modo che il kernel riscriva i file utilizzando la nuova estensione. È possibile lanciare il comando su tutti i file e cartelle di una partizione (ad esempio se /home si trova su una partizione dedicata) in questa maniera, da root:

find /home -xdev -type f -print0 | xargs -0 chattr +e
find /home -xdev -type d -print0 | xargs -0 chattr +e

Si raccomanda di provare questo comando prima su una piccola quantità di file, e controllare che tutto sia andato per il verso giusto. Potrebbe essere anche utile controllare il filesystem dopo la conversione.

Usando il comando lsattr, è possibile controllare che i file ora utilizzino l'"estensione". La lettera "e" dovrebbe apparire nella lista attributi dei file elencati.

Suggerimenti

Rimuovere i blocchi riservati

Di default, il 5% di un file system è contrassegnato come riservato per l'utente root. Per i moderni dischi ad alta capacità, questo equivale a più del necessario, in particolare se la partizione non viene utilizzata per i file di sistema. È generalmente ritenuto sicuro ridurre la percentuale dei blocchi riservati per liberare spazio sul disco, nei casi in cui la partizione sia:

  • Molto grande (per esempio superiore ai 50 G)
  • Non utilizzata per i file di sistema

Utilizzare a questo scopo l'utilità tune2fs. Il comando d'esempio riportato in seguito, imposta la percentuale dei blocchi riservati sulla partizione /dev/sdXY all' 1.0%:

tune2fs -m 1.0 /dev/sdXY

Risoluzione dei problemi

Kernel Panic

Un problema che quest'autore ha incontrato è quello di un kernel panic dopo aver convertito la partizione di root (/) in ext4. Ciò è dovuto al fatto che il ramdisk iniziale identifica la partizione come "ext4dev", invece di "ext4". È semplice quindi avviare con il ramdisk "fallback" iniziale e ricreare il ramdisk iniziale di "base":

  • Rimontare la partizione di root in modalità lettura-scrittura; presupponendo che la partizione root sia 'XXX' :
# mount /dev/XXX / -o remount,rw
  • Montare manualmente la partizione di boot in /boot se si trova su un'altra partizione.
  • Ricreare il ramdisk :
# mkinitcpio -p linux

Durante il processo di creazione, mkinitcpio individuerà correttamente e includerà il modulo ext4 nel ramdisk iniziale.

Corruzione dei dati

Alcuni dei primi utilizzatori di ext4 si sono imbattuti in corruzioni di dati dopo un reboot forzato. Si legga Ext4 perdita di dati; spiegazioni e soluzioni per maggiori informazioni.

Dal kernel 2.6.30, ext4 è considerato "(più) sicuro". Numerose sono le patch utilizzate per aumentare la robustezza di ext4 - sebbene ad un lieve costo in termini di prestazioni. Una nuova opzione di mount (auto_da_alloc) può essere utilizzata per disabilitare questo comportamento. Per maggiori informazioni, si legga Linux 2 6 30 - aumento di performance del filesystem.

Per le versioni di kernel precedenti alla 2.6.30, si consideri di poter aggiungere rootflags=data=ordered alla linea kernel nel file di GRUB menu.lst come misura preventiva.

Barrier e performance

A partire dal kernel 2.6.30, le performance di ext4 sono diminuite a causa di cambiamenti atti a migliorare l'integrità dei dati [1].

La maggior parte dei filesystem (XFS, ext3, ext4, reiserfs) inviano al disco delle barriere in scrittura dopo l'fsync o durante i transaction commits. Le barriere in scrittura inducono ad un corretto ordinamento delle stesse, rendendo sicure all'uso le scritture sulla cache del disco (ad un certo calo delle prestazioni). Se i dischi hanno un qualche vincolo alla batteria, disabilitare le barriere può migliorare le prestazioni.

L'invio di barriere in scrittura può essere disabilitato utilizzando l'opzione di mount barrier=0 (per ext3, ext4, e reiserfs), o usando l'opzione di mount nobarrier mount (per XFS) [2].

Warning: Disabilitando le barriere quando i dischi non garantiscono che la cache scriva in caso di mancanza di alimentazione può portare a una grave corruzione del file system e perdita di dati.

Per disattivare le barriere aggiungere l'opzione barrier=0 al filesystem desiderato in /etc/fstab. Ad esempio:

# /dev/sda5    /    ext4    noatime,barrier=0    0    1

E4rat

E4rat è un'applicazione di precaricamento progettata per ext4. Controlla i file aperti durante l'avvio, ottimizza la loro collocazione sulla partizione per migliorare i tempi di accesso e li precarica all'inizio del processo di boot.