Как уменьшить раздувание драйвера Windows

Со временем в системах Windows старые драйверы устройств неизбежно заменяются новыми. Даже в системах, где драйверы не обслуживаются строго, Центр обновления Windows обычно обновляет не менее дюжины драйверов ежегодно.

Те, кто более энергично гонится за валютой водителя, могут также использовать такие инструменты, как Помощник по драйверам и поддержке Intel (DSA)Nvidia Опыт GeForce (который проверяет графические, звуковые и 3D-драйверы Nvidia) или общие инструменты управления драйверами, такие как ioBit Усилитель драйверов или SourceForge Быстрый драйвер Проект установщика для проверки и обновления драйверов на ПК с Windows 10 или 11. Предложения Intel и Nvidia концентрируются на устройствах, которые они производят, в то время как инструменты обновления драйверов общего назначения проверяют их все и указывают драйверы, нуждающиеся в обновлении, с разной степенью помощи и поддержки при их установке.

Ни специализированные, ни независимые от производителя инструменты обновления не удаляют старые драйверы, а добавляют новые. Таким образом, хотя все средства обновления драйверов, о которых я знаю, помогают поддерживать драйверы в актуальном состоянии, они ничего не делают для облегчения раздувания драйверов. На самом деле, Intel DSA очень хорошо справляется с раздуванием драйверов, как вы увидите позже.

Все эти ненужные драйверы занимают место на диске и могут замедлить работу вашей системы, поэтому хорошей практикой обслуживания ПК является удаление ненужных драйверов.

Что происходит, когда вы устанавливаете драйвер Windows?

На самом деле это довольно увлекательный процесс, который включает в себя множество скрытых действий в Windows. В этом обсуждении я остановлюсь на так называемых устройствах Plug and Play (PnP). Они специально созданы для того, чтобы сообщать о себе Windows, чтобы она могла помочь найти драйвер устройства для использования, если не всегда самый последний и самый лучший экземпляр. Моя информация любезно предоставлена ​​потрясающей книгой Microsoft Press. Внутреннее устройство Windows (7-е издание в 2-х томах, на момент написания статьи). Вот процесс:

  1. Драйвер шины информирует диспетчер PnP об устройстве, которое он обнаруживает во время перечисления, используя идентификатор экземпляра устройства (DIID).
  2. Диспетчер PnP проверяет реестр на наличие соответствующего функционального драйвера. Когда ему не удается найти его, он сообщает диспетчеру PnP пользовательского режима об этом устройстве, используя его DIID.
  3. Диспетчер PnP пользовательского режима пытается выполнить автоматическую установку без ввода или вмешательства пользователя. Для установщиков, которые включают размещение диалоговых окон, требующих ввода данных пользователем, диспетчер PnP запускает мастер установки оборудования, чтобы контролировать такие задачи, если вошедший в систему пользователь имеет права администратора. (Если нет, это действие будет отложено до следующего входа в систему пользователя с правами администратора.)
  4. Мастер установки оборудования использует функции API установки и CfgMgr (диспетчера конфигурации) для поиска INF-файлов, соответствующих драйверам, совместимым с обнаруженным устройством. В основном это включает доступ к таким файлам из локальной файловой системы (или носителя, такого как CD или DVD) по указанию пользователя.
  5. Установка выполняется в два этапа: (а) сторонний установщик драйверов импортирует пакет драйверов в хранилище драйверов, и (б) ОС выполняет фактическую установку драйвера, используя процесс Drvinst.exe (исполняемый файл которого находится в % SystemRoot%\System32\). В рамках этого процесса файлы .inf и .cat помещаются в хранилище драйверов, связанное с DIID, которое принимает форму OEM.ннн.inf, где ннн представляет десятичное число от одной до трех цифр. Примечание: если вы хотите найти это ннн номер любого драйвера в магазине (известный как индекс), вы должны использовать отличный DriverView. Инструмент, который я рекомендую в этой истории, не покажет его вам.

Обратите внимание, что документированный процесс обработки драйверов ничего не говорит об очистке старых драйверов, присутствующих в хранилище драйверов Windows (в %SystemRoot%\System32\DriverStore\FileRepository). Таким образом, эта статья посвящена исследованию содержимого этого хранилища драйверов и удалению старых и/или устаревших элементов, чтобы уменьшить его размер на диске.

Предупреждение! Есть важный недостаток, который следует учитывать при удалении элементов из хранилища драйверов. Если вы удалите все драйверы, кроме самых последних, вы не сможете использовать параметр «Откатить драйвер» в окне «Свойства» для соответствующего устройства в диспетчере устройств. Это сделано для того, чтобы помочь пользователям вернуться к более ранней версии драйвера, если текущая окажется нестабильной.

Действительно, когда для устройства Windows присутствует только один драйвер, кнопка «Откатить драйвер» отображается серым цветом и недоступна (см. рис. 1) в окне его свойств.

драйвер windows сокращение 01 свойства драйвера

Рис. 1. Если в хранилище драйверов Windows имеется только одна версия драйвера, функция отката недоступна. (Нажмите на изображение, чтобы увеличить его.)

Таким образом, более консервативный подход к сокращению хранилища драйверов может состоять в том, чтобы сохранить два самых последних драйвера для любого данного устройства, а не только один самый последний. Сам я не придерживаюсь такого подхода, за исключением драйверов, которые часто обновляются или при использовании бета-драйвера. Тем, кто поддерживает образы развертывания, рекомендуется следовать этому совету при тестировании драйверов (и возможных образов развертывания). Но все посторонние файлы, включая повторяющиеся или устаревшие драйверы, действительно должны быть удалены из образов перед развертыванием.

Получение информации о драйверах устройств в Windows 10 и 11

Для всех современных версий Windows (7 и новее) доступен отличный инструмент для явного наблюдения и управления хранилищем драйверов Windows. Этот инструмент взят с GitHub и называется Обозреватель магазина драйверов (также известный как RAPR.exe). Версия 0.11.92, текущая версия на момент написания этой статьи, достаточно хорошо работает как с Windows 10, так и с Windows 11.

Чтобы работать с хранилищем драйверов, вы должны запустить RAPR.exe с правами администратора (щелкните правой кнопкой мыши имя файла и выберите «Запуск от имени администратора» в появившемся всплывающем меню). Затем вы должны перечислить элементы в хранилище драйверов, что создаст изображение, похожее на рис. 2.

На рис. 2 показано хранилище драйверов моей мобильной рабочей станции Lenovo P16. после очищаем его с помощью RAPR. До очистки у меня было 155 драйверов; после очистки их осталось 118. Таким образом, 37 были удалены. Это уменьшило размер хранилища драйверов с 5,84 ГБ до 4,30 ГБ, чтобы восстановить 1,54 ГБ дискового пространства на основе свойств папки FileRepository, в которой находятся файлы драйверов.

Сокращение драйверов Windows 02 Проводник хранилища драйверов

Рис. 2. После очистки на мобильной рабочей станции P16 установлено 118 драйверов (по сравнению со 155). (Нажмите на изображение, чтобы увеличить его.)

Чтобы дать вам представление о том, что может произойти с этим хранилищем файлов драйверов, я видел, что общее количество элементов на этой же машине достигло 160, из которых более 40 элементов были дубликатами драйверов Intel того или иного типа ( в основном Bluetooth или Wi-Fi). Если щелкнуть любой из заголовков столбцов, показанных на этом экране, список будет пересортирован на основе значений в этом столбце.

Как я упоминал ранее, инструменты Intel DSA и Nvidia GeForce Experience являются худшими нарушителями, когда дело доходит до раздувания драйверов. Инструмент Intel, по-видимому, особенно склонен размещать до десятков копий одного и того же драйвера в хранилище драйверов. Мой пример очистки, показанный на рисунке 3, показывает семь экземпляров для каждого из двух USB-устройств Bluetooth. Все они называются «ibtusb.inf», потому что на целевом ПК есть два набора USB-портов, и каждый из них использует отдельный экземпляр драйвера.

Примечание: По какой-то причине, если у вас есть несколько экземпляров устройств на (или в) вашем ПК, у вас действительно должна быть отдельная копия пакета драйверов (OEMннн.inf) для каждого — вот почему не следует всегда удалять то, что может выглядеть как ненужные дубликаты одного и того же драйвера на ПК. Но большое количество одного и того же драйвера — или, что еще хуже, большое количество нескольких версий драйверов для одного и того же устройства — обычно требует очистки. К счастью, RAPR может справиться с этим от вашего имени.

Удаление нежелательных драйверов с помощью RAPR

Чтобы обрезать драйверы, нажмите кнопку Выберите старые драйверы кнопку в правом верхнем углу, затем нажмите Удалить драйвер(ы). RAPR сделает все остальное за вас.

И не волнуйтесь: это будет нет удалить все драйверы, используемые в настоящее время. Для этого предназначена опция «Принудительное удаление», но она вам редко понадобится. Единственный раз, когда я когда-либо использовал возможность принудительного удаления RAPR, это когда несколько источников хороших советов призвали удалить плохой или сомнительный драйвер, чтобы его можно было заменить другой, работающей и более старой версией. По какой-то причине это особенно вероятно для драйверов принтера.

На рисунках 3 и 4 показана последовательность действий до и после, чтобы проиллюстрировать, что включает в себя типичная очистка.

сокращение драйверов windows 03 дублирование драйверов bluetooth

Рис. 3. На рабочей станции P16 появляется множество повторяющихся/устаревших устройств Bluetooth. (Нажмите на изображение, чтобы увеличить его.)

сокращение драйверов windows 04 драйверы bluetooth очищены

Рисунок 4: После обрезки отображаются только самые новые экземпляры. (Нажмите на изображение, чтобы увеличить его.)

Если учесть, что драйверы для типичного графического адаптера занимают более 1 ГБ дискового пространства, а для многих драйверов устройств требуется от 2 до 4 МБ, легко увидеть, как удаление ненужных записей может освободить некоторое реальное пространство.

Когда требуется очистка хранилища драйверов?

Старая интернет-поговорка применима и к оптимизации и очистке системы Windows: YMMV, аббревиатура от «ваш пробег может отличаться». Это означает, что разные системы или образы развертывания неизбежно будут демонстрировать разное поведение, значения и т. д.

Имея это в виду, взгляните на свойства вашего каталога хранилища драйверов: если его размер превышает 5 ГБ, я бы запустил RAPR и посмотрел, что он может найти; если он превышает 8 ГБ, вам определенно захочется посмотреть, что там есть, и избавиться от того, что вам больше не нужно или не нужно. Я видел несколько случаев, когда размер папки превышал 10 ГБ. Поверьте мне: вы не хотите, чтобы все зашло так далеко.

Примечание для администраторов: при обновлении образа развертывания для распространения вы часто будете обновлять элементы в хранилище драйверов. Поскольку это не очищает автоматически старые записи по мере добавления новых, вы должен используйте RAPR (или некоторые аналогичные махинации командной строки) для очистки дублирующихся и устаревших записей. Хуже лишних, ненужных драйверов в магазине на одном ПК может быть только столько таких копий, сколько у вас запущено образов на вашем предприятии!

Поскольку драйверы дисплея Nvidia обычно потребляют от 1 до 1,2 ГБ на копию (или версию), хранение старых драйверов буквально является пустой тратой места. Вы можете сохранить две версии для безопасности, если хотите (просто снимите флажок рядом с самой последней версией после использования RAPR). Выберите старые драйверы вариант), но нет причин хранить в хранилище драйверов более двух. Для чистого и протестированного образа развертывания в нем должно быть столько копий любого драйвера, сколько ему нужно, и не более того. (До того, как я начал регулярно проводить очистку, я мог найти дюжину или более драйверов дисплея Nvidia на ПК с запущенным образом ОС возрастом от одного до двух лет.)

Вам действительно нужно потрудиться, чтобы навредить себе с помощью RAPR, поэтому вам не нужно делать резервную копию образа перед очисткой хранилища драйверов. Но так как я человек «пояс и подтяжки», у меня появилась эта привычка, на случай, если я случайно сниму что-то, что окажется мне действительно нужно. Вы всегда можете перезагрузить эту резервную копию с носителя для восстановления / восстановления для вашего ПК, если после слишком агрессивной очистки вы столкнетесь с неисправной или не загружаемой машиной. (Или вы можете смонтировать старый образ как виртуальную машину во многих утилитах резервного копирования, таких как Macrium Reflect Free, и извлечь нужные драйверы из этого хранилища драйверов с помощью инструментов экспорта и установки RAPR.) Кто знает? То и другое может пригодиться. С резервной копией вы можете очистить все, что хотите, когда захотите, без страха.

Эта статья была первоначально опубликована в ноябре 2015 г. и обновлена ​​в мае 2023 г.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *