Un modo intelligente per deframmentare un filesystem FAT?


10

Qual è il modo migliore per deframmentare un filesystem FAT quando si esegue Linux / Unix (ad esempio su chiavetta USB)?


4
Vorrei scegliere la tua prima opzione se lo spazio non è un problema. Vorrei creare un filesystem pulito in un file di grandi dimensioni che è montato in loop. In questo modo hai l'opportunità di verificare il risultato prima di sovrascrivere lo stick.
jippie,

Il suggerimento di @ jippie offre anche un backup. Altrimenti sceglierei un'utilità di deframmentazione, ma prima controllo attentamente che sia affidabile e prima eseguo il backup se ho qualche allegato ai dati.
vonbrand

@jippie: intendi creare un file loop della stessa dimensione della partizione fat iniziale, copiarlo su tutto, controllare, quindi dd sul dispositivo originale? Avrai bisogno di spazio extra e non vedo come sia meglio semplicemente copiare il file sul filesystem ext locale temporaneamente. O mi manca qualcosa.
Marc MAURICE,

1
È possibile verificare il risultato prima di modificare il contenuto dell'unità flash.
jippie,

Risposte:


7

È possibile verificare se un file è frammentato o meno utilizzando l' filefragutilità.

In questo modo è possibile filtrare i file che non sono frammentati ed eseguire la copia / copia solo per i file già frammentati. Questo dovrebbe farti risparmiare un po 'di tempo. Tuttavia, tenere presente che non esiste alcuna garanzia che il nuovo layout del file sarà migliore di quello precedente.

Il modo migliore è ignorare del tutto la frammentazione dei file. Soprattutto su una chiavetta USB non importa, spreca solo cicli di scrittura e, a differenza degli HDD, non ci sono parti mobili e quindi non è una penalità a causa della frammentazione.

La deframmentazione dovrebbe essere necessaria solo se accadesse qualcosa di divertente che causava la frammentazione dei file in un modo molto estremo. Ad esempio i client torrent che scaricano i contenuti dei file in ordine casuale senza preallocazione. Ma a meno che il FAT non abbia iniziato a supportare file sparsi ad un certo punto, non è nemmeno un problema lì, poiché il preallocazione è obbligatorio su un tale FS.


1
Grazie per la tua risposta. In effetti ho bisogno di un modo per deframmentare completamente il filesystem FAT perché sto usando Easy2boot e ogni file iso non deve essere frammentato.
Marc MAURICE,

Mi sembra un metodo obsoleto. GRUB2 isoloop è molto popolare, quindi molte distribuzioni supportano il montaggio in loop di un iso da qualsiasi luogo già. Quelli che non lo fanno, potrebbe essere che funzioni direttamente da una partizione, ma potrebbe anche fallire. Dipende interamente dall'ISO stesso.
frostschutz,

2
Lo svantaggio di GRUB2 isoloop è che caricherà direttamente un kernel Linux nell'ISO. Devi conoscere il percorso del kernel / initrd da caricare e perderai il menu ISOLINUX che offre opzioni di avvio personalizzate.
Marc MAURICE,

Trovare il percorso non è difficile, e il resto dipende da quanti sforzi vuoi fare per convertire le voci del menu isolinux in un sottomenu grub2 ... ma sì, tutte le soluzioni hanno i loro svantaggi. Ho appena testato la mia partizione ISO: NESSUNO dei file non è frammentato. E furono copiati uno per uno. Risolvere il problema sarebbe un grosso problema per me, quindi preferirò rinunciare agli ISO che non supportano il montaggio isoloop.
frostschutz,

Non ho mai usato easy2boot da solo, ma poiché questa soluzione prevede la creazione di una partizione, in primo luogo non potresti farlo - una partizione per ISO e dd. Nessuna frammentazione possibile in questo modo. O in alternativa, se possibile, un filesystem senza frammentazione (ISO dentro ISO?)
frostschutz

0

Vediamo questo da una prospettiva diversa, perché hai dato un esempio "per esempio su chiavetta USB"

ESEMPIO CATTIVO

Una chiavetta USB è la memoria FLASH e ci sono due cose da considerare: 1) Poiché la memoria FLASH non ha parti in movimento, non è possibile notare un notevole miglioramento delle prestazioni eseguendo una deframmentazione. Gli defrg servono per ripulire il file system o riorganizzare i blocchi di file per avvicinarli gli uni agli altri - per ridurre i movimenti fisici del braccio (ricerca) e il tempo di attesa della rotazione del disco (latenza). Flash non ha questo. 2) Scrivere e scrivere e scrivere sulla memoria flash la consuma. Ora, per una durata di scrittura di 100K, la tua chiavetta USB potrebbe durare da alcuni a 10 anni, ma il numero di volte che puoi scrivere è un numero "finito". Deframmenti costanti sulla chiavetta USB mangiano via a quella vita a causa della limitazione della resistenza.

E questa non è solo la tua chiavetta USB, schede SD, Compact FLASH e persino unità SSD.

Il mio punto, non deframmentare solo per il diavolo, sapere qual è la tecnologia sottostante nel file system e le implicazioni, e anche se è magnetica e non elettronica, troppa deframmentazione può eventualmente corrompere il tuo file system e perdere i tuoi file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.