Windows cannot complete the extraction что это

Обновлено: 04.07.2024

Это первая часть очередной истории о том, как можно наступить на грабли, там, где обычно этого не ожидаешь. Началось всё с того, что для очередного развёртывания нескольких однотипных виртуальных машин Hyper-V с гостевой ОС Windows Server 2012 R2 был подготовлен эталонный образ виртуального диска с установленной ОС. В эталонный образ были включены все актуальные обновления, после чего для уменьшения размера диска был применён метод очистки хранилища компонент Windows в каталоге WinSxS, а логический том системного диска по своему объему был усечён таким образом, что на нём оставалось около 5GB свободного пространства. Перед отключением ВМ в эталонной гостевой ОС по законам жанра была выполнена утилита sysprep. В дальнейшем с этого образа было успешно развёрнуто несколько ВМ, имеющих конфигурацию ВМ, сопоставимую с эталонной ВМ. Спустя некоторое время после всей этой истории с пониманием того, что ранее несколько развёртываний с образа прошли успешно, была предпринята попытка развернуть ещё пару ВМ с этого же образа.

Windows Setup could not configure Windows to run onthis computer hardware

Windows could not complete the installation. To install Windows on this computer restart the installation

Далее после нажатия кнопки "OK" система отправлялась в перезагрузку и при следующей загрузке ситуация со второй ошибкой повторялась.

…и обнаруживаем, что свободного места на диске практически нет. При этом размер файла подкачки pagefile.sys , размещаемого по умолчанию в корне этого диска имеет внушительный размер.

Dir system drive pagefile.sys

И здесь мы вспоминаем про то, что предыдущие успешные развёртывания с данного образа виртуального диска выполнялись на виртуальные машины, имеющие небольшой объём ОЗУ, а последние две ВМ, где мы столкнулись с проблемой, при создании были сконфигурированы на использование большого объема ОЗУ. И предположительно, причиной невозможности корректной первичной инициализации системы стал раздутый файл подкачки.

В такой ситуации можно попробовать умерить аппетиты гостевой ОС на расширение файла подкачки, установив на время ограниченный максимальный размер файла. Для этого из уже открытой командной строки можем вызвать апплет управления свойствами системы sysdm.cpl. В открывшейся форме переходим на закладку управления расширенными настройками Advanced и в блоке Performance нажимаем кнопку Settings. В дополнительно открывшейся форме переходим на вкладку Advanced и в разделе Virtual memory используем кнопку Change чтобы изменить параметры файла подкачки.

Windows Virtual memory pagefile settings

Отключим используемое по умолчанию автоматическое определение размера файла подкачки, укажем первичный и максимально допустимый размеры файла через опцию Custom size (например, от 512MB, но не больше 2GB) и нажмём Set, затем OK.

Windows pagefile custom fixed size

Теперь можно попробовать перезагрузить виртуальную машину, и при следующей загрузке гостевой ОС свободного места на системном диске должно быть достаточно для нормальной первичной инициализации системы. В нашем случае одна из ВМ загрузилась успешно, а вторая ВМ, не смотря на доступность места на диске продолжила выдавать ошибку " Windows could not complete the installation… ". Вероятно, в процессе первого запуска ОС с наличием проблемы с нехваткой свободного места на диске с механизмом OOBE (Out-of-Box Experience) что-то пошло не так.

Run OOBE msoobe tool

В случае успешного вызова этой утилиты перед нами должно появиться стандартное окно первичной настройки параметров системы, которое появляется при первом запуске ранее sysprep-нутой системы.

OOBE Start screen

После того, как определим языковые параметры, и на следующих двух экранах примем лицензионное соглашение и укажем учётные данные администратора, мастер первичной инициализации закроется и мы снова вернёмся на первоначальный чёрный экран с открытой командной строкой, в которой вызовем команду штатной перезагрузки гостевой системы:

Reboot windows from command line

В нашем случае после перезагрузки гостевая система успешно загрузилась.

Windows Server 2012 R2 start after Sysprep

Если ранее установили небольшой фиксированный файл подкачки, то не забываем его вернуть обратно в автоматический режим, либо указываем другой устраивающий нас размер.

Делаем вывод, что если нам заранее известно то, что внутри шаблонного виртуального диска на системном томе гостевой ОС немного свободного места, то перед первым запуском ВМ лучше установить минимальный объём ОЗУ, исходя из которого система не будет пытаться создать файл подкачки большого размера. А уже после окончания процесса первичной инициализации можно будет увеличить размер ОЗУ ВМ до нужного объёма. Ну или же при создании эталонного диска можно устанавливать небольшой фиксированный размер файла подкачки, который, возможно, потребуется после первичной инициализации новой гостевой ОС, выставлять обратно в автоматический режим либо увеличивать под свои нужды.

С другой стороны, если Вам критична стабильность и предсказуемость работы развёрнутой из шаблона гостевой ОС и Вы испытали проблемы в ходе первичной инициализации OOBE, то лучше пытаться выполнять развёртывание повторно до тех пор, пока оно не отработает штатно. То есть лучше безжалостно удалять виртуальный диск, где первичная инициализация ОС прошла с ошибками и цеплять шаблонный диск к новой ВМ повторно для получения нужного результата. В противном случае с такой "кое-как взлетевшей" системой может случиться ещё несколько историй в духе "О сколько нам открытий чудных …". Одной из таких дивных историй я поделюсь в следующей заметке.

Читайте также: