Piero V.

exFAT: occhio al cluster size

Contestualizzazione

Di recente, ho aiutato una persona che conosco a risolvere un problema con dei file di sistema di Windows corrotti. Speravo fosse la volta buona che riuscissi a risolvere un problema con sfc. Invece, dopo una giornata di tentativi, ho deciso di procedere con la formattazione e confermare l’inutilità di quegli strumenti 😓️.

Abbiamo colto l’occasione per cambiare l’HDD con un’SSD e quindi ci siamo trovati con un lento disco da 500GB in più tra le mani. Così abbiamo deciso di usarlo per creare un backup da mettere via e sperare che non serva mai usare.

500GB non sono molti, sicuramente non è abbastanza per poter fare versionamenti. Anzi, i dati originali sono un po’ più di 500GB, quindi sapevamo in partenza che sarebbe servito fare dei sacrifici. Ma avere una copia del genere è sempre meglio che avere un disco e non usarlo o svenderlo.

Ci sono mille modi di fare un backup, ma ho deciso di tenere le cose semplici, e fare un rsync -a delle directory da copiare. Detto schiettamente: se mai dovesse servire, vorrebbe dire che tutti gli altri sistemi “più seri” avrebbero fallito. E doversi preoccupare di come recuperare i dati sarebbe solamente l’ennesimo problema… … [Leggi il resto]

File system universale

Leggendo i recenti guai del SuperBosca mi è tornata in mente una cosa di cui avrei voluto scrivere da tempo: il problema dei file system.

Tanto per cominciare, bisogna chiarire cos’è un file system. Diciamo - ma non è assolutamente una definizione - che è come un sistema operativo gestisce i dati in un supporto di memorizzazione. Per esempio come sono salvati i privilegi, le informazioni come la data di modifica e il contenuto stesso.

Al giorno d’oggi esistono numerosi file system, tra i più diffusi FAT, NTFS, HFS, Ext e molti altri ancora.

Non esiste uno standard ed ogni sistema operativo ne supporta un numero maggiore o minore.

Tuttavia in assenza di uno standard ufficiale doveva pur stabilirsi uno standard non ufficiale: il FAT32.

Il FAT è un filesystem inventato da Microsoft. La sua primissima versione fu introdotta col Basic. Anche se si evolse, rimangono numerosi limiti anche nella versione più recente, la FAT32. Per esempio la dimensione massima di un file è 4GB. Per superare tutti questi problemi la Microsoft inventò NTFS.

Ovviamente nei sistemi operativi Windows non ci sono problemi, col Mac non ho mai provato però mi pare di aver capito che qualche problema invece ci sia e Linux lo può leggere con Fuse ma mandando richiedendo uno sforzo della CPU.

Ma allora qual è il problema? Abbiamo il supporto dei file grandi con questo filesystem.

Il problema sono i device embedded. Alcuni lo supportano solo in lettura, altri ancora non possono né leggerlo né scriverlo. Il problema è molto grave: io per esempio ho un disco esterno da 1TB ma per farlo leggere dall’homebrew channel della Wii e dalla TV ho dovuto tenerlo in FAT32. E la limitazione dei 4GB al giorno d’oggi, anche con questi device, soprattutto con le televisioni fullhd, risultano molto ridicole.

Come mai non è possibile implementare un buon supporto all’NTFS? Immagino per i brevetti e licenze varie.

Se avessimo un file system standard e privo di questi vincoli, allora sarebbe meglio per tutti.

Errori FAT/FAT32 e GNU Linux

Mi è capitato ormai più di una volta di aver errori con le chiavette formattate in Fat o in Fat 32 e di dover andare su Windows a dare chfs o un comando simile.

Oggi però mi è capitato con l’hard disk esterno per colpa di un fottutissimo cavo che penso non userò mai più con il disco.

Non volevo andare dall’altro computer dove c’è una partizione con windows, così mi sono ricordato che tempo fa avevo già cercato un modo di risolvere questo problema ma non l’avevo mai applicato.

Si tratta di usare fsck.vfat (o fsck che tanto riesce a lavorare lo stesso).

Il primo problema era che mi chiedeva quali dei due FAT utilizzare, così dopo una mini ricerca ho trovato di digitare 1, però non funzionava, cioè mi dava una frase in inglese che vuol dire “Il filesystem è stato lasciato non cambiato”.

Un’altra ricerca e ho trovato il comando da eseguire, che chiede se effettuare i cambiamenti, voi premete y.

fsck -V -r /dev/sdb1

-V è il solito V per la modalità verbosa, r è la modalità interattiva, mentre /dev/sdb1 è il disco da controllare e varia in base alle esigenze.

Ho trovato questa risoluzione nel forum internazionale di ubuntu.

Dato che ci sono vi do anche un comando utile trovato sul web (non so dove) per copiare dei dati sull’hard disk ma copiando solo quelli modificati.

Chi lo conosce già sa dalla definizione che si tratta di rsync.

rsync -r --delete sorgente destinazione

Il -r serve per la modalità recursive cioè quella che esplora le cartelle, --delete serve per cancellare i file che nella sorgente non esistono più.

È molto comodo e poi ci sarebbero anche molte opzioni per la rete che però non mi pare il caso di spiegare ora.

L’unica cosa è che tralascia le cartelle e i file con simboli come : sui filesystem windows perché non sono ammessi.

File MP3 e corruzione chiavetta

Sono qui che sgancio maledizioni contro il FAT32.

Ho una chiave da 4GB formattata con questo filesystem e mi serviva copiare musica da Linux: che non l’avessi mai fatto!

Vorrei mettere l’ext2 ma poi come la presto o uso con gente che ha windows?

Si è corrotta!

Per fortuna ho sentito le varie canzoni che erano nella directory che mi dava input/output error alla copia e funzionano, però alla rimozione mi rimonta la chiave come read-only.

Per questo serve Windows e dovete digitare dal cmd chkdsk /f vostrachiave: .

Poi ho compresso una directory di musica che non riusciva mai a copiare con tar.gz.

Non fatelo!

Mi dà errore anche se provo a fare dos2unix file.tar.gz.

Ora sto provando a fare un archivio Zip.

Update 23/08/2010: sembra che si possa anche fare su Linux con fsck.vfat.