Deframmentazione delle partizioni NTFS da Linux


Risposte:


12

Sì, puoi usare la vibrazione . Dovrai prima aggiungere un repository personalizzato al tuo sistema:

sudo add-apt-repository ppa:un-brice/ppa
sudo apt-get update
sudo apt-get install shake-fs

Quindi puoi farlo

sudo shake /some/dir

10
Shake non è abbastanza un programma di deframmentazione, ma semplicemente copia ogni file nella speranza che la copia sia meno frammentata. Ovviamente è lontano da come funzionano i veri deframmentatori.
Rustyx,

9

Non esiste uno strumento simile in giro, per quello che so.

Alcuni siti riportano il seguente comando

# WARNING - does not work
fsck -t ntfs --kerneldefrag /dev/hdX

ma questo non funziona e non è chiaro dove lo ottengano.


7
-1 Perché aggiungere una risposta quando non è nemmeno utile in alcun modo?
Wolfer,

1
@Wolfer è buono, quindi quando lo troviamo da qualche altra parte sappiamo che non funziona
Krispy,

6

Aggiornamento: UltraDefrag per Linux:

UltraDefrag è un potente strumento di deframmentazione Open Source per la piattaforma Windows. Può deframmentare qualsiasi file di sistema, inclusi hive del registro e file di paging. Inoltre, uno degli obiettivi principali di UltraDefrag è svolgere il lavoro nel modo più rapido e affidabile possibile. Viene portato su Linux e NTFS-3G per deframmentare le partizioni NTFS. Attualmente è disponibile solo una versione di prova in modalità console. Leggere il file README.linux incluso per compilare e testare

http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html

[Non l'ho ancora usato da solo. L'ho trovato tramite un thread su un forum Arch . Seguire ulteriormente il thread fino alla pagina successiva porta a ulteriori informazioni sull'argomento. Prova a tuo rischio e pericolo. —Kevjonesin—]


1

Questo è un GRANDE avvertimento per tutti quelli che pensano che NFTS possa essere deframmentato su Linux semplicemente copiando i file (clonando solo i file), ecc:

  • Alcuni NTFS (file / cartelle) possono avere un attributo speciale attivo, si chiama Compressione NTFS

da quello che so, ogni volta che Linux (cp, fsarchiver, ecc.) scrive un file / una cartella su un NTFS, lo scrive sempre senza compressione NTFS, indipendentemente dal fatto che il file / la cartella abbia la compressione attivata o disattivata.

Quindi puoi arrivare a una situazione (la incontro nel modo più duro), in cui il ripristino con fsarchive (o cp, ecc.) Renderebbe la partizione piena e non sufficiente.

Alcuni tipi di dati possono raggiungere un rapporto di compressione NTFS superiore a 3, quindi è possibile avere una partizione X GiB con molti file e la somma dei file deve avere dimensioni vicine a 3 * X.

Do questo avvertimento perché non è ben noto e talvolta crea grossi mal di testa. come quando si ripristina un clone è necessario più spazio dell'intera partizione clonata, causata dalla perdita della compressione NTFS su Linux.

Inoltre, con dati molto speciali (rapporto NTFS maggiore di 5) raggiungo questa situazione:

  • Dimensione della partizione NTFS di X GiB
  • Il file che contiene il clone (con la migliore compressione consentita dallo strumento, credo GZip) ha preso 2 * X GiB

Oh sì, il clone è stato compresso e ha impiegato il doppio della dimensione della partizione.

Ciò è causato dal fatto che lo strumento clone legge i file in chiaro (in chiaro, non compresso), quindi comprime i dati (con un rapporto davvero peggiore rispetto a NTFS).

Naturalmente il ripristino dei dati non si adatta a quella partizione, poiché i dati ripristinati verranno inseriti senza compressione NTFS.

Spero sia chiaro un altro motivo per non usare la compressione NFTS? Beh, per niente, uso molto la compressione NTFS (in passato). I file VDI (Virtual Box) ottengono un rapporto davvero buono.

Ora avevo scoperto il file Pismo Mount (e funziona anche su Linux). può creare un file che funge da contenitore (come una cartella) e può essere compresso (anche con un rapporto migliore di NFTS) e allo stesso tempo crittografato.

Perché lo menziono. perché qualsiasi strumento clone vedrà tale contenitore come un file (quando non montato come cartella) e leggerà / scaricherà / eseguirà il backup del flusso di dati compresso, non dei semplici dati non compressi (come con la compressione NTFS). quindi il ripristino è come con qualsiasi altro file.

Invece di comprimere una cartella NTFS con l'attributo di compressione NTFS, ho messo una cartella virtuale Mount file Pismo. ottenere una migliore compressione, ecc.

Devo anche avvertire tutti voi interessati a tale strumento gratuito. non si riduce (almeno ancora), quindi se il contenuto della cartella cambia molto non è una buona idea.

Ma per i dischi virtuali immutabili, gli ISO e le cose che non cambieranno, il rapporto che ottiene è molto vicino a quelli di LZMA2 (7-Zip) e può essere letto / scritto al volo.

Ed è multipiattaforma.

Nota il cattivo della compressione NTFS che parla di frammentazione. quando scrivi un file su un NTFS con la compressione NTFS attiva, lo fa in questo modo (sì, progettato in modo orribile, penso che sia fatto in questo modo per garantire una maggiore frammentazione in modo intenzionale, il peggio non può essere fatto):

  1. La posizione di scrittura iniziale è pre-calcolata come 64 KB * N, dove N è il numero del blocco 64 KB che si tenterà di comprimere
  2. Un buffer per 64 KB è riservato
  3. Quel buffer viene riempito con 64 KB e quindi compresso
  4. Vengono scritti solo i blocchi 4K necessari, il resto viene lasciato come spazio libero

Quindi crea molti, molti GAP nel mezzo del file e solo dopo una deframmentazione del file i GAP scompaiono, ma tale deframmentazione non si verifica fino a quando l'utente non lo ordina (contig.exe, defrag.exe, ecc.).

Sì, scrive l'n-esimo blocco da 64 KB su un multiplo di posizione di 64 KB, indipendentemente dal fatto che i dati precedenti possano o meno essere compressi, lasciando uno spazio tra ogni blocco da 64 KB (se tutti potessero essere compressi).

La compressione delle cartelle virtuali di Pismo File Mount si comporta come una normale compressione, in modalità piped, quindi senza spazi vuoti. almeno fino a quando non elimini qualcosa.

Anche un altro avvertimento, non inserire file VHD / VHDX al suo interno, Windows non sarà in grado di collegarli! Windows usa un trucco del kernel per montare queste cose, non usa il livello del file system, funziona a basso livello.

Vorrei anche mettere le mani su un deframmentatore NTFS Linux, sicuramente sarebbe più veloce di tutto ciò che funziona su Windows. è una follia totale deframmentare lo spazio libero. o meglio parlare. creando un tutto abbastanza grande per un nuovo file di grandi dimensioni.

Inoltre sarebbe bello che la mia memoria funzionasse meglio. in passato stavo usando uno strumento (riga di comando, scusa) su Windows che poteva copiare / spostare un file in modo non frammentato. spostando i file necessari mentre si ottiene l'intero necessario e non frammentando quelli. dà un messaggio solo se non riesce a trovare un modo per mettere il file (impossibile ottenere un buco) o un avviso diverso se ha bisogno di frammentare un altro file (chiedendo se autorizzato dall'utente), ecc. è stato davvero grande. Non mi ricordavo il nome (e forse non funziona con le finestre moderne, era per Win2000).


0

No. Questi sono filesystem di Windows quindi dovrai usare Windows per deframmentarli.


Wine non ha l'app di deframmentazione standard di Windows? ???
Juan,

2
@ Juan, no, fa parte di Windows. WINE consente solo l'esecuzione di applicazioni di terzi scritte per Windows. Utilizza anche ioctls specifici del driver del filesystem di Windows che non sono disponibili su Linux.
psusi,

0

Esiste un trucco molto noto per archiviare una deframmentazione NTFS (incluso lo spazio libero) ... può essere fatto con un Live Linux come SystemRescueCD ...

Tuttavia, è necessario disporre di un secondo HDD o almeno uno spazio libero del 51% (che se non si utilizza la compressione).

Il trucco (molto complicato) è usare gli strumenti per "clonare" la partizione, ma non quelli tipici ... esiste uno strumento che può "clonare" una partizione NTFS ma non fare un "clone" esatto ... mi spiego ...

Lo strumento è fsarchive (se non ricordo male).

Crea un file molto grande (come fanno gli strumenti di clonazione), con tutti i file (attenzione ai metadati speciali di file NTFS, flussi penso che siano chiamati), proprio come fa uno strumento "clone" ...

Ma la parte difficile arriva quando si ripristina ... non inserisce i file dove si trovano, mette i file senza alcuna frammentazione.

L'avevo usato per la partizione di sistema di Windows e per le partizioni di dati NTFS ... con successo ... non molto facile da usare / capire (leggi attentamente i documenti) ... ma può fare il trucco.

Ricorda ... un file così grande che può essere compresso, quindi non è necessario avere un 51% gratuito.

Ma in ogni caso, prima devi ridurre la partizione NTFS ... usa GParted (se non ricordo male).

Quindi passi:

  1. Caso peggiore: l'HDD ha solo una GRANDE partizione NTFS, con abbastanza spazio libero
  2. Avviare SystemRescuCD (se si desidera avviare X windows con il comando della procedura guidata)
  3. Usa GParted per ridurre la partizione NTFS alla sua dimensione minima (frammenterà di più i file NTFS, non importa)
  4. Usa GParted per creare un'altra partizione su spazio libero, meglio se tipo ext4 (journal)
  5. Montare tale nuova partizione, ma non montare NTFS
  6. Usa fsarchiver per creare un "clone" della partizione NTFS, usa la compressione e archivia il file bif sulla partizione creata
  7. D'ora in poi questo è molto RISCHIO: utilizzare GParted per eliminare la partizione NTFS e ricrearla
  8. Ripristina il "clone" usando fsarchiver, tutti i file sulla partizione NTFS saranno 1 frammento (tranne uno o due perché $ MFT potrebbe essere messo al centro, non a livello o fine della partizione)
  9. Utilizzare Gparted per ridurre la partizione NTFS, se necessario
  10. Verificare che NFTS sia corretto, che possa essere montato, letto / scritto e smontato
  11. Smonta la partizione ext4 appena creata
  12. Usa Gparted per far crescere ext4 (o meglio, eliminarlo e ricrearlo)

Tutto qui, gente ... come ho detto molto complicato e rischioso, ovviamente.

Attenzione ai punti chiave:

  • La riduzione NFTS lascia abbastanza spazio libero per contenere un'immagine compressa della partizione NTFS (il 51% libero sull'HDD garantirà che ci sia abbastanza)
  • fsarchiver non salva i flussi NTFS?
  • fsarchiver restore non colloca i file dove sono, li mette senza frammentazione (come una copia)
  • Dopo aver eliminato e ricreato la partizione NTFS non è possibile tornare indietro

I passaggi sono per: Utilizzare un linux LiveCD / LiveUSB per deframmentare una partizione NTFS che utilizza il 100% del disco, senza che nessun altro HDD si colleghi a tale PC [deve disporre di spazio libero sufficiente].

IMPORTANTE:

  • Alcuni potrebbero pensare che se si dispone del 51% di spazio libero sull'HDD dopo il restringimento di NTFS, potrebbe essere più sicuro creare solo ext4 e copiare tutto NTFS su di esso, quindi eliminare NTFS, ricrearlo e copiarlo indietro ... FARLO causerà la perdita, come le autorizzazioni di sicurezza NTFS, ecc

Finché so che GParted / fsarchiver è la soluzione più vicina (per usare solo un LiveCD / LiveUSB con Linux), non veloce, in qualche modo rischioso, ma termini soddisfacenti imposti dalla persona che pubblica la domanda.

ATTENZIONE: è molto, molto rischioso ... come con qualsiasi strumento "clone" ... e per ora non conosco nessun altro modo migliore ... e perderà i flussi NTFS (se non ricordo male)

PER FAVORE: leggi attentamente i documenti di fsarchiver, prima di usarlo.

Ho qualche responsabilità (l'avevo usato sui miei dati, ma comunque ho un BackUP esterno - buoni partices).

In pratica ... tutte le informazioni che ho, le metto su almeno tre supporti diversi (HDD, DVD, memorie flash), con almeno tre copie su ciascun supporto, quindi ne ho 9 copie ... se perdo 8 di li riposa ancora una volta per recuperare i dati ... sono un po 'paranoico, lo so.


Non consiglierei questo metodo, poiché (proprio come hai detto) è molto rischioso e di solito non vale la pena a causa di una deframmentazione. Meglio usare i sistemi Windows live per fare un simile lavoro (o il sistema Windows originale - perché no?).
Byte Commander

fsarchive è solo un sofisticato archivio tar che memorizza alcuni attributi estesi. Non deframmenta nulla. Il metodo è buono come una semplice copia di file da una partizione a un altro filesystem pulito.
ZAB,
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.