Windows : nettoyage de drivers NVidia

closeCet article a été publié il y a 7 mois 20 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Sur 2 machines à moi équipées de cartes nvidia, je constate que, parmi d’autres gouffres à espace disque, les 10000 copies des drivers, répliquées à plusieurs endroits par NVidia, jamais nettoyées, à 400 Mo pièce, ça finit par vous blinder un SSD totalement inutilement.
Le nettoyage est simple et vaut le coup, d’autant que si vous faites une erreur dans le nettoyage de ces drivers, au pire vous virez toute la partie NVidia et vous réinstallez à partir de Geforce Experience.

Sur cet article (https://www.gameplayinside.com/optimize/cleaning-up-old-nvidia-driver-files-to-save-disk-space/), vous avez les différents endroits où aller vérifier et effacer. Je résume ici en français et SURTOUT, j’ajoute un petit script (en cygwin, désolé moi les scripts windows c’est pas mon fort) pour automatiquement repérer les versions des drivers vidéo (uniquement vidéo) de NVidia et vous proposer de les benner. C’est le dépôt de drivers fait par Windows, certainement pour des retours arrière etc.

Donc, l’article ci-dessus explique :

  • de tout virer dans c:\nvidia – j’ai l’impression que ce n’est plus utilisé ces derniers temps, mais dans le doute, allez voir. Le sous-répertoire DisplayDriver contient chaque version que vous avez installée dans le passée, à 400 Mo pièce…
  • supprimer tous les répertoires avec des noms aléatoires dans « C:\ProgramData\NVIDIA Corporation\Downloader », des noms du style « bd0c139615bbe8fad55a0f78f6e34a61 » ; c’est là où le programme d’installation de geforce experience stocke temporairement les nouveaux drivers
  • idem ici : « C:\Program Files\NVIDIA Corporation\Installer2 »
  • Enfin, last but not least, les copies faites par Windows. Dans « c:\Windows/System32/DriverStore/FileRepository », la plupart (pas tous) des répertoires « nv* » sont des copies de vieux drivers graphiques (display) NVidia. Dernièrement j’en avais pour 8 Go inutiles sur un SSD de 128 ; soit 20 exemplaires de drivers.

Pour nettoyer facilement, j’ai fait un petit script qui entre dans chaque sous-répertoire nv* de ce dépôt et vérifie qu’il s’agit d’un driver vidéo (pas mémoire, réseau…) et affiche sa version ainsi qu’une ligne pour effacer. Ca vous laisse le choix de contrôler s’il faut en garder ou non (le plus récent ? le précédent ?) et d’effacer le reste.

Pour ce faire, lancez cygwin, et tapez :

cd /cygdrive/c/Windows/System32/DriverStore/FileRepository
for i in nv*
do
	echo ______________ $i
	grep -A 1 "Class       = Display" $i/*inf
	if [ $? -eq 0 ]; then
		echo rm -rf "$i"
	fi		
done

En gros, ça chercher le phrase « Class=Display » dans le fichier .inf des sous-répertoires nv* et si ça trouve, ça vous affiche une commande rm pour effacer. Dans mon cas, j’étais bon pour toute les effacer, j’avais essentiellement une même version de 2016, stockées 15 fois (wouhou).

Vous obtenez une sortie du genre :

$ cd /cygdrive/c/Windows/System32/DriverStore/FileRepository
$ for i in nv*; do echo ______________ $i ; grep -A 1 "Class       = Display" $i/*inf; done
______________ nvacwu.inf_amd64_9934c34dc6ca0c4b
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvamwu.inf_amd64_d4715679184092a8
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvaowu.inf_amd64_785608ed2524cdea
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvblwu.inf_amd64_31f54e2d1ba058d5
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvctwu.inf_amd64_04e43adf30a98071
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvcvwu.inf_amd64_ed9974b2e149bbb9
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvdimmn.inf_amd64_1ff0039945e33c9d
______________ nvdmwu.inf_amd64_26aa6356770b2e86
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvemwu.inf_amd64_4b7fb34e7ab0e524
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvfmwu.inf_amd64_0f7e2ba296d26f29
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvfxwu.inf_amd64_55dcf4c55025727b
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvgbwu.inf_amd64_1e3880a5c64f6555
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909
______________ nvhda.inf_amd64_7924a30e67930b0e
______________ nvhda.inf_amd64_8855de2aceda5f09
______________ nvhmwu.inf_amd64_dbb067faa566eee8
Class       = Display
DriverVer   = 08/01/2016, 21.21.13.6909

Dans cet exemple, le répertoire « nvhda.inf_amd64_8855de2aceda5f09 » n’est pas un driver nvidia Display donc je le zappe. Dans mon cas, tout était vieux, je voulais tout effacer, donc j’ai relancé la même commande suivie de | grep "rm -rf" et j’ai copié-collé les « rm » obtenus. A noter qu’il faut lancer cygwin en administrateur pour une question de droit.
Donc :

for i in nv*; do echo ______________ $i; grep -A 1 "Class       = Display" $i/*inf; if [ $? -eq 0 ]; then echo rm -rf "$i"; fi; done | grep "rm -rf"

Voilà, mon disque respire.
Il y a un tas d’autres endroits où retrouver de l’espace disque dans windows (après les mises à jour majeures semestrielles etc etc). Le mieux, c’est encore d’utiliser un outil comme foldersize pour repérer les gros espaces consommateurs puis chercher sur google ce qu’on peut effacer de manière sure ou non. Attention à ne pas benner n’importe quoi sous pein de planter votre OS.

Ah oui, j’avais aussi trouvé un outil « RAPR » sur GitHub, mais il ne montrait pas tous les drivers nv, je n’ai pas compris. Sinon l’idée est bonne. Voyez ici : https://github.com/lostindark/DriverStoreExplorer

Je ne comprends pas qu’il n’y ait pas un truc de nettoyage inclus dans les drivers NVidia, ça fait 10 ans qu’ils trainent ce problème, c’est fou. Qu’on conserve un exemplaire du dernier driver, je veux bien, mais 10 versions précédentes, répliquées à plusieurs endroits, waaaaaaaaaa c’est débile.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *