Procédure détaillée pour créer une jonction pour le dossier winsxs dans Windows 7 [fermé]

1

Je cherchais une liste d’ étapes détaillées dans Windows 7 pour déplacer le winsxsdossier sur mon disque dur de données et créer une jonction dans le SSD avec

mklink /J oldpath newpath

Je ne pouvais que trouver ceci, qui est lié à une question de superutilisateur ( Winsxs peut-il être déplacé et si ainsi comment? ), Mais c'est pour Vista et a été publié en ... 2007:

Comment déplacer le répertoire WinSxS dans Vista

J'ai également trouvé ces réponses ici sur super-utilisateur:

  1. Dans Windows 7, puis - je créer un lien symbolique ou Junction pour winsxs ou des dossiers d'installation Dans cette question super - utilisateur, un utilisateur demande si elles peuvent faire un mlinkau winsxsdossier après l' avoir déplacé vers un autre lecteur, et la réponse est " vous pouvez faire pour Installateur " . Mais la question était, pouvez-vous le faire pour Winsxs ? En particulier après le premier commentaire sous la question disant que "cela ne peut pas être fait parce que ce sont déjà des liens symboliques" .

  2. Comment libérer de l'espace sur le dossier du programme d'installation de Windows sans tuer Windows? C’est pour le Windows/Installerdossier, PAS winsxs , et l’utilisation de l’ /Doption au lieu de celle /Jde mlink. Mais ils font ce que je veux faire avec winsxs: copiez le contenu du dossier sur un autre lecteur, puis faites-le mklink /D oldpath newpath. Mais puis-je faire cela avec WinSxs ? (La publication de blog liée n’a pas non plus déplacé le dossier winsxs, elle n’a déplacé que les autres dossiers). De plus, les commentateurs de l'article de blog lié signalent qu'ils ne peuvent pas passer des privilèges administrateur aux privilèges système, ce qui constitue la première étape avant d'exécuter les commandes ou de déplacer les dossiers.

  3. Comment libérer de l'espace sur le dossier du programme d'installation de Windows sans tuer Windows? Un autre intervenant dans le lien précédent du superutilisateur indique que, si vous faites une jonction,

"msiexec (apparemment) ignore la jonction et crée manuellement C: \ Windows \ Installer. Ceci 1) supprime la jonction et 2) supprime complètement le contenu du répertoire cible."

Cela arriverait-il aussi au dossier winsxs ?

Donc, résumant:

Je veux déplacer le dossier Winsxs et ensuite créer une jonction, mais je ne suis pas sûr de pouvoir le faire ni les conséquences qui en découlent.

  • Est-ce que ces étapes écrites pour Vista en 2007, que j'ai liées au début, fonctionnent pour Win 7?
  • Est-ce que l'utilisateur qui dit que "cela ne peut pas être fait parce que ce sont déjà des" liens symboliques "est correct?
  • Si Vista entreprend de déplacer le dossier et de créer la jonction ne fonctionnera pas dans Windows 7, ceux décrits dans l'article de blog lié du point 2 fonctionneraient-ils? Comment modifier correctement les privilèges d'administrateur à SYSTEM sans obtenir les erreurs signalées?
  • Si je parviens à créer la jonction, msiexec ignorera-t-il la jonction et créera-t-il manuellement C: \ Windows \ winsxs en supprimant la jonction et en supprimant complètement le contenu du répertoire cible?
  • Quelle option utiliserais-je /J(jonction) ou /D(lien symbolique)? Je devine /J, et je connais la différence entre les deux, mais comme l'autre option est également apparue dans une réponse, je ne sais plus rien. Différentes options apparaissent dans différentes sources. Qui a raison?
Xirux Nefer
la source
1
Je comprends et apprécie votre effort méticuleux pour montrer vos propres recherches, mais il ya tellement d’informations ici qu’il est difficile de savoir à quelle question vous voulez répondre. Votre question principale est comment puis-je déplacer le dossier WinSXS vers un autre lecteur sous Windows 7 ? Si tel est le cas, modifiez votre question pour qu'elle soit spécifiquement ciblée.
Twisty Impersonator
Oui, c’est exactement ma question, et les informations qu’elle contient ne sont pas destinées à montrer mes recherches, mais à montrer les obstacles que je rencontre ou les doutes auxquels je fais face pour pouvoir déplacer ce dossier. Dois-je le déplacer ou pas? Est-ce que je le déplace comme ceci ou comme ça? Si cette méthode ne fonctionne pas, cette autre méthode fonctionnerait-elle? Toute l'information est liée à ma question et la soutient. En fait, je pensais presque me répéter, voire même quelque chose. De plus, je montre que même si cela ressemble à d'autres questions, ce n'est vraiment pas le cas, car elles n'ont pas de réponses satisfaisantes. Je ne veux pas qu'il soit marqué comme un doublon quand ce n'est pas le cas.
Xirux Nefer
Vous faites bien de préciser en quoi votre question n'est pas un doublon. Cependant, son manque de concentration risque de le fermer car trop large. Je vous suggère de poser votre question principale. Si une réponse utile vous laissait incertaine quant à sa mise en œuvre, demandez de meilleurs détails. Rien de tout cela ne peut arriver si votre question reste trop large et est fermée en tant que telle.
Twisty Impersonator
Est-ce mieux maintenant? Je ne sais vraiment pas comment le préciser. Quand je le lis, ça ne sonne pas trop large ou manque de concentration ... Je parle tout le temps de la jonction.
Xirux Nefer
Je pense que le vote négatif est injuste, alors +1 mais désolé, je vais terminer avec le vote final
Dave

Réponses:

2

La chose la plus importante que vous devriez savoir sur WinSxS:

Cela ne prend pas autant de place que le montrent ses propriétés.

Capture d'écran des propriétés WinSxS

WinSxS contient principalement des liens durs. Un lien physique ressemble à un lien symbolique, mais il est beaucoup plus transparent.

Les fichiers ne sont pas stockés sur le disque dur sous forme d'arborescence, mais plutôt dans une structure plate. Les éléments de cette structure sont ensuite mappés dans l'arborescence des dossiers et se voient attribuer des noms. Chacune de ces correspondances est un lien dur unique. Le lien physique est donc ce qui connecte un nom de fichier et un chemin d'accès au contenu du fichier.

La plupart des fichiers ont un seul lien physique. Par exemple, lorsque vous téléchargez un fichier, son contenu est stocké quelque part sur le disque dur et un lien nommé est créé dans C:\Users\<yourUsername>\Downloads.

Vous pouvez créer un lien extra dur si vous le souhaitez, soit dans le même répertoire (avec un nom de fichier différent), soit ailleurs sur le même lecteur. Le contenu du fichier ne sera stocké qu'une seule fois sur le lecteur. Par conséquent, la création d'un second lien dur n'augmentera pas l'utilisation du disque. Le fichier sera accessible depuis deux chemins. Ces deux liens physiques vont partager les propriétés, les dates de modification et le contenu du fichier. Toute modification apportée à un fichier est immédiatement effective sur le second. Le fichier ne sera pas effacé de la structure plate tant que tous les liens physiques ne seront pas supprimés. Par conséquent, la suppression du lien physique ne modifiera pas le fichier, à moins qu'il s'agisse du dernier lien physique. Les liens durs sont indiscernables, vous ne pouvez pas savoir lequel a été créé en premier. Ils sont tous deux complètement équivalents. (Contrairement aux liens symboliques, où il existe un fichier "maître".)

Les fichiers d'autres lecteurs peuvent être liés de manière symétrique à n'importe quel lecteur et des jonctions de répertoires peuvent être créées entre les lecteurs. Vous ne pouvez cependant pas créer de lien physique vers un fichier sur un autre lecteur. Tous les liens physiques doivent pointer vers un fichier du même volume.

Faisons maintenant une expérience. Je vais créer deux dossiers, puis un fichier de 64 Ko dans l'un d'entre eux et un lien physique vers ce fichier dans le second.

C:\Users\gronostaj\Desktop\experiment>mkdir A B

C:\Users\gronostaj\Desktop\experiment>fsutil file createnew A\hardlink1 65536
File C:\Users\gronostaj\Desktop\experiment\A\hardlink1 is created

C:\Users\gronostaj\Desktop\experiment>mklink /h B\hardlink2 A\hardlink1
Hardlink created for B\hardlink2 <<===>> A\hardlink1

Nous avons une arborescence de dossiers comme celle-ci:

+ experiment
|-+ A
| `-- hardlink1
`-+ B
  `-- hardlink2

Voici les propriétés de A, qui contient un lien physique vers un fichier de 64 Ko:

Propriétés de A, taille totale 64 Ko

Semble légitime. Propriétés de B, qui contient également un lien physique vers le même fichier de 64 Ko:

Propriétés de B, taille totale 64 Ko

C'est aussi bien. Je vais maintenant sélectionner A et B et voir combien d’espace ils occupent en fonction des propriétés:

Propriétés de A et B, montrant la taille totale 128 KB

... et cette fenêtre nous ment. Un seul fichier physique prend 64 Ko. L’explorateur Windows ne le sait pas - il compte la taille totale des fichiers pointés par des liens physiques et il existe deux liens physiques vers des fichiers de 64 Ko. C'est pourquoi il pense que ces dossiers prennent deux fois plus d'espace qu'en réalité. Ne faites pas confiance à la taille du dossier dans les propriétés.

WinSxS contient des liens physiques vers les fichiers système que Windows a utilisés à un moment donné. Lorsqu'un fichier système est installé, il est lié de manière ferme dans son emplacement principal et dans WinSxS. Sur un système Windows fraîchement installé, WinSxS semble avoir une taille de quelques Go, mais sa taille effective est de zéro, car il ne contient que des fichiers qui sont liés en dur ailleurs.

Lorsqu'un fichier système est remplacé (par exemple par Windows Update), il est supprimé de l'emplacement principal et un nouveau fichier est installé à sa place. Ce nouveau fichier est également lié dans WinSxS. À ce stade, Windows utilise uniquement la version la plus récente du fichier, mais votre disque dur contient deux versions, l'une d'entre elles n'étant plus utilisée. Cela entraîne en réalité la croissance de WinSxS.

Pourquoi Windows fait-il cela?

  1. Les mises à jour peuvent être facilement désinstallées - les anciens fichiers sont toujours là et vous attendent dans WinSxS.
  2. Windows est en mesure de résoudre automatiquement certains problèmes avec les fichiers endommagés, car de bonnes copies sont conservées dans WinSxS. C'est ce qui sfc /scannowfait.

À ce stade, nous pouvons en conclure que nous ne pouvons pas déplacer WinSxS vers un autre lecteur, car certains fichiers sont en réalité liés à des fichiers C:\Windows. Vous pouvez les copier sur un autre lecteur et créer une jonction, mais cela augmenterait l'utilisation totale du disque (les liens durs supplémentaires ne prendraient pas d'espace, les copies supplémentaires le feraient) et casserait probablement WinSxS.

Le seul moyen raisonnable de réduire la taille de WinSxS consiste à supprimer les anciennes versions inutilisées des fichiers. Pour ce faire, utilisez l' outil Nettoyage de disque (disponible dans Windows) en cochant la case Nettoyage de la mise à jour de Windows . S'il n'apparaît pas dans Nettoyage de disque, votre WinSxS est déjà compacté.

Gronostaj
la source
Je savais que le dossier winsxs n’était pas aussi volumineux que le système ne me le dit, mais j’ai pensé que les fichiers qu’il contenait étaient des liens symboliques, comme l’a dit l’un des commentateurs que j’ai mentionné. Pourquoi tant de personnes conseillent-elles de déplacer Jonction de Windows / Winsxs à la newpath? Il existe même des applications à faire pour que vous ne devez pas le faire manuellement (ils ne semblent pas sûrs cependant). Sont les autres dossiers mentionnés dans ma question hardlinks aussi, & is que la raison pour laquelle un intervenant dit que msiexec ignore la jonction, crée manuellement le dossier, supprime la jonction et supprime le répertoire cible?
Xirux Nefer
1
@XiruxNefer: les fichiers à l'intérieur de WinSXS sont des liens durs et non des liens sym . Pour ce qui est de savoir pourquoi tant de gens le conseillent, beaucoup conseillent des choses stupides sans comprendre leur sujet. Ce n'est pas nouveau. Si vous voulez, les instructions Vista seront fonctionner pour Windows 7. Mais vous perdrez plus d' espace sur le disque de destination que vous allez dupliquer les fichiers à lien fixe. Le dossier Installer peut facilement être déplacé et remplacé par un lien symbolique . Je n'ai pas essayé d'utiliser un point de jonction, le lien symbolique fonctionne bien. msiexec n'ignore pas les liens symboliques.
qasdfdsaq
Merci à vous deux. Vos réponses étaient très détaillées et utiles.
Xirux Nefer
Ainsi, lorsque votre C: \ est plein et que WinSxS est énorme, vous ne pouvez rien faire pour indiquer à Windows que vous n’êtes pas vraiment à court d’espace? Comment pouvez-vous dire aux autres programmes que vous avez beaucoup d'espace, et WinSxS n'est pas la moitié de mon disque?
Rex Whitten
@RexWhitten Windows et d'autres programmes sont bien conscients de cela. Ils ne vérifient pas l'utilisation du disque en comptant la taille totale du fichier (ce qui serait lent et donnerait des résultats incorrects, comme indiqué dans ma réponse). Au lieu de cela, ils interrogent le système de fichiers, conçu pour calculer rapidement avec précision l'utilisation du disque et l'espace disponible. Ainsi, lorsque Windows et d'autres programmes vous disent que vous êtes à court d'espace, cela signifie que vous l'êtes vraiment - avec le fait que WinSxS est plus petit que ce qui semble être déjà pris en compte.
gronostaj