Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-21 часть. Добавляем Windows
Всем привет в 20 части мы рассмотрели как добавить на PXE сервер AVG антивирусник, сегодня наконец то речь пойдет и дошли руки сделать установку Windows с PXE сервера pxelinux. Так что давайте сделаем наш сервер установки еще более универсальным. В данном примере я буду производить установку операционной системы Windows Server 2008 R2, но тут главное принцип, и не большие отличия от клиентский систем, типа семерки или 10.
Для решения нашей задачи нам нужен компьютер с ОС windows7/windows 2008 под рукой (для создания файлов установки). Он нам будет нужен, чтобы сделать WinPE. Windows PE — это среда предустановки Windows, использующаяся на первоначальном этапе установки операционных систем Windows Vista, Windows Server 2008 и Windows 7. На ней же основана и среда восстановления – Windows. На компьютере с помощью которого мы будем делать WinPE нужно установить WAIK (Windows Automated Installation Kit) или как его еще называют Windows AIK.
Создание Windows PE
открываем пуск и от имени администратора запускаем Командная строка средств развертывания.
откроется черное окно командной строке winpe
выполняем команду для создания структуры папок winpe
Видим скопировалось 8 файлов.
и у вас на диске С создалась папка winpe
далее создадим папку на диске С c:\netboot\win\Boot
c:\netboot\win\Boot
И монтируем нашу файловую систему, командой
mount
И теперь поочереди выполним три команды, которые скопируют нужные файлы в папку c:\netboot\win
xcopy c:\winpe\mount
\windows\boot\pxe\pxeboot.n12 c:\netboot\win
xcopy c:\winpe\mount
\windows\boot\pxe\bootmgr.exe c:\netboot\win
xcopy c:\winpe\iso\boot\boot.sdi c:\netboot\win\Boot
В итоге вы получите три файла
- папка boot
- bootmgr
- pxeboot.n12
Последовательность сетевой загрузки WinPE, начиная с версии 2.0, следующая:
- загружается сетевое ядро
pxeboot.com
; - сетевое ядро загружает стандартный диспетчер загрузки
bootmgr.exe
, далее сетевая загрузка практически не отличается от загрузки с других носителей; - диспетчер загрузки читает файл
BCD
(boot configuration data), где прописана конфигурационная информация (расположение загрузочных файлов), загружает необходимый шрифт (wgl4_boot.ttf
) и драйвер виртуального дискаboot.sdi
, потом загружается образ WinPE; - диспетчер загрузки передает управление программе, указанной в параметре path BCD-файла.
Для начала хочу напомнить, что разница между файлами pxeboot.com и pxeboot.n12, в требовании первого нажать для установки клавишу F12. Так как это требование в нашем случае лишнее, то я буду использовать файл pxeboot.n12.
Теперь когда загрузиться с данного winpe вы увидите командную строку для выполнения команд, напишем скрипт для монтирования по протоколу nfs файловых шар.
Скрипт монтирования NFS шар с дистрибутивом Windows Server 2008 R2
Создадим файл startnet.cmd или можете его открыть C:\winpe\mount\Windows\System32\startnet.cmd. Так как меню у нас на русском языке, нужен редактор позволяющий менять кодировку текста(CP866 в нашем случае). Я использую Notepad++
Кодировки => Кодировки => Кириллица => OEM 866. Если Вы уже набрали код батника в Notepad++ и Вам его нужно пересохранить в кодировке cp866, действуйте по такой схеме:
1) Скопируйте весь текст батника (комбинация клавиш Ctrl + A или Правка => Выделить все)
2) Вырежьте выделенный текст в буфер обмена (Ctrl + X или правой кнопкой мыши по выделенному тексту => Вырезать)
3) Сделайте все, как на рисунке выше:
Кодировки => Кодировки => Кириллица => OEM 866
4) Вставьте текст из буфера обмена (Ctrl + V или Shift + Insert или правой кнопкой мыши => Вставить)
5) Сохраните файл (Файл => Сохранить).
Если вы по своему называли свою шару не images, то не забудьте это поправить. Скачать Скрипт монтирования NFS шар с дистрибутивом Windows Сохраняем изменения и в Продолжение установки Windows с PXE сервера linux читайте в 21 части. Материал сайта pyatilistnik.orgecho
off
echo
.
echo
Запускаю wpeinit.
echo
Подожди немного...
echo
.
wpeinit
echo
На выбор доступно три режима работы WinPE:
echo
1) Просто монтируется шара
echo
и командная строка ждет дальнейших действий.
echo
.
echo
2) Монтируется smb шара и запускается установщик
echo
Windows 2008 R2 Enterprise.
echo
.
echo
3) Монтируется smb шара и запускается автоматическая
echo
установка Windows 2008 R2 Enterprise Full с занесением в домен.
echo
.
echo
Выберите пункт меню нажав соответсвующую ему цифру,
echo
а затем нажми клавишу Enter(ошибочный ввод = 1 пункт).
set
/p ID=
echo
.
if
%ID%==1 goto :first
if
%ID%==2 goto :second
if
%ID%==3 goto :third
if
%ID% GTR 3 goto :failure
if
%ID% LSS 3 goto :failure
exit
/b
:second
echo
Вы выбрали пункт меню под номером 2
echo
.
echo
Монтирую smb шару.
net use j: \\10.10.10.2\images
echo
Запускаю j:\w2008r2\setup.exe
j:\w2008r2\setup.exe
exit
/b
:third
echo
Вы выбрали
пункт меню под номером 3
echo
.
echo
Монтирую smb шару.
net use j: \\10.10.10.2\images
echo
Запускаю автоматическую установку: j:\w2008r2\setup.exe /unattend:j:\autounattend.xml
j:\w2008r2\setup.exe /unattend:j:\w2008r2\autounattend.xml
exit
/b
:first
echo
Вы выбрали
пункт меню под номером 1
echo
.
:failure
echo
.
echo
Монтирую smb шару.
net use j: \\10.10.10.2\images
exit
/b
startnet.cmd. Отмонтируем winpe.wim сохранив изменения и скопируем полученный образ к остальным файлам.
imagex.exe /unmount /commit
mount
xcopy c:\winpe\winpe.wim c:\netboot\win\Boot
Добрый день!
Спасибо за статью, у меня все получилось как написано в этом мануале, но винда 7 не хочет запускаться.
Выдает ошибку:
Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:
Ну и дальше пути решения типа «вставьте диск, выберите язык, кликните далее, кликните «Repair your computer»
File: \Boot\BCD
Status: 0xc000001
Info: An error occurred while attempting to read the boot configuration data.
В чем может быть проблема?
Таже самая ошибка File: \Boot\BCD
Status: 0xc000001
Info: An error occurred while attempting to read the boot configuration data.
Не работает данное описание.
Я семерку не тестировал, делал только с серверными версиями, смотрите пути в BCD
Таже самая ошибка File: \Boot\BCD
Status: 0xc000001
Info: An error occurred while attempting to read the boot configuration data.
Ребят, данная ошибка говорит о том, что не удаётся получить доступ к загрузчику — нет прав. Автор статьи, конечно, молодец, но копипастер не очень. Есть ряд замечаний. Во-первых, права на папку должны быть 755, на файлы 644. Он же, во в этой статье http://pyatilistnik.org/kak-ustanovit-zagruzochnyiy-pxe-server-dlya-ustanovki-windows-linux-esxi-5-5-1-chast/ сначала говорит, что права должны быть 0771-0660 (так НЕ РАБОТАЕТ!!!), а потом вдруг 777 — зачем ??? Во-вторых, люди жаловались на ошибку 0xc000000f при загрузке WinPE, автор ответить не смог, отвечу я: в приведённом в статье коде по созданию загрузчика автором допущена ошибка в строке bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi — папка к образу виртуального привода указано неверно, должно быть bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi и тогда всё будет ОК.
Всё вышеописанное мной проверено лично и работает. Надеюсь, кому-нибудь мои замечания помогут, удачи!
P.S. Уважаемый копипастер, он же автор статьи, прошу Вас быть повнимательнее, поскольку из-за Ваших ошибок люди днями не могут настроить PXE и гуглят ошибки, тем более, что ответы по гугловским запросам совсем не те, какие хотелось бы видеть.