пятница, 17 марта 2017 г.

Малый боевой набор к установщику Windows.



Не сильно давно в любом ларьке с дисками продавались всякие загрузочные CD и DVD с Live-сборками операционных систем, напичканных пиратскими и не совсем версиями программ для лечения и восстановления загубленной вирусами и очумелыми ручками системы и данных. Обычно из всего этого фарша требовалось не больше 2-3 программ, чтобы привести убитую систему в чувства. И вот когда ОС Windows уже самостоятельно без дополнительных костылей научилась устанавливаться с USB-флешкиб нечто подобное уже можно соорудить самостоятельно.


На самом деле установщик Windows семейства NT - это уже полноценная операционная система, но в ней вместо "Проводника" работает программа установки. Но до органов управления всё равно можно добраться, нажав сочетание клавиш Shift+F10. Оно вызывает окно командной строки с максимальными привилегиями, а больше ничего и не надо, чтобы запускать уже свои программы.

Но тут всё равно есть ограничения:
Во-первых, разрядность программы должна строго соответствовать разрядности системы, потому что в 64-битной системе-установщике нет 32-битных библиотек и 32-битной подсистемы вообще.
Во-вторых, сама программа должна зависеть от как можно меньшего количества сторонних библиотек. Недостающие по идее можно подложить в папку с самой программой, но не факт что в итоге не полезут какие-нибудь глюки.

Итак, что же можно запихнуть на флешку с установщиком, чтобы хоть как-то жить?

Прежде всего необходим файловый менеджер, потому что от привычного "Проводника" в той среде по сути только диалог выбора открываемого файла или папки.

Я остановился на Far Manager. Скорее всего заработает и 64-битная версия Total Commander.

Минимальный системный инструментарий здесь тоже доступен:
  • chkdsk для проверки файловой системы на ошибки;
  • regedit для редактирования реестра. Кусты реестра можно подгружать в раздел "HKEY_LOCAL_MACHINE";
  • diskpart для работы с дисками и разделами.
Если сетевой адаптер не совсем экзотический, то даже сеть будет работать. А если еще и чипсет не слишком новый, то может и USB3-концентраторы запустятся.

Мне для полного счастья не хватало только простой программы для создания образов дисков и разделов, чтобы сохранить раздел с нужными данными в компактный образ. Для этого мне подошла программа Disk2vhd авторства Марка Руссиновича. Единственной её функцией является сохранение выбранных разделов в образ формата VHD/VHDX, которые потом без дополнительных программ можно будет подключить в Windows и работать с их содержимым.

Проблема состоит в том, что нет отдельной 64-битной версии. Но её можно сделать самостоятельно. Для этого нужна любая 64-битная версия Windows. Программу достаточно просто запустить и не закрывать. Она сама определяет разрядность системы и запускает нужную версию себя, при этом рядом с запущенным файлом появится файл "disk2vhd-tmp.exe". Его надо скопировать на флешку и переименовать в что-то типа "disk2vhd-64bit.exe".

И для этой программы тоже есть ряд ограничений:
Во-первых, механизм теневого копирования тома (VSS)  в системе-установщике не работает. Перед захватом выбранного раздела в образ надо закрыть все программы, которые с ним работают.
Во-вторых, захватывать образ скорее всего согласится только в формат VHDX, сославшись на слишком большой размер раздела для VHD, а подключение такого формата образов поддерживается только с Windows 8.

Уже созданный образ можно подключить с помощью программы "diskpart". Для этого её надо запустить и использовать уже её собственную командную оболочку.
# Выбор файла-образа
select vdisk file="полный адрес файла"
# Подключение выбранного образа
attach vdisk
# Если диск подключился, но в системе не появился
online disk
# Отключение диска
detach vdisk
# Сжатие образа для удаления из него пустого пространства
compact vdisk

Работа с подключенным образом не отличается от работы с обычным диском.

Примерно таким образом я недавно переустанавливал систему.