Перенёс Windows Server 2022 из облака на свой компьютер и застрял на видеодрайвере. С базовым адаптером Microsoft получал только 1280×1024. После одной из попыток поставить дрова вообще остался с чёрным экраном. Уже смотрел в сторону T400 или RX 580, но решил сначала разобраться с тем, что есть.
Компьютер у меня на X99: Xeon E5-2697 v4, 64 ГБ памяти и старая Radeon R7 240. Монитор подключён по HDMI. Под Windows 11 эта карта работала, поэтому сразу покупать другую не хотелось.
В итоге выручили дрова, которые лежали в старой Windows на соседнем разделе. Версия оказалась ещё 2019 года. С ней Server выдал 3840×2160 при 30 Гц и нормально загрузился после перезагрузки. Ни карту, ни её прошивку менять не пришлось.
Сначала перенёс систему
В облаке у меня стоял Windows Server 2022 с двумя дисками. Я скачал оба образа в QCOW2 и по очереди развернул их на своём компьютере. Места для всех промежуточных файлов сразу не хватало.
Схема переноса была такая: QCOW2 перевёл в VHDX, подключил его для чтения, снял содержимое нужного раздела в WIM и восстановил на подготовленный раздел своего диска. Потом настроил загрузчик и буквы дисков. Старую Windows 11 оставил — если Server не загрузится, будет откуда чинить.
Она пригодилась довольно быстро. Но ещё до проблем с дровами я наткнулся на два пункта загрузки для одного накопителя: UEFI OS и Windows Boot Manager. Через первый получал ошибку MainFrame.xml, через второй Server загружался. Дальше выбирал Windows Boot Manager.
Поставил драйвер — получил чёрный экран
Неудачная попытка была с AMD 27.20.20913.2000. Драйвер поставился принудительно, а рабочего стола после этого не было. Просто чёрный экран и ожидание загрузки. В журналах повторялись ошибки dwm.exe — процесса, который отвечает за отображение окон. Сам пакет оказался с правленым INF и заново подписанным каталогом.
Загрузился в запасную Windows 11 и отключил этот драйвер в реестре установленного Server. После этого Server снова показал рабочий стол, уже на базовом адаптере Microsoft. Правда, в выборе разрешения был один-единственный пункт: 1280×1024. Монитор определялся как универсальный.
Так хотя бы можно было продолжать возиться с системой. Но оставлять такое разрешение на этом мониторе я не собирался.
Что ещё пробовал
Полез в настройки прошивки платы. В разделе CSM переключил Video с Legacy на UEFI, а Boot option filter поставил в UEFI only. После перезапуска изображение пропало уже при включении компьютера. Вернул всё обратно.
Тут я поменял сразу два параметра, так что какой именно помешал — не выяснил. В результате оставил CSM включённым, видео в Legacy, а загрузку — UEFI и Legacy. Рабочие дрова потом поставились с этими настройками.
Ещё проверил параметры загрузки Windows. Отключил оставшийся BASEVIDEO, перезагрузился — те же 1280×1024. Попробовал отдельный запуск с highestmode, тоже без изменений. Этот параметр разрешает загрузочным приложениям использовать наибольший графический режим, доступный через прошивку; вот его описание у Microsoft. У меня он не помог. Временную загрузочную запись после проверки убрал.
Где нашлись нужные дрова
Дальше посмотрел, какой драйвер сохранился в прежней Windows 11. В её хранилище нашлась папка:
...\System32\DriverStore\FileRepository\u0346830.inf_amd64_35731e557194973d
Там лежал AMD 26.20.12028.2 от 16 августа 2019 года. Исходный INF — u0346830.inf. В журнале старой Windows была запись, что этот пакет использовался для моей карты. Раздел с Windows 11 в тот момент был виден из Server.
Заодно выяснилось, почему искать просто «драйвер для R7 240» недостаточно. Карта может быть указана в INF, но нужного раздела для Server там не окажется. Например, в проверенном пакете 27.20.1034.6 моя карта была, однако разделы предназначались для клиентской Windows. У Crimson 17.7.1 для Windows 8.1 нужный идентификатор тоже нашёлся, но раздел для Windows 10 оказался пустым.
В пакете 2019 года был точный идентификатор моей карты:
PCI\VEN_1002&DEV_6613&SUBSYS_80941462
И раздел NTamd64.10.0...16299, который Server мог выбрать. Ограничения ProductType=1 в нём не было. Это обозначение клиентской Windows; подробнее про такие строки можно прочитать в документации Microsoft.
Проверил подпись каталога — Microsoft Windows Hardware Compatibility Publisher. Подпись была действительной, INF соответствовал каталогу. Этот пакет не пришлось править или подписывать заново.
Как ставил
После предыдущего чёрного экрана сначала сделал копию ветки реестра SYSTEM и сохранил сведения об установленном драйвере. Найденный пакет добавил через PnPUtil, пока без установки на карту. Windows приняла пакет и показала его как наиболее подходящий для её аппаратного идентификатора.
Ниже команды с условным путём ...\Drivers\R7-240. В этой папке должен быть весь пакет с вложенными файлами, не один INF. Запускать нужно от администратора.
Сначала добавление пакета:
pnputil /add-driver "...\Drivers\R7-240\u0346830.inf"
Когда пакет проверен и есть возможность откатиться — установка:
pnputil /add-driver "...\Drivers\R7-240\u0346830.inf" /install
Параметры команды описаны в справке PnPUtil. Файлы вручную в работающую Windows я не подкидывал, установку делала сама система.
На случай нового чёрного экрана заранее поставил задачу от имени системы: через десять минут удалить новый пакет, если я не отменю откат. Перед удалением она сверяла имя пакета и его контрольную сумму. У меня пакет получил имя oem0.inf. На другом компьютере этот номер может принадлежать другому драйверу.
Тут я сам себе добавил работы: изображение появилось, но откат вовремя не отменил. Таймер сработал и удалил драйвер. Поставил тот же пакет ещё раз, проверил рабочий стол и убрал задачу. Заодно убедился, что этот откат у меня работает. Запасную Windows всё равно оставил — на случай, если компьютер зависнет целиком.
После установки
В диспетчере появилась AMD Radeon R7 240, версия драйвера — 26.20.12028.2, ошибок устройства нет. Монитор определился как P27A2V. Разрешения стали доступны нормальные: 3840×2160 при 30 Гц, а также 2560×1440 при 60 Гц.
В dxdiag проверил 3840×2160, 32 бита, 30 Гц. Там же были WDDM 2.6 и включённое ускорение Direct3D. Сам монитор сообщал предпочтительный режим 4К при 60 Гц, но у меня для 4К доступны 30 Гц. С этим отдельно пока не разбирался.
После этого перезагрузил компьютер. Server поднялся с тем же драйвером и разрешением, рабочий стол работал. Примерно через час после запуска посмотрел журналы — новых падений графики не было. Игры и тяжёлую нагрузку я не проверял. На этом компе мне это не нужно было. Цель была вернуть нормальную картинку и убедиться, что после перезагрузки снова не будет чёрного экрана.
Покупку другой карты пока отложил. Старую Windows тоже не удалял: через неё получилось и откатить неудачные дрова, и найти рабочие. Если у вас похожая история, посмотрите, какой пакет раньше работал с вашим железом. В моём случае это оказался 26.20.12028.2, без переделки INF и без отключения проверки подписей.

