Difference between revisions of "Ext4 (Italiano)"

From ArchWiki
Jump to: navigation, search
(wikify some external links, use https for archlinux.org)
(23 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à.
  
 
Fonte: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]
 
Fonte: [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies]
  
==Creating ext4 Partitions From Scratch==
+
==Creazione di partizioni ext4 "from scratch"==
  
# Upgrade your system: {{Codeline|pacman -Syu}}
+
# Aggiornare il sistema: {{Ic|pacman -Syu}}
# Format the partition: {{Codeline|mkfs.ext4 /dev/sdxY}} (replace {{Codeline|sdxY}} with the device to format (e.g. {{Codeline|sda1}}))
+
# Formattare la partizione: {{Ic|mkfs.ext4 /dev/sdxY}} (sostituire {{Ic|sdxY}} con il dispositivo da formattae (es. {{Ic|sda1}}))
# Mount the partition
+
# Montare la partizione
# Add an entry to {{Filename|/etc/fstab}}, using the filesystem 'type' ext4
+
# Aggiungere una voce a {{ic|/etc/fstab}}, usando il filesystem "type" ext4
  
{{Tip|See the mkfs.ext4 man page for more options; edit {{Filename|/etc/mke2fs.conf}} to view/configure default options.}}
+
{{Tip|Consultare il mkfs.ext4 man page per ulteriori opzioni; modificare {{ic|/etc/mke2fs.conf}} per visualizzare/configurare le opzioni di default.}}
  
==Migrating From ext3 to ext4==
+
==Migrazione da ext3 a ext4==
  
There are two ways of migrating partitions from ext3 to ext4:
+
Ci sono due modi per passare da ext3 a partizioni ext4:
* mounting ext3 partitions as ext4 without converting (compatibility)
+
* mediante il montaggio delle partizioni ext3 come ext4 senza conversione (compatibilità)
* converting ext3 partitions to ext4 (performance)
+
* mediante la conversione da ext3 a ext4 (performance)
  
These two approaches are described below.
+
Questi due metodi sono descritti di seguito.
  
===Mounting ext3 Partitions as ext4 Without Converting===
+
===Montare partizioni ext3 come ext4 senza convertirle===
  
====Rationale====
+
====Fondamento logico====
  
A compromise between fully converting to ext4 and simply remaining with ext3 is to mount existing ext3 partitions as ext4.
+
Un compromesso tra convertire completamente a ext4 e rimanere con ext3, è quello di montare le partizioni esistenti ext3 come ext4.
  
'''Pros:'''
+
'''Pro:'''
* Compatibility (the filesystem can continue to be mounted as ext3) – This allows users to still read the filesystem from other distributions/operating systems without ext4 support (e.g. Windows with ext3 drivers)
+
* 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)
* Improved performance (though not as much as a fully-converted ext4 partition) – See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details
+
* Miglioramento delle prestazioni (anche se non tanto quanto una piena conversione a della partizione a ext4) – Consultare [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] per maggiori delucidazioni.
  
'''Cons:'''
+
'''Contro:'''
* Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)
+
* Meno funzionalità complessive di ext4 utilizzate (solo quelle che non cambiano il formato del disco, quali l'assegnazione e la ripartizione multiblock ritardato)
  
{{Note|Except for the relative novelty of ext4 (which can be seen as a risk), '''there is no major drawback to this technique'''.}}
+
{{Note|Fatta eccezione per la relativa novità di ext4 (che può essere vista come un rischio), '''non vi è grave inconveniente a questa tecnica
 +
'''.}}
  
====Procedure====
+
====Procedura====
  
# Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions you would like to mount as ext4.
+
# Modificare {{ic|/etc/fstab}} e cambiare il "type" da ext3 a ext4 per ogni partizione che si desidera montare come ext4.
# Re-mount the affected partitions.
+
# Rimontare le partizioni in questione.
# Done.
+
# Fatto.
  
===Converting ext3 Partitions to ext4===
+
===Convertire partizioni ext3 a ext4===
  
====Rationale====
+
====Fondamento logico====
  
To experience the benefits of ext4, an irreversible conversion process must be completed.
+
Per provare i vantaggi di ext4, deve essere completato un irreversibile processo di conversione.
  
'''Pros:'''
+
'''Pro:'''
* Improved performance and new features – See [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] for details
+
* Prestazioni migliorate e nuove funzionalità – Consultare [http://kernelnewbies.org/Ext4 Ext4 - Linux Kernel Newbies] per maggiori delucidazioni.
  
'''Cons:'''
+
'''Contro:'''
* Read-only access from Windows can be provided by Ext2Explore, but there is currently no driver for writing data.
+
* L'accesso in sola lettura da Windows può essere fornito da Ext2Explore, ma non c'è attualmente nessun driver per la scrittura dei dati.
* Irreversible (ext4 partitions cannot be 'downgraded' to ext3)
+
* Irreversibile (le partizioni in ext4 non possono essere ripristinate a ext3)
  
====Prerequisites====
+
====Prerequisiti====
  
The following software is required on the Arch Linux system:
+
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}}
  
If converting one's /boot partition to ext4:
+
Convertendo la propria partizione /boot a ext4:
* {{Codeline|1=grub >= 0.97}} (with ext4 patch)
+
* {{Ic|1=grub >= 0.97}} (con patch ext4)
  
{{Note|The ext4 patch is included by default with Arch's GRUB package (at the time of writing, but this will likely not change). Otherwise, [[GRUB2]] is required for booting from an ext4 partition.}}
+
{{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|Booting from an ext4 partition is not 'officially' supported by GRUB, and [[GRUB2]] is still under development. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. '''CONSIDER YOURSELF WARNED!}}
+
{{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!}}
  
If converting one's root (/) partition to ext4:
+
Se si converte la partizione di root (/) a ext4:
* {{Codeline|1=mkinitcpio >= 0.5.20}}
+
* {{Ic|1=mkinitcpio >= 0.5.20}}
  
If converting one's root (/) partition to ext4, the following software is also needed on a bootable CD/USB drive:
+
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=Using the latest Arch Linux release (2009.02) is recommended. Older Arch Linux images (<= 2008.06) ship with an older version of {{Codeline|e2fsprogs}}, but it is a simple matter to {{Codeline|pacman -S e2fsprogs}} from the live environment after setting up networking. Alternatively, [http://www.sysresccd.org/Download SystemRescueCd >= 1.1.4] contains an appropriate version, and is in itself a handy CD to have.}}
+
{{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.}}
  
====Procedure====
+
====Procedura====
  
These instructions were adapted from http://ext4.wiki.kernel.org/index.php/Ext4_Howto and http://bbs.archlinux.org/viewtopic.php?id=61602. They have been tested and confirmed by this author as of January 16, 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!''' Perform a sysupgrade to ensure all required packages are up-to-date: {{Codeline|pacman -Syu}}
+
* '''UPGRADE!''' Eseguire un sysupgrade per garantire che tutti i pacchetti necessari siano aggiornati: {{Ic|pacman -Syu}}
* '''[[Backup programs|BACK-UP!]]''' Back-up all data on any ext3 partitions that are to be converted to ext4. Although ext4 is considered 'stable' for general use, it is still a relatively young and untested file system. Furthermore, this conversion process was only tested on a relatively simple setup; it is impossible to test each of the many possible configurations the user may be running.
+
* '''[[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.
* Edit {{Filename|/etc/fstab}} and change the 'type' from ext3 to ext4 for any partitions that are to be converted to 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 is backwards-compatible with ext3 until extents and other new fancy options are enabled. If the user has a partition that is shared with another OS that cannot yet read ext4 partitions, it is possible to mount said partition as ext4 in Arch and still be able to use it as ext3 elsewhere at this point... Not so after the next step! Note, however, that there are fewer benefits to using ext4 if the partition is not fully converted.}}
+
{{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.}}
  
* The conversion process with {{Codeline|e2fsprogs}} must be done when the drive is not mounted. If converting one's root (/) partition, the simplest way to achieve this is to boot from some other live medium, as described in the 'Prerequisites' section above.
+
* 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.
** Boot the live medium (if necessary).
+
** Avviare il supporto live (se necessario).
** For each partition to be converted to ext4:
+
** Per ogni partizione da convertire in ext4:
*** Ensure the partition is '''NOT''' mounted
+
*** Assicurarsi che la partizione '''NON''' sia montata
*** Run {{Codeline|tune2fs -O extents,uninit_bg,dir_index /dev/the_partition}} (where {{Codeline|/dev/the_partition}} is replaced by the path to the desired partition, such as {{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}})
*** Run {{Codeline|fsck -fp /dev/the_partition}}
+
*** Eseguire {{Ic|fsck -fDp /dev/the_partition}}
  
{{Note|The user '''MUST''' fsck the filesystem, or it will be unreadable! This fsck run is needed to return the filesystem to a consistent state. '''It WILL find checksum errors in the group descriptors''' -- this is expected. The '-f' parameter asks fsck to force checking even if the file system seems clean. The '-p' parameter asks fsck to 'automatically repair' (otherwise, the user will be asked for input for each error).
+
{{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).
You may need to run fsck -f rather than fsck -fp.}}
+
Potrebbe essere necessario eseguire fsck -f anziché fsck -fp.}}
  
* Reboot Arch Linux!
+
* Riavviare Arch Linux!
  
{{Warning|1=If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: {{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}}}}
  
====Migrating files to extents====
+
====Migrare i file all'estensione ====
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new ''extents'' of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called ''e4defrag'' is being developed and will take care of this task ; however, it is not yet ready for production.
+
{{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.  
  
Fortunately, it is possible to use the ''chattr'' program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition):
+
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
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.
+
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.  
  
Using the ''lsattr'' command, it is possible to check that files are now using ''extents''. The letter 'e' should appear in the attribute list of the listed files.
+
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.