*все миниатюры кликабельны Установка Windows по сети - задача нетривиальная, обычному пользователю такое редко может пригодиться, зато в корпоративных сетях такое встречается чаще, ведь способ установить Windows на 20 компьютеров в сжатые сроки лишь 1. Как показал поиск в Интернете, статей на эту тему много, однако многие из них сложные, разные скрипты не объясняются от слова "совсем", при чем написаны они "криво", а какие-то моменты и вовсе забываются, вследствие чего исправить у себя недочет автора если и можно, то сложно. Я же постараюсь учесть все эти ошибки и предоставить информацию в понятной форме и с объяснениями, чтобы было полное понимание, а при повторении не было пробелов и ошибок. Итак, начинаем. Этапы установки Windows изнутриСперва разберемся с основными этапами установки Windows 10 через флешку, чтобы потом было проще понять логику при установке через локальную сеть (LAN).
Какие же отличия при установке через LAN? На 1-м этапе загружаться будем через сетевую карту, а на 2-м программа установки запускается с сетевого диска, который подключается специальным скриптом. Сетевой диск - это просто общая папка на другом компе в сети, подключенная как локальный диск, из-за чего она отображается в "Компьютере" и имеет свою собственную букву. Чтобы все это сделать, мы изменим образ boot.wim: добавим драйверы для сети и автозапускаемый скрипт, который будет подключать сетевой диск и запускать установщик системы. Для загрузки по сети нашу сеть из кучи компов нужно будет настроить. Для этой цели мы будем использовать программу Tftpd64, которая содержит в себе и DHCP (настраивает сеть, т.е. раздает IP-адреса клиентам), и TFTP сервер (его роль - сетевое хранилище данных). Tftpd32 и Tftpd64 - одна и та же программа, только Tftpd32 - 32-битная версия, а Tftpd64 - 64-битная. Теперь немного справочной информации.
Вся схема установки Windows будет выглядеть следующим образом:
Возникает вопрос: зачем монтировать сетевую папку как диск? Ответ прост: Проблема в том, что после загрузки среды открывается только консоль, при закрытии которой автоматически происходит перезагрузка ПК. Вся работа в среде осуществляется ТОЛЬКО через консоль и консольные утилиты. А консоль не умеет работать с сетью и открывать файлы, лежащие на других ПК, поэтому мы не можем зайти в какую-либо сетевую папку через команду cd и открыть нужный файл. Но зато мы можем смонтировать сетевую папку как сетевой диск через консольную утилиту. А т.к. сетевой диск имеет букву в нашей локальной файловой системе, значит у нас будет доступ к этим файлам через консоль. Таким образом ограничение обходится стороной. План действийИтак, вся работа по установке Windows по сети сводится к следующим действиям:
С принципом загрузки разобрались, с этапами работы определились. Начинаем. Этап 1. Подготовка установочных файловСовет: не используйте папки с длинными путями – прописывать длинные пути в дальнейшем будет неудобно. Сначала разберемся с файлами. В качестве основной рабочей папки я буду использовать E:\Win10x64_LanSetup. Эта папка будет корневой папкой нашего будущего сервера. Для начала в нее нужно скопировать папку Sources из образа Windows 10. Это можно сделать с помощью любого архиватора или просто примонтировав образ и скопировав папку. Теперь нужно настроить загрузочный образ – файл boot.wim, который отвечает за установочную среду. Для этого создадим в основной папке новую папку с именем Image и скопируем в нее файл boot.wim, который лежит в папке Sources. Теперь нужно добавить к образу сетевые драйверы, чтобы в нем работала сеть. Дальше я покажу, откуда взять кучу сетевых драйверов, поэтому если у вас уже есть нужные сетевые драйверы, можете просто перейти к этапу интеграции. Откуда взять драйверы?Для этого качаем Lite-версию Snappy Driver Installer с официального сайта. Эта программа – огромная куча различных драйверов. Она распространяется в виде .zip-архива, так что распаковываем его и запускаем программу. Появится вот такое окно: Теперь у нас есть 2 варианта:
Вариант 1 – загрузка всех сетевых драйверовЕсли у вас куча времени, вам лень разбираться в программе и все равно на размер образа, то можете скачать все сетевые драйверы. Для этого жмем на кнопку «Загрузить сетевые Драйвер-Паки» – и у нас сразу же начнется скачивание драйверов. Теперь остается лишь ждать, пока драйверы загрузятся. После их загрузки мы увидим примерно такое окно: Теперь программа показывает нам список драйверов, которые она может обновить. Оно нам не нужно, так что закрываем программу и переходим к части интеграции или читаем о том, как не качать лишнее. Вариант 2 – выборочная загрузка драйверовПосле открытия программы нам нужно закрыть первое окно. Теперь нажимаем на широкий прямоугольник в верхней части окна, затем в открывшемся окне жмем на кнопку «Только сетевые». Как видно, после нажатия на кнопку «Только сетевые» программа предлагает мне скачать пакеты драйверов на Wi-Fi, 4G и LAN (еще несколько пакетов LAN не влезло на скрин). ПК-клиент, на который будет ставиться система, будет загружаться через LAN, так что первые 2 пакета нам не нужны и с них мы галочки снимаем. Итак, скачивать я буду следующие пакеты драйверов: Осталось нажать на кнопку «ОК» и дождаться окончания загрузки драйверов. Кстати говоря, повторно нажав на тот широкий прямоугольник (который является еще и индикатором загрузки), вы всегда можете докачать что-нибудь еще. После выборочного скачивания тоже предлагается обновить драйверы. Но мы закрываем программу и возвращаемся к ее папке: в ней есть подпапка drivers, в которой лежат все скачанные драйверы в виде архивов. Распаковываем архивы в какую-нибудь временную папку. Я решил распаковать их на месте, каждый архив – в свою папку. Это можно удобно сделать WinRAR или 7-Zip – оба архиватора это делать: После распаковки архивы можно удалить - они больше не понадобятся. Интеграция сетевых драйверов и скрипта настройкиИтак, у нас есть образ среды установки и распакованные сетевые драйвера. Алгоритм интеграции:
Монтировать образ в папку мы будем через утилиту DISM. Ее скачивать не нужно – она уже есть в системе (как в Win 7, так и в Win 10). Сначала создаем временную папку в удобном месте (помните про совет в начале статьи). Я буду монтировать в папку D:\mnt. Эту папку нужно создать самим, т.к. DISM ее автоматически не создаст. dism.exe /get-imageinfo /imagefile:*путь к папке Image*\boot.wim Так как моя рабочая папка – это папка E:\Win10x64_LanSetup, то в моем случае команда будет выглядеть так: dism.exe /get-imageinfo /imagefile:E:\Win10x64_LanSetup\Image\boot.wim Напоминание: если путь к файлу или папке содержит пробелы, он берется в двойные кавычки. Например, путь… D:\Windows 10 Lan\Image\boot.wim В данной команде был бы прописан так: dism.exe /get-imageinfo /imagefile:"D:\Windows 10 Lan\Image\boot.wim" Данной командой мы узнали, сколько образов лежит .wim-архиве: В архиве 2 образа. Нам нужен тот, который содержит в имени «Setup», т.е. образ с индексом 2. Запоминаем индекс. Шаблон команды монтирования: dism.exe /mount-wim /wimfile:*адрес папки Image*\boot.wim /index:*индекс нужного образа* /mountdir:*адрес каталога, куда будет смонтирован образ* В моем случае команда будет такая: dism.exe /mount-wim /wimfile:E:\Win10x64_LanSetup\Image\boot.wim /index:2 /mountdir:D:\mnt Образ смонтирован в папку: теперь во временной папке лежит содержимое смонтированного образа, и мы можем изменить его для последующей обратной упаковки. Теперь интеграция драйверов. Т.к. у меня образ 64-битной Windows 10, то из пакета драйверов мне нужно брать только x64-битные версии. Папки с такими драйверами содержат в названии «x64». Например: Поэтому нужно пробежаться по всем папкам и удалить папки, содержащие в названии «x86». Муторно, но лишние драйверы не нужны - они просто не заработают. Для интеграции драйверов напишем в консоли команду по такому шаблону: dism.exe /image:*адрес каталога со смонтированным образом* /Add-Driver /Driver:*адрес папки с драйверпаком нужной разрядности* /Recurse В этой команде ключ /Recurse указывает на то, что драйверы искать нужно не только в указанной в ключе /Driver папке, но и подпапках. Таким образом не нужно выполнять эту команду для каждого отдельного драйвера, достаточно указать папку со всеми драйверами. Т.к. я знаю, что производитель сетевой карты целевого ПК – Intel, то все драйверы я интегрировать не буду – это займет много времени, а образ будет большим. К тому же их можно добавить позже таким же способом, так что в моем случае она будет выглядеть так: dism.exe /image:D:\mnt /Add-Driver /Driver:D:\User's files\Desktop\SDI_R2102\drivers\DP_LAN_Intel_21023 /Recurse После нажатия Enter может показаться, что консоль зависла, но нет – DISM подсчитывает драйверы перед интеграцией (скриншот 1). Потом начинается интеграция (скриншот 2), которая в моем случае закончилась через 2 минуты. С драйверами закончили, но закрывать консоль рано. Теперь нужно сделать автоматический запуск скрипта подключения сетевого диска после загрузки среды установки. И только потом мы сохраним изменения, размонтируем образ и закроем консоль. Для этого перейдем в папку со смонтированным образом, затем в папку Windows\System32 (т.е. у меня это D:\mnt\Windows\System32). В ней создаем .ini-файл winpeshl.ini со следующим содержимым: [LaunchApps] Всё. Теперь после загрузки среда будет автоматически запускать скрипт init.cmd, который мы сейчас создадим. В этой же папке создаем новый .cmd-скрипт с именем init.cmd. В него пишем этот код: ::::::::::::::::::::::::::::::::::::::: Сохранить файл нужно в кодировке OEM 866 (Notepad++ или любой другой умный текстовый редактор в помощь), иначе вместо русских символов будут отображаться кракозябры. Если не знаете, как это сделать, просто замените русский текст английским. dism.exe /unmount-wim /mountdir:*адрес каталога со смонтированным образом* /commit В моем случае команда выглядит так: dism.exe /unmount-wim /mountdir:D:\mnt /commit Если же вы хотите размонтировать образ БЕЗ сохранения внесенных в него изменений (например, сделали что-то не так и хотите начать сначала), просто замените ключ /commit на ключ /discard. После сохранения образ отключается, а папка, в которую мы монтировали образ, становится вновь пустой. Возможные ошибки Если при сохранении и отключении образа сохранение прошло успешно, а при отключении образа произошла ошибка, выполните команду по отключению без сохранения, т.е. с ключом /discard. С основными файлами закончили, консоль можно закрывать. Настройка загрузчикаТеперь нужно настроить загрузчик для загрузки по сети.
После вышеуказанных действий корневая папка TFTP-сервера должна выглядеть так: А папка Boot - так: Все файлы на месте. Теперь нужно настроить файл BCD (файл конфигурации загрузчика). Для этого используем утилиту BOOTICE. Необходимые пункты буду указывать и для английской, и для русской версии программы.
Все, загрузчик настроен, BOOTICE можно закрывать. Этап 2. Настройка сети и Tftpd64Теперь настраиваем сеть и Tftpd64. Сначала сеть. Нажимаем сочетание клавиш "Пуск" и R. Откроется окно "Выполнить". Вводим ncpa.cpl и жмем "ОК". Откроется окно "Сетевые подключения" со списком интерфейсов (проще говоря, сетевых карт). Ищем интерфейс своей сетевой карты LAN, обычно он называется "Подключение по локальной сети" или "Ethernet" (как раз мой случай). Дважды кликаем по нему для открытия свойств. В списке компонентов находим пункт IP версии 4 (TCP/IPv4) и кликаем по нему 2 раза для открытия свойств. Перед нами откроется окно свойств компонента, в котором можно ввести различные IP-адреса. Если у вас выбран пункт "Получить IP-адрес автоматически", то переключаем его на "Использовать следующий IP-адрес" и вводим:
Таким образом мы установили статический IP-адрес для сетевой карты. К этому IP мы привяжем сервера Tftpd64. Жмем "ОК" и закрываем окна свойств и сетевых подключений. Теперь устанавливаем и открываем Tftpd64. Перед нами главное окно программы. Нажимаем на кнопку Settings внизу и в окне настроек сразу переходим на вкладку GLOBAL. Вкладка GLOBAL Здесь отмечаем интересующие нас сервера (TFTP Server и DHCP Server) и переходим на вкладку TFTP. Вкладка TFTP Здесь нас интересуют только Base Directory и блок Advanced TFTP Options. Разберем их. Base Directory - путь к корневой папке нашего TFTP-сервера, т.е. в моем случае E:\Win10x64_LanSetup\. В блоке Advanced TFTP Option отмечаем такие пункты:
Вкладка DHCP В блоке DHCP Pool definition заполняем такие поля:
В блоке DHCP Option заполняем 4 поля:
Теперь последний блок DHCP Settings
Возможные ошибки Tftpd64 Ошибка "Can't connect to the serviceError 10061" возникает в случае, когда служба Tftpd64 не запущена. Проверьте состояние службы и запустите ее, если она не запущена. Этап 3. Настройка Брандмауэра WindowsСкорее всего, брандмауэр не даст нормально работать Tftpd64. Есть 2 варианта решения проблемы: добавление Tftpd64 в исключения и временное отключение брандмауэра. Из-за большого размера статьи будет описан только 2-й способ, первый легко нагуглится. Открываем "Пуск" и сразу набираем "безопасность", затем открываем найденное "Безопасность Windows" и переходим в раздел "Брандмауэр и безопасность сети". Здесь мы видим 3 профиля: "Сеть домена", "Частная сеть" и "Общедоступная сеть". Заходим в тот, который отмечен активным и выключаем брандмауэр. После установки не забываем включить его обратно! Этап 4. Включение видимости в сетяхТеперь необходимо включить видимость в сети. Для этого открываем Панель управления и вверху справа в поиске вбиваем "Центр управления сетями и общим доступом", открываем его. Теперь кликаем на пункт слева "Изменить дополнительные параметры общего доступа" и последовательно во всех профилях включаем сетевое обнаружение и общий доступ к папкам и принтерам. После этого проверяем общий доступ с парольной защитой в профиле "Все сети". Он должен быть включен! Обязательно! Это связано с тем, что утилита для подключения сетевого диска не умеет авторизовываться с пустым паролем. Теперь необходимо создать новую учетную запись на ПК-сервере с паролем. Для простоты этот этап я опущу - он легко гуглится в интернете. Я, например, создал учетную запись с именем 'net' и паролем также 'net'. Этап 5. Включение общего доступа к файлам установкиПростой этап, на котором почему-то часто косячат. Подробную видеоинструкцию можно легко найти, так что здесь опишу довольно кратко.
Если вкладки нет, значит кто-то или что-то ранее отключило показ вкладки (или нужный для нее компонент, например, службу). Например, я однажды так "поиграл" с программой Win10Tweaker, о чем позже пожалел.
Теперь остальная часть окна разблокировалась. Строку "Имя общего ресурса" НЕ меняем: это сетевое имя папки, т.е. под таким именем наша папка будет видна из сети.
В этом окне мы добавим нашего ранее созданного пользователя, чтобы выдать ему права на чтение папки. Т.е. в моем случае это будет пользователь "net".
Если имен найдется несколько, появится окно с уточнением, кого именно добавлять. Лично у меня так и получилось, ведь слово "net" содержится и в имени моего пользователя "net", и в имени группы пользователей "NETWORK SERVICE". Просто выбираю своего пользователя и жму "ОК". Пользователь выбран, его имя стало полным и подчеркнутым.
Но это еще не все. Доступ-то мы открыли, однако система безопасности Windows будет блокировать наши попытки зайти в эту папку под нашим пользователем. Для исправления этого переходим во вкладку "Безопасность". Чтобы добавить нашего пользователя в список разрешенных, жмем кнопку "Изменить" и проделываем ровно ту же процедуру, что описана выше. Т.е. жмем "Добавить...", вводим имя пользователя, затем "Проверить имена", "ОК" и "ОК". В итоге во вкладке "Безопасность" в списке "Группы или пользователи" должен появиться наш пользователь с разрешениями "Чтение и выполнение", "Список содержимого папки" и "Чтение". Все верно? Жмем "Закрыть"! Этап 6. Установка загрузки через сеть в BIOSЭтот этап достаточно "индивидуальный", потому что напрямую зависит от BIOS целевой машины. Посоветовать здесь можно лишь одно: проверьте, разрешена ли вообще загрузка через PXE. Потому что если она запрещена, то при выборе устройства для загрузки в списке пункта, связанного с LAN, вообще не будет. Этап 7. Проверка на VirtualBoxЭтот этап опциональный, здесь мы проверим с помощью виртуальной машины (ВМ), все ли сделано правильно. Первым делом надо настроить виртуальный адаптер хоста, а именно отключить встроенный DHCP сервер VirtualBox и установить статический IP для нашего хоста в сети VirtualBox. Для этого открываем VirtualBox и щелкаем по правой кнопке на разделе "Инструменты". Теперь мы в разделе управления сетями VirtualBox. Здесь в списке видна наша виртуальная сетевая карта хоста. Снимаем галочку для отключения DHCP сервера для нее и выставляем IP и маску подсети вручную. Ставим стандартные 192.168.56.1 и 255.255.255.0 соответственно. Жмем "Применить". Теперь создаем машину на Windows 10 x64. У себя ОЗУ я выставил на 4 Gb, но в целом ставим по возможности железок. После создания открываем настройки ВМ и меняем следующие параметры:
ВМ готова, жмем "ОК". Теперь настраиваем Tftpd64. Открываем его, заходим в настройки и настраиваем по инструкции выше. IP на скриншотах выше как раз выставлены для теста на VirtualBox, так что тут не запутаться и не сбиться: просто повторяем все, как на скринах. После применения параметров перезапускаем Tftpd64, как он нас и просит. Теперь запускаем виртуальную машину. На предложении выбрать образ загрузочного диска просто жмем отмену, а через несколько секунд радуемся старту загрузки по сети. На этом скриншоте показано, что происходит загрузка файла boot.wim с компа в сети с IP 192.168.56.1, т.е. с хоста. Возможные ошибки при загрузке ВМ по LAN
В итоге после удачной загрузки виртуальной машины мы увидим вот такую картину: Вводим здесь IP нашего хоста, т.е. 192.168.56.1. Теперь скрипт попросит ввести сетевое имя папки с файлами установки, о котором я рассказывал выше в главе о настройке общего доступа к папке и специально говорил его не менять. Именно потому, что мы его не меняли, просто вводим обычное имя папки с файлами установки. Если бы мы его сменили, то здесь бы мы вводили именно сетевое имя. Затем скрипт спросит, верно ли мы ввели данные. Тут все просто: 1 = "верно", 2 = "давай введу заново". После этого запускается утилита для монтирования сетевой папки в качестве диска. Она спросит у нас сначала имя, а потом и пароль пользователя для подключения к хосту. Здесь мы вводим данные от созданного ранее пользователя, т.е. я ввел имя и пароль "net" (да, с паролем я не заморачивался :-) ). Учтите, что при вводе пароля никакие символы вообще не отображаются. Это не ошибка, все в порядке. Все. После успешного монтирования консоль меняет цвет на зеленый и запускается установщик системы. Дальше - все, как обычно: выбираем язык, Если же мы введем какие-нибудь неверные данные или произойдет какая-нибудь ошибка, цвет консоли сменится на красный, скрипт завершается, и управление возвращается нам. Например, на данном скриншоте видно, что я пропустил знак нижнего подчеркивания в имени папки "Win10x64_LanSetup", из-за чего и произошла ошибка. В этом случае мы можем запустить скрипт заново. Просто вводим "init" в консоль, жмём Enter и пробуем снова. Установка системы по LAN на реальную машинуЗдесь следует сказать лишь пару слов. Если при тестировании на виртуальной машине загрузка ВМ по сети прошла успешно, значит все было сделано правильно и с реальными компами все тоже сработает. Разница между установкой на ВМ и установкой на реальную машину лишь в 2 действиях:
ЗаключениеНадеюсь, эта большая статья получилась познавательной, но в то же время простой и понятной. Все описанное здесь было проверено в том числе и на реальном компе: все работает, как часы, так что пользуйтесь, если вдруг когда-нибудь пригодится) :-) Итак, статья завершена. Это моя первая работа, она получилась очень большой и подробной, но все это только ради качества. На написание было потрачено ОЧЕНЬ много времени и сил, поэтому если она помогла вам, то напишите об этом комментарий = дайте об этом знать. :-) * to be continued...maybe) | |
| |
Просмотров: 731 | |
Всего комментариев: 0 | |