Défragmentation des partitions NTFS à partir de Linux


Réponses:


12

Oui, vous pouvez utiliser le shake . Vous devez d'abord ajouter un référentiel personnalisé à votre système:

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

Ensuite, vous pouvez faire

sudo shake /some/dir

10
Shake n'est pas tout à fait un défragmenteur, il copie simplement chaque fichier dans l'espoir que la copie sera moins fragmentée. C'est bien sûr loin de la façon dont fonctionnent les vrais défragmenteurs.
rustyx

9

Il n'y a pas un tel outil autour, pour ce que je sais.

Certains sites signalent la commande suivante

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

mais cela ne fonctionne pas, et on ne sait pas où ils l'obtiennent.


7
-1 Pourquoi ajouter une réponse quand elle n'est même d'aucune utilité?
Wolfer

1
@Wolfer c'est bon, donc quand nous le trouvons ailleurs, nous savons que cela ne fonctionne pas
krispy

6

Mise à jour: UltraDefrag pour Linux:

UltraDefrag est un puissant outil de défragmentation Open Source pour la plate-forme Windows. Il peut défragmenter tous les fichiers système, y compris les ruches de registre et les fichiers d'échange. L'un des principaux objectifs d'UltraDefrag est également de faire le travail le plus rapidement et le plus fiable possible. Il est porté sur Linux et NTFS-3G pour défragmenter les partitions NTFS. Actuellement, seule une version de test en mode console est disponible. Veuillez lire le fichier inclus README.linux pour la compilation et les tests

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

[Je ne l'ai pas encore utilisé moi-même. Trouvé via un fil sur un forum Arch . Continuer à suivre le fil jusqu'à la page suivante mène à plus sur le sujet. Essayez à vos risques et périls. — kevjonesin—]


1

Ceci est un GRAND avertissement pour tous ceux d'entre vous qui pensent que NFTS peut être défragmenté sur Linux simplement en copiant des fichiers (clonage uniquement des fichiers), etc.:

  • Certains NTFS (fichiers / dossiers) peuvent avoir un attribut spécial actif, il est appelé Compression NTFS

d'après ce que je sais, à chaque fois que Linux (cp, fsarchiver, etc.) écrit un fichier / dossier sur un NTFS, il l'écrit toujours sans compression NTFS, peu importe si le fichier / dossier a une compression activée ou désactivée.

Vous pouvez donc arriver à une situation (je la rencontre à la dure), où la restauration avec fsarchive (ou cp, etc.) ferait que la partition soit pleine et ne suffise pas.

Certains types de données peuvent atteindre un taux de compression NTFS supérieur à 3, vous pouvez donc avoir une partition X GiB avec beaucoup de fichiers et la somme des fichiers doit être proche de 3 * X.

Je donne cet avertissement car il n'est pas bien connu et crée parfois de très gros maux de tête. comme lors de la restauration d'un clone, il faut plus d'espace que la partition entière qui a été clonée, car la compression NTFS s'est perdue sous Linux.

De plus, avec des données très très spéciales (rapport NTFS supérieur à 5) j'atteins cette situation:

  • Taille de partition NTFS de X GiB
  • Le fichier qui contient le clone (avec la meilleure compression laissée par l'outil, GZip je pense) a pris 2 * X GiB

Oh oui, le clone a été compressé et il a fallu doubler la taille de la partition.

Cela est dû au fait que l'outil de clonage lit les fichiers en clair (en clair, non compressés) puis compresse les données (avec un rapport vraiment pire que NTFS).

Bien sûr, la restauration de ces données ne tiendra pas sur cette partition, car les données restaurées seront placées sans compression NTFS.

J'espère qu'il est clair qu'une autre raison pourquoi ne pas utiliser la compression NFTS? Eh bien, pas du tout, j'utilise beaucoup la compression NTFS (dans le passé). Les fichiers VDI (Virtual Box) ont un très bon rapport.

Maintenant, j'avais découvert Pismo File Mount (et cela fonctionne également sous Linux). il peut créer un fichier qui agit comme un conteneur (comme un dossier) et peut être compressé (également avec un meilleur rapport que NFTS) et en même temps crypté.

Pourquoi je le mentionne. car tout outil de clonage verra ce conteneur comme un fichier (lorsqu'il n'est pas monté en tant que dossier) et lira / videra / sauvegardera le flux de données compressé, pas les données non compressées simples (comme avec la compression NTFS). la restauration est donc comme avec tout autre fichier.

Au lieu de compresser un dossier NTFS avec l'attribut de compression NTFS, j'ai mis un dossier virtuel de montage de fichiers Pismo. obtenir une meilleure compression, etc.

Je dois également vous avertir tous intéressés par un tel outil gratuit. il n'a pas de rétrécissement (au moins encore), donc si le contenu du dossier change beaucoup, ce n'est pas une si bonne idée.

Mais pour les disques virtuels immuables, les ISO et les choses qui ne changeront pas, le rapport qu'il obtient est très proche de ceux de LZMA2 (7-Zip) et il peut être lu / écrit à la volée.

Et c'est multiplateforme.

Notez le méchant de la compression NTFS qui parle de fragmentation. lorsque vous écrivez un fichier sur un NTFS avec la compression NTFS, il le fait de cette façon (oui horriblement conçu, je pense que c'est fait comme ça pour assurer une plus grande fragmentation de manière intentionnelle, le pire ne peut pas être fait):

  1. La position de début d'écriture est pré-calculée comme 64K * N, où N est le numéro du bloc 64K qui sera tenté d'être compressé
  2. Un tampon pour 64 Ko est réservé
  3. Ce tampon est rempli de 64 Ko, puis compressé
  4. Seuls les blocs 4K nécessaires sont écrits, le reste est laissé comme espace libre

Cela crée donc beaucoup, beaucoup de GAP au milieu du fichier, et ce n'est qu'après une défragmentation de fichier que les GAP disparaissent, mais cette défragmentation ne se produit pas tant que l'utilisateur ne l'a pas commandé (contig.exe, defrag.exe, etc.).

Oui, il écrit le bloc N'th 64K sur un multiple de position de 64K, peu importe si les données précédentes pouvaient ou non être compressées, il laisse un espace entre chaque bloc 64K (si tout pouvait être compressé).

La compression du dossier virtuel de Pismo File Mount agit comme toute compression normale est censée être effectuée, en mode piped, donc pas de lacunes. au moins jusqu'à ce que vous supprimiez quelque chose.

Encore un autre avertissement, ne mettez pas de fichiers VHD / VHDX dedans, Windows ne pourra pas les attacher! Windows utilise une astuce du noyau pour monter de telles choses, il n'utilise pas le niveau du système de fichiers, fonctionne à bas niveau.

J'aimerais également mettre la main sur un défragmenteur Linux NTFS, ce serait certainement plus rapide que tout ce qui fonctionne sous Windows. c'est une folie totale de défragmenter l'espace libre. ou mieux parler. créer un tout assez grand pour un nouveau gros fichier.

De plus, ce serait bien que ma mémoire fonctionne mieux. dans le passé, j'utilisais un outil (ligne de commande, désolé) sous Windows qui pouvait copier / déplacer un fichier de manière non fragmentée. déplacer les fichiers nécessaires tout en obtenant ce dont vous avez besoin et ne pas les fragmenter. il ne donne un message que s'il ne trouve pas un moyen de mettre le fichier (impossible d'obtenir un trou) ou un avertissement différent s'il a besoin de fragmenter un autre fichier (en demandant s'il est autorisé par l'utilisateur), etc. était vraiment génial. Je ne me souvenais pas du nom (et peut-être que cela ne fonctionne pas avec les fenêtres modernes, c'était pour Win2000).


0

Ce sont des systèmes de fichiers Windows, vous devrez donc utiliser Windows pour les défragmenter.


Wine n'a-t-il pas l'application de défragmentation Windows standard? ???
Juan

2
@Juan, non, cela fait partie de Windows. WINE permet simplement d'exécuter des applications tierces écrites pour Windows. Il utilise également des ioctls spécifiques au pilote du système de fichiers Windows qui ne sont pas disponibles sur Linux.
psusi

0

Il existe une astuce très connue pour archiver une défragmentation NTFS (y compris l'espace libre) ... cela peut être fait avec un Live Linux comme SystemRescueCD ...

Mais, vous devez avoir un deuxième disque dur ou au moins un espace libre de 51% (que si vous n'utilisez pas la compression).

L'astuce (très délicate) consiste à utiliser des outils pour "cloner" la partition, mais pas ceux typiques ... il existe un outil qui peut "cloner" une partition NTFS mais ne pas faire un "clone" exact ... laissez-moi vous expliquer ...

L'outil est fsarchive (si je ne me souviens pas mal).

Il fait un très gros fichier (comme le font les outils de clonage), avec tous les fichiers (méfiez-vous des métadonnées spéciales de fichiers NTFS, les flux je pense qu'ils sont appelés), tout comme un outil "clone" le fait ...

Mais la partie délicate vient lors de la restauration ... il ne place pas les fichiers là où ils le font, il place les fichiers sans aucune fragmentation du tout.

Je l'avais utilisé pour la partition système Windows ainsi que pour les partitions de données NTFS ... avec succès ... pas très facile à utiliser / comprendre (lire attentivement les documents) ... mais peut faire l'affaire.

Rappelez-vous ... un tel gros fichier qu'il crée peut être compressé, donc pas vraiment besoin d'avoir un 51% gratuit.

Mais de toute façon, vous devez d'abord réduire la partition NTFS ... utiliser GParted (si je ne me souviens pas mal).

Alors étapes:

  1. Pire cas: le disque dur n'a qu'une seule grande partition NTFS, avec suffisamment d'espace libre
  2. Boot SystemRescuCD (si vous voulez démarrer X windows avec la commande wizard)
  3. Utilisez GParted pour réduire la partition NTFS à sa taille minimale (fragmentera davantage les fichiers NTFS, peu importe)
  4. Utilisez GParted pour créer une autre partition sur l'espace libre, mieux si le type ext4 (journal)
  5. Montez une telle nouvelle partition, mais ne montez pas NTFS
  6. Utilisez fsarchiver pour créer un "clone" de la partition NTFS, utilisez la compression et stockez le fichier bif sur la partition créée
  7. À partir de maintenant, c'est très risqué: utilisez GParted pour supprimer la partition NTFS et la recréer
  8. Restaurer le "clone" en utilisant fsarchiver, tous les fichiers sur la partition NTFS seront 1 fragment (sauf un ou deux car $ MFT pourrait être mis au milieu, pas à la strat ou à la fin de la partition)
  9. Utilisez Gparted pour réduire la partition NTFS si nécessaire
  10. Vérifiez que le NFTS est correct, peut être monté, lu / écrit et démonté
  11. Démonter la partition ext4 nouvellement créée
  12. Utilisez Gparted pour agrandir cet ext4 (ou mieux, supprimez-le et recréez-le)

Voilà, les gens ... comme je l'ai dit très délicat et risqué, bien sûr.

Méfiez-vous des points clés:

  • Le rétrécissement NFTS laisse suffisamment d'espace libre pour contenir une image compressée de la partition NTFS (51% d'espace libre sur le disque dur garantira qu'il y en a assez)
  • fsarchiver n'enregistre pas les flux NTFS?
  • fsarchiver restore ne place pas les fichiers là où ils sont, il les met sans fragmentation (comme une copie)
  • Après avoir supprimé et recréé la partition NTFS, il n'y a pas de retour possible

Les étapes sont les suivantes: Utilisez un linux LiveCD / LiveUSB pour défragmenter une partition NTFS qui utilise 100% du disque, sans aucun autre disque dur connecté à un tel PC [doit avoir suffisamment d'espace libre].

IMPORTANT:

  • Certains pourraient penser que si vous avez 51% d'espace libre sur le disque dur après le rétrécissement de NTFS, il pourrait être plus sûr de simplement créer cet ext4 et de copier tous les NTFS sur celui-ci, puis de supprimer NTFS, de le recréer et de les recopier ... comme les autorisations de sécurité NTFS, etc.

Tant que je sais que GParted / fsarchiver est la solution la plus proche (pour utiliser uniquement un LiveCD / LiveUSB avec Linux), pas rapide, en quelque sorte risqué, mais satisfaisant les conditions imposées par la personne qui pose la question.

ATTENTION: C'est très, très risqué ... comme avec n'importe quel outil "clone" ... et pour l'instant je ne connais pas d'autre meilleur moyen ... et il perdra les flux NTFS (si je ne me souviens pas mal)

S'IL VOUS PLAÎT: Lisez attentivement les documents fsarchiver, avant de l'utiliser.

J'ai toute responsabilité (je l'avais utilisé sur mes propres données, mais j'ai toujours un BackUP externe - de bons partices).

En pratique ... toutes les informations dont je dispose, je les mets sur au moins trois supports différents (disque dur, DVD, mémoires flash), avec au moins trois copies sur chaque support, donc j'en ai 9 copies ... si je perds 8 de eux il reste encore un pour récupérer des données ... je suis un peu paranoïaque, je connais.


Je ne recommanderais pas cette méthode, car (comme vous l'avez dit), elle est très risquée et ne vaut généralement pas la peine à cause d'une défragmentation. Mieux vaut utiliser les systèmes Windows live pour faire un tel travail (ou le système Windows d'origine - pourquoi pas?).
Byte Commander

fsarchive est juste une archive tar sophistiquée qui stocke certains attributs étendus. Il ne défragmente rien. Votre méthode est aussi bonne qu'une simple copie de fichiers d'une partition vers un autre système de fichiers propre.
ZAB
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.