Как стать автором
Обновить

Установка Windows через CMD

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.1K

Приходилось ли вам устанавливать современные версии Windows? Если да, то вам точно знаком установщик, каждый этап которого прогружается несколько секунд, и который яростно навязывает вам использование аккаунта Microsoft, с каждым обновлением делая использование локального аккаунта всё труднее и труднее.

Но существует альтернативный способ установить Windows — более быстрый, не требующий подключения к интернету и не навязывающий никаких сервисов — ручная установка с использованием CMD.

Если описать кратко, процесс состоит из следующих частей:

  1. Загрузка с установочного носителя

  2. Ручная разметка диска

  3. Применение WIM-образа (WIM — формат файлов, используемый Microsoft для хранения упакованных системных файлов Windows)

  4. Установка загрузчика

  5. Шаманство с реестром

  6. Первая перезагрузка, запуск с жёсткого диска

  7. Запуск процесса «развёртывания» (deploy) системы

  8. Создание пользователя

  9. Ещё немного возни с реестром и две перезагрузки

  10. PROFIT!

Этап 1. Установка системы

Итак, предположим, что вы уже знаете, как запустить установщик Windows. Теперь было бы неплохо открыть командную строку — для этого, конечно, можно долго и нудно ковыряться в средствах восстановления, но есть и метод проще — нажать сочетание клавиш Shift+F10.

Выглядит это вот так:

Разметка диска

Теперь, пожалуй, стоит разметить диск, ведь нужно же куда-то устанавливать систему. Для этого прекрасно подойдёт встроенная утилита diskpart, предоставляющая консольный интерфейс для работы с дисками.

Для установки системы вам понадобится два раздела — тот, на котором она будет установлена, и загрузочный раздел EFI. Эти разделы нужно создать, отформатировать (EFI-раздел нужно форматировать в FAT32, а основной — в NTFS) и назначить им буквы, чтобы позже использовать их в процессе установки. Я предпочитаю назначать для основного раздела букву C, а для EFI — W. Если вы захотите использовать другие буквы, не забудьте поменять их во всех командах, которые я буду приводить ниже.

Если ваш диск абсолютно пустой (например, если вы ставите систему на ВМ), то вы можете воспользоваться подготовленными мной командами:

select disk 0
convert gpt
create partition efi size=512
format quick fs=fat32
assign letter W
create partition primary
format quick
assign letter C

Здесь сначала выбирается диск с индексом 0 (то есть первый). Далее он конвертируется в формат GPT, а затем на нём создаются, форматируются и получают буквы два раздела — EFI размером 512 мб и основной, занимающий всё оставшееся место.

Применение WIM-образа

Теперь пришло время скопировать на свежесозданный раздел системные файлы Windows. Для этого существует утилита Dism. Она способна выполнять самые разнообразные операции с образами, однако нам понадобятся лишь две из них — /Get-WinInfo и /Apply-Image.

Для начала стоит определиться, какие редакции Windows доступны для установки. Чтобы узнать это, используйте следующую команду:

dism /get-wininfo /wimfile:D:\sources\install.wim

D:\sources\install.wim — файл, содержащий все файлы всех доступных редакций системы. Также этот файл может называться install.esd, поэтому, если команда выдала ошибку о том, что файл не найден, попробуйте заменить расширение .wim на .esd.

UPD: диск D: — установочная флешка. Если у вас возникают ошибки при вводе команды, возможно, система назначила установочной флешке другую букву. Используйте команду diskpart list volume, чтобы просмотреть список томов.

Результат будет примерно таким:

Каждая редакция внутри WIM-файла имеет уникальный индекс, который в дальнейшем нужно будет передать команде установки. Я буду устанавливать Windows 10 Pro, её индекс - 4.

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

Применение WIM-образа осуществляется такой командой:

dism /apply-image /imagefile:D:\sources\install.wim /index:4 /applydir:C:\

Параметр /imagefile указывает утилите путь к файлу образа, параметр /index — необходимую редакцию системы, а /applydir — место, куда должны быть помещены файлы. В нашем случае это корень диска C.

Окно CMD после ввода этой команды будет выглядеть так:

Необходимо подождать, когда утилита закончит свою работу. После этого можно переходить к установке загрузчика.

Установка загрузчика

Загрузчик устанавливается довольно простой командой:

bcdboot C:\Windows /s W:

Первый параметр задаёт папку, в которой находится система, а параметр /s — раздел, на который необходимо установить загрузчик. Установка загрузчика — быстрая операция, занимающая всего несколько секунд.

Когда загрузчик установлен, система фактически готова к загрузке с жёсткого диска, но есть ещё один момент...

Немного твиков реестра

Я не думаю, что вы хотели бы после ручного выполнения первого этапа установки увидеть стандартный OOBE, который сразу же предложит вам подключиться к интернету, чтобы окунуть вас в цифровой концлагерь экосистему Microsoft. Если уж ставить руками — то ставить до конца, не так ли?)

Чтобы при загрузке системы с жёсткого диска вместо неповоротливого OOBE вас встретила элегантная консоль, выполните эти две команды:

reg load HKLM\mount_SYSTEM C:\Windows\System32\config\SYSTEM
reg add HKLM\mount_SYSTEM\Setup /v CmdLine /d "cmd.exe" /t REG_SZ /f

Первая загрузит куст реестра SYSTEM только что распакованной вами с помощью DISM системы, поместив его в локальном реестре по пути HKEY_LOCAL_MACHINE\mount_SYSTEM (если вы не знали, HKLM — это сокращение от HKEY_LOCAL_MACHINE, а весь реестр на самом деле лежит в папке C:\Windows\System32\config в виде файлов особого формата).

Вторая команда задаст в качестве установщика программу cmd.exe, то есть командную строку. Если хотите подробнее узнать о том, что происходит, то вот небольшое объяснение:

  • Первый аргумент — HKLM\mount_SYSTEM\Setup указывает команде раздел реестра, с которым ей предстоит работать;

  • /v (сокр. от value) указывает название значения, которое необходимо добавить или изменить;

  • /d (сокр. от data) указывает данные, которые необходимо поместить в указанное значение реестра;

  • /t (сокр. от type) указывает используемых тип данных (например, REG_SZ — это строка, а REG_DWORD — целое число);

  • /f (сокр. от force) подавляет запрос на изменение существующего значения.

После всех проделанных операций необходимо перезагрузиться, для чего можно использовать команду wpeutil reboot.

Этап 2. Первая перезагрузка

После перезагрузки вы попадёте в особый режим работы Windows — режим установки. В данном режиме запускается лишь одно приложение, указанное в значении CmdLine раздела реестра HKEY_LOCAL_MACHINE\SYSTEM\Setup. В нашем случае этим приложением является командная строка.

Развёртывание системы

Для полноценного функционирования систему нужно «развернуть» (deploy). Этим занимается программа C:\Windows\System32\oobe\windeploy.exe. Поскольку CMD запускается в папке C:\Windows\System32, для начала развёртывания системы необходимо ввести команду oobe\windeploy.

После выполнения этой команды под вращающимся кругом появятся надписи, информирующие о текущей операции, проводимой программой.

Создание пользователя

В системе до сих пор нет ни одного пользовательского аккаунта — обычно эту задачу берёт на себя OOBE, но мы ставим систему без него, поэтому и пользователя придётся создать вручную:

net user /add uzver $tr0ng_p@$$
net localgroup Пользователи /add uzver
net localgroup Администраторы /add uzver

Первая команда создаёт пользователя с именем uzver и назначает ему пароль $tr0ng_p@$$, вторая и третья добавляют свежесозданного юзера в группы Пользователи и Администраторы. Добавление в группу пользователей необходимо, потому что команда net по какой-то причине не может сделать этого самостоятельно, а добавление в группу администраторов нужно, чтобы в дальнейшем иметь полный доступ к установленной системе.

Выдирание хоста с мясом

Чтобы окончательно и бесповоротно покончить с любыми проявлениями OOBE, нужно удалить (или переименовать) файл C:\Windows\System32\WWAHost.exe, являющийся хост-процессом для OOBE и прочих неприятных штук, которые Microsoft так любит пихать пользователям под нос.

Лучше всего переименовать файл, на случай, если когда-нибудь понадобится:

move wwahost.exe wwahost.exe.bak

Уборка за windeploy

Чтобы продолжать дальше, необходимо дождаться, пока windeploy закончит со своими грязными делишками. Понять, что процесс завершился, поможет исчезновение надписи снизу от кружка загрузки:

Удостовериться, точно ли windeploy завершил свою работу, можно с помощью команды:

tasklist | find "windeploy"

Если эта команда не вывела ни одного процесса — можно продолжать.

Windeploy во время своей работы устанавливает значения реестра, при которых система грузится во второй этап OOBE. Наша задача — изменить это, чтобы запускалась командная строка. Таким образом, система «засчитает» прохождение второго этапа OOBE, но сам OOBE запущен не будет.

Все создаваемые Windeploy значения реестра лежат в HKLM\SYSTEM\Setup, поэтому можно использовать команду reg query HKLM\SYSTEM\Setup /t REG_DWORD, чтобы вывести их названия и значения. (/t REG_DWORD — указатель на тип значений).

Всем значениям, кроме SetupType, значения которых отличаются от 0, необходимо установить значение 0 следующей командой:

reg add HKLM\System\Setup /v <значение> /d 0 /t REG_DWORD /f

После этого необходимо вновь настроить систему на запуск командной строки:

reg add HKLM\System\Setup /v CmdLine /d "cmd.exe"

Выполнение этих действий показано на скриншоте.

После внесения изменений в реестр систему необходимо перезагрузить командой shutdown -r -t 0.

Этап 3. Вторая перезагрузка

Вы вновь попадёте в командную строку, в которой нужно ввести команду shutdown -r -t 0. Произойдёт перезагрузка, и система загрузится уже полноценно, с графическим интерфейсом входа в аккаунт.

Скриншоты установленной системы

P.S.

Этот способ может показаться сложным, но, на самом деле, если сравнить его с установкой через графический интерфейс, окажется, что он требует выполнения даже меньшего количества действий и времени, чем «нормальная» установка. Также этот способ можно легко автоматизировать при помощи, например, bat-файлов, не прибегая к изучению сложного синтаксиса файла unattend.xml.

Теги:
Хабы:
+36
Комментарии21

Публикации

Ближайшие события