3 votes

Comment compresser un dossier NTFS à l'aide d'outils Linux

Je suis confronté à un problème, mon Windows 7 C:\Windows\winsxs devient très gros (20GB), et je voudrais le compresser en utilisant l'outil intégré de l'Explorer (Propriété du dossier -> Avancé -> compresser), mais vous savez, Windows ne me permet pas de le faire parce que ces fichiers winsxs sont protégés par un utilisateur spécial nommé TrustedInstaller . J'aimerais donc le faire sous Linux. Une recherche sur Internet montre quelques indices sur ntfs-3g, mais je ne trouve pas d'exemple concret de compression de dossier NTFS, donc je voudrais demander ici.

Supposons que j'ai démarré sous Linux Knoppix et que la partition C : de Windows a été montée dans le répertoire /mnt/winc alors quelle commande dois-je utiliser pour atteindre ce but ?

Ou existe-t-il un moyen de le faire sans environnement Linux ?

1voto

Tom Hale Points 2006

Les étapes sont les suivantes :

  1. Marquer le répertoire pour la compression
  2. Déplacez les fichiers vers un emplacement temporaire
  3. cp -a les fichiers vers leur destination initiale pour déclencher la compression.

(Par défaut, ntfs-3g permet option de montage compression .)


# Mark a directory for compression
setfattr -h -v 0x00000800 -n system.ntfs_attrib_be directory-name

# On small-endian computers when above is not possible
setfattr -h -v 0x00080000 -n system.ntfs_attrib directory-name

Notez cependant les mises en garde (de la ntfs-3g page) :

Lorsque l'option de montage compression est défini, les fichiers créés dans un répertoire marqué pour la compression sont créés compressés. Ils restent compressés lorsqu'ils sont déplacés (en les renommant) vers un répertoire ordinaire du même volume, et les données qui leur sont ajoutées après leur déplacement sont compressées. Inversement, les fichiers qui étaient présents dans un répertoire avant qu'il ne soit marqué pour la compression, et les fichiers déplacés depuis un répertoire non marqué pour la compression ne sont pas compressés. La copie d'un fichier compressé le décompresse toujours, pour le compresser à nouveau si le répertoire cible est marqué pour la compression.


Pour les nouveaux volumes, consultez le -C option dans mkfs.ntfs .

1voto

wambotron Points 952

C'est possible sans Linux et je le fais toujours après avoir créé une nouvelle installation. Je viens de le faire avec une installation Windows 10 Enterprise 21H2 qui fait maintenant 4,6 Go après compression.

La façon dont je procède est de terminer l'installation, puis de redémarrer le support d'installation (clé USB ou DVD). Une fois qu'il est chargé, vous n'avez pas besoin de passer par les boîtes de dialogue d'installation proprement dites, sauf si vous essayez de compresser un disque qui a besoin d'un pilote avant qu'il ne soit disponible pour l'installateur. Vous le saurez si c'est le cas, car vous l'aurez alors déjà fourni manuellement lors de l'installation initiale. Si cela n'a pas de sens pour vous, ignorez cette partie et passez au paragraphe suivant. Si vous devez le faire, procédez aux étapes de l'installation jusqu'à la sélection de la partition sur laquelle vous voulez installer le pilote.

Dans les deux cas, appuyez sur Shift+F10 pour faire apparaître une invite de commande. Trouvez maintenant quel est le lecteur d'installation. Ce ne sera probablement pas C :, car c'est très probablement le lecteur d'installation. Vous devrez commencer par le premier lecteur et lister son contenu jusqu'à ce que vous trouviez le bon. C'est-à-dire, tapez C: et entrer, puis dir et entrer, et examiner la sortie. Procédez ensuite à D: , E: etc. jusqu'à ce que vous le trouviez. Le disque que vous recherchez contient les dossiers "Users", "Windows", "Program Files", etc. Et si vous avez plus d'une installation de Windows sur l'ordinateur, vous pouvez regarder l'espace libre déclaré sur le disque pour deviner de quel disque il s'agit. Dans ma dernière installation, le lecteur Windows était le lecteur F.

Une fois que vous avez déterminé le lecteur, vous pouvez utiliser compact.exe pour compresser le disque. Vous n'aurez pas à vous inquiéter de compresser accidentellement des fichiers dangereux car compact s'en chargera automatiquement. Il ne compressera pas le boot loader, par exemple, ou le pagefile. Maintenant, la façon la plus rapide de le faire, qui est aussi moins économe en espace est la suivante, qui est l'équivalent de l'utilisation de l'Explorer (sauf que dans cette invite de commande, vous compresserez tous les fichiers qui peuvent être compressés). Assurez-vous que vous avez navigué jusqu'au lecteur que vous voulez compresser (F : dans mon dernier cas), et tapez ceci :

compact /c /i /s:\

/c signifie simplement compresser. /i est d'ignorer les erreurs. Vous obtiendrez des erreurs, par exemple vous ne pouvez pas comprimer Documents and Settings dans Windows 10 parce qu'en fait, ce n'est pas un dossier, mais une jonction qui pointe vers Users . Sans /i , compact s'arrêterait après une telle erreur. /s:\ signifie traiter tout ce qui se trouve dans le répertoire \ (où vous vous trouvez, c'est-à-dire à la racine du disque), et tous les sous-répertoires qu'il contient.

Comme nous l'avons mentionné, cette façon de faire fonctionnera exactement comme dans l'Explorateur, sauf qu'elle comprimera beaucoup plus de fichiers que l'Explorateur ne le fera pas parce que vous n'y avez pas accès et/ou qu'ils sont utilisés. Sur mon installation actuelle, j'ai obtenu un taux de compression de 1,7:1.

Si, toutefois, vous voulez aller un peu plus loin dans le gain d'espace, il y a un drapeau, /exe qui indique compact pour utiliser une compression plus efficace destinée aux fichiers de type "écrire une fois, lire souvent", généralement des exécutables (par ex. explorer.exe ), d'où son nom. Il comprimera tous avec l'algorithme choisi, il permet donc d'économiser de l'espace sur tous les fichiers, pas seulement les exécutables. L'algorithme le plus efficace est lzx qui, lorsqu'il a été appliqué à mon installation, a donné un taux de compression de 2,4:1 (en fait, je voudrais dire 2,7:1, mais je n'arrive pas à m'en souvenir, mais c'est nettement plus efficace que le taux par défaut). Il vous demande de faire deux tests, cependant - ceux-ci :

compact /c /i /f /exe:lzx /s:\

Et puis :

compact /c /i /s:\

Ok, alors pourquoi deux courses, vous vous demandez peut-être. C'est parce que lorsque vous utilisez la fonction /exe drapeau que vous dites compact pour utiliser un algorithme de compression non standard que NTFS n'applique pas par défaut - vous devez exécuter cette commande pour compresser avec cela. Par extension, il refuse donc de marquer les dossiers comme compressés puisqu'il ne peut pas compresser automatiquement les nouveaux fichiers avec lzx Ainsi, alors que le premier compact compresse tous les fichiers du disque de manière très efficace, elle laisse tous les dossiers sans indicateur de compression, ce qui signifie que tout fichier nouveau ou modifié ne sera pas non plus compressé.

Notez l'ajout supplémentaire de la /f drapeau. Dans le cas où vous avez déjà des fichiers compressés sur le disque (vous avez peut-être compressé votre dossier Documents ou quelque chose comme ça), cela forcera les fichiers déjà compressés à être recompressés avec l'attribut lzx algorithme.

La deuxième commande est fondamentalement la même que la première plus haut, mais comme nous n'utilisons pas de /f pour forcer la compression de tout ce qui est déjà compressé, l'effet ici est qu'il va sauter tous les fichiers que nous venons de compresser avec lzx mais marquez tous les dossiers comme étant compressés, de sorte qu'à l'avenir, les nouveaux fichiers et les fichiers modifiés seront également compressés automatiquement.

En bref, la première commande compresse tous les fichiers de manière très efficace, et la seconde marque tous les dossiers comme étant compressés, de sorte que les futurs fichiers soient également compressés.

Je dois noter que tout d'abord, ce type de compression n'est pas supporté par toutes les implémentations de NTFS. Par exemple, dans ma clé USB Linux Mint 20.2, les fichiers compressés de cette manière ne seront pas lus du tout. AFAICT, le support de lecture existe pour les versions plus récentes de l'application open-source ntfs-3g mais il se peut qu'il ne soit pas encore accessible dans votre distro. Je ne sais pas si le nouveau ntfs3 Le pilote Linux natif le supporte, non plus. Du côté de Microsoft, il semble que seuls les systèmes d'exploitation Windows 10 et plus soient concernés, ce qui signifie que vous ne pourrez peut-être pas lire un tel disque sous Windows 7 ou 8, par exemple. Deuxièmement, comme Windows ne comprimera pas automatiquement les fichiers nouveaux et modifiés avec ces algorithmes plus efficaces, n'oubliez pas que tout fichier compressé qui sera modifié à l'avenir sera recompressé avec l'algorithme par défaut moins efficace. Cependant, si vous utilisez Windows 10 ou Windows 11, tout fonctionnera. Il faut juste y penser.

J'espère que cela vous aidera :)

PS : Cette opération peut bien sûr être effectuée à tout moment sur n'importe quelle installation existante. Je ne mentionne ici que les nouvelles installations car j'ai pris l'habitude de le faire immédiatement après une nouvelle installation.

EDIT : Une petite mise à jour après avoir terminé la configuration de mon nouveau système, et maintenant j'ai relancé tout cela à partir de l'installateur Windows avant d'activer BitLocker. La méthode, ici encore, était d'utiliser /lzx:exe d'abord, puis faites une deuxième exécution pour marquer tous les dossiers pour la compression également. Cela fonctionne très bien (j'ai économisé 4 Go supplémentaires sur le disque système après la compression (j'avais d'abord utilisé l'algorithme de compression par défaut car je voulais pouvoir modifier le système de fichiers avec Linux, ce qui représente une économie supplémentaire de 4 Go par rapport à l'algorithme de compression par défaut)), mais j'ai ensuite été confus car j'ai remarqué dans l'Explorateur Windows que beaucoup de fichiers n'avaient pas l'air compressés. C'est-à-dire qu'ils n'étaient pas colorés (j'ai activé "Afficher les fichiers NTFS cryptés ou compressés en couleur" dans les paramètres d'affichage, et beaucoup de fichiers n'étaient pas bleus). Je me suis amusé avec compact dans une invite de commande administrative, et je n'ai pas pu changer cela. J'ai ensuite découvert qu'il s'agit en fait d'une incompétence classique de Microsoft - l'Explorateur Windows ne comprend pas lui-même ces nouvelles fonctionnalités. EXE Les fichiers n'apparaîtront donc pas en bleu, et si vous vérifiez leurs propriétés, la case de compression ne sera pas non plus cochée dans la section avancée. MAIS, il affichera les tailles correctes en taille normale par rapport à la taille sur le disque, donc le nombre d'"espace utilisé" sera inférieur. Bon sang ! XD

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X