Pxe windows 7 embedded

Дано: некий офис с компьютерами типа PC, сервер с Linux.
Задача: Сделать сервис установки системы по сети без использования платных Windows Server и др.
Решение:

Решение базируется на статье «PXE Win Install: установка Windows 7 по сети» Автор: Игорь Осколков от 22.03.2012.
Привожу рабочее решение, с исправленными ошибками в упомянутой статье и для Linux серверов с сервисами DHCP, TFTP и Samba.

План работ

1. Настройка служб DHCP, TFTP и Samba на Linux сервере.
2. В первую очередь необходимо создать образ WINPE, интегрирования в него сетевых драйверов и настройку скрипта сетевой загрузки.
3. Создание и настройка загрузчика BCD.
4. Размещение файлов на сервере и проверка сетевой загрузки.

Что понадобиться:

1. Компьютер с установленной Windows 7.
2. Windows Automated Installation Kit (WAIK).
3. Linux сервер, можно два :)

Приступим.

1. DHCP

У меня DHCP установлен на маршрутизаторе 192.168.1.1, с Debian GNU/Linux.
Все что необходимо нам от DHCP сервера — это указать адрес сервера загрузки и имя файла для загрузки по сети.

Я поместил эти параметры в блок описания подсети:

subnet 192.168.1.0 netmask 255.255.255.0
{
option netbios-name-servers 192.168.1.1;

option routers 192.168.1.1;
next-server 192.168.1.200;
filename «pxelinux.0»;

}

2. TFTP сервер

Находится вместе с Samba сервером на отдельном комьютере, с адресом 192.168.1.200. Здесь установлен дистрибутив Gentoo.

Как установить tftpd в gentoo — читать здесь.

Настройки TFTP:
Файл /etc/conf.d/in.tftpd


INTFTPD_PATH=»/opt/pxe/»
INTFTPD_OPTS=»-R 4096:32767 -s ${INTFTPD_PATH} -m /etc/tftpd.rules -v»

Первый параметр — корень папки TFTP сервера.
Второй — параметры запуска.

Файл /etc/tftpd.rules


rg \\ /

Для автозамены слешей в стиле windows на linux-like.

В папку /opt/pxe/ копируем файлы из пакета syslinux:

cp /usr/share/syslinux/pxelinux.0 /opt/pxe/
cp /usr/share/syslinux/pxechain.com /opt/pxe/
cp /usr/share/syslinux/memdisk /opt/pxe/

Создаем папку pxelinux.cfg

mkdir -p /opt/pxe/pxelinux.cfg

Копируем туда файлы из пакета syslinux:

cp /usr/share/syslinux/menu.c32 /opt/pxe/pxelinux.cfg/
cp /usr/share/syslinux/poweroff.com /opt/pxe/pxelinux.cfg/
cp /usr/share/syslinux/reboot.c32 /opt/pxe/pxelinux.cfg/

Создаем файл default

nano /opt/pxe/pxelinux.cfg/default


такого содержания:



DEFAULT pxelinux.cfg/menu.c32
TIMEOUT 600
MENU TITLE PXE BOOT MENU
ALLOWOPTIONS 0
PROMPT 0


LABEL 001
MENU LABEL Local ^Boot
MENU DEFAULT
LOCALBOOT 0
TIMEOUT 80
TOTALTIMEOUT 9000


LABEL 002
MENU LABEL ^Install Windows 7 x64
KERNEL pxechain.com
APPEND ../Boot/pxeboot.com


LABEL 003
MENU LABEL ^Memtest86+
KERNEL images/memtest


LABEL Reboot
MANU LABEL ^Reboot
KERNEL pxelinux.cfg/reboot.c32

3. Samba

Приведу секцию, которая отвечает за созданную шару с дистрибутивом windows7:

[Win7Install$]
comment = Windows7x64 install folder
path = /opt/sambashare/win7x64
read only = No
create mask = 0666
directory mask = 0777
guest only = Yes
guest ok = Yes

Проверить можно с любой windows в командной строке:

net use z: \\192.168.1.200\Win7Install$

Если ресурс под паролем, то

net use z: \\192.168.1.200\Win7Install$ password /user:username

В эту папку копируем содержимое папки sources из дистрибутива Windows 7.

4. WinPE

Частично действия похожи на те, что делались в статье «Собираем свой дистрибутив Windows 7 с программами».

Установим WAIK, который мы скачали по ссылке выше.

Запускаем «Командная строка средств развертывания» (если у вас английская версия — Deployment Tools Command Prompt). Запускаем от имени Администратора.

В консоли выполняем команду:

copype.cmd amd64 C:\WinPE

Эта команда копирует в каталог C:\WinPE файлы, необходимые для создания образа с предустановочным окружением 64-разрядной Windows 7. Для 32-битной версии надо указать параметр x86 вместо amd64.

copype.cmd x86 C:\WinPE

Далее буду приводить две команды, с обеими архитектурами, для удобства copy-paste.

Сразу же создайте папку C:\TFTP\, в которой будут файлы для TFTP-сервера, а в ней сделайте директорию Boot. В последней будут храниться загрузочные файлы.

Копируем файлы из стандартного winpe образа в папку C:\TFTP\Boot

imagex /mountrw winpe.wim 1 mount

Эта комнада монтирует winpe.wim в папку C:\WinPE\ mount (осле первой команды мы автоматически попадаем в папку C:\WinPE)

copy mount\Windows\Boot\PXE\*.* C:\TFTP\Boot

Я еще скопировал папку ru-RU и папку fonts. Если их в образе не окажется — их можно взять с любого установочного диска Windows7.

Копируем еще один нужный файл

copy «C:\Program Files\Windows AIK\Tools\PETools\amd64\boot\boot.sdi» C:\TFTP\Boot
copy «C:\Program Files\Windows AIK\Tools\PETools\x86\boot\boot.sdi» C:\TFTP\Boot

Интегрируем драйвера. Для этого, скачиваем пакет дрйверов для сетевых карт, отсюда. Распаковываем, я для удобства перенес папку L из распакованного дерева в корень диска С.

dism /image:c:\winpe\mount /add-driver /driver:c:\L /recurse /forceunsigned

Где:
/image:c:\winpe\mount примонтированый образ

/add-driver — добавить драйвера.
/driver:c:\L — папка с драйверами.
/recurse — позволяет брать драйвера еще и из подпапок.
/forceunsigned — если есть неподписанные драйверы.

После этого, пока образ еще примонтирован, необходимо подправить файл startnet.cmd. Но для этого уже необходимо знать IP адрес Samba сервера и путь к ресурсу, который будет отдавать дистрибудтив Windows 7.
Выполняем команду:

notepad C:\WinPE\mount\windows\system32\startnet.cmd

Приводим содержимое к такому виду:

wpeinit
net use z: \\192.168.1.200\Win7Install$
z:\setup.exe

Если ресурс под паролем, то строка имеет другой вид:

net use z: \\192.168.1.200\Win7Install$ password /user:username

Закрываем блокнот, с сохранением изменений, проверяем, чтобы в проводнике не было открыто содержимое папки mount и выполняем команду для отмонтирования:

imagex /unmount c:\winpe\mount /commit

И копируем файл образа в C:\TFTP\Boot\

copy c:\winpe\winpe.wim C:\TFTP\Boot\boot.wim

5. Загрузчик BCD

Здесь в оригинальной статье скрылись несколько ошибок, из-за которых не загружался загрузчик и в Linux вылезли мелкие ошибки, такие как соответствие регистра.
Ниже представлен вариант, который работает, следите за регистром в пути к файлам, так как в Windows все будет работать и так, а в Linux приведет к ошибке.

Создаем загрузчик:

bcdedit -createstore c:\BCD
bcdedit -store c:\BCD -create {ramdiskoptions} /d «Ramdisk options» 
bcdedit -store c:\BCD -set {ramdiskoptions} ramdisksdidevice  boot
bcdedit -store c:\BCD -set {ramdiskoptions} ramdisksdipath  \Boot\boot.sdi
bcdedit -store c:\BCD -create /d «PE Boot Image» /application osloader

После этого в консоли появиться сообщение содержащее GUID в виде

{ef40ab64-7ce9-11e2-8487-a0b3ccc2b14c} (пример). Копируем его в следующие команды:

bcdedit -store c:\BCD -set GUID systemroot \Windows 
bcdedit -store c:\BCD -set GUID detecthal Yes 
bcdedit -store c:\BCD -set GUID winpe Yes 
bcdedit -store c:\BCD -set GUID osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} 
bcdedit -store c:\BCD -set GUID device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}




bcdedit -store c:\BCD -create {bootmgr} /d «Windows BootManager» 
bcdedit -store c:\BCD -set {bootmgr} timeout 30 
bcdedit -store c:\BCD -displayorder {ef40ab64-7ce9-11e2-8487-a0b3ccc2b14c}

Копируем (или переносим, чтобы не мешал) созданный BCD в папку C:\TFTP\Boot\

copy c:\BCD C:\TFTP\Boot\
move c:\BCD C:\TFTP\Boot\

Файл pxeboot.com заменяем файлом pxeboot.n12, меняя ему расширение.

Получилась такая картина в этой папке:

Папки:

fonts
ru-RU

Файлы:

BCD
abortpxe.com
boot.wim
hdlscom1.n12
hdlscom2.n12
wdsnbp.com
WdsConfig.inf
boot.sdi
bootmgr.exe
hdlscom1.com
hdlscom2.com
pxeboot.com
wdsmgfw.efi

Полученную папку C:\TFTP копируем на Linux сервер, любым удобным для вас способом. Копируем в папку /opt/pxe/ . Так же файл bootmgr.exe копируем из папки Boot в корень папки /opt/pxe/
Получается так:

ls -la /opt/pxe/
total 574
drwxrwxrwx  5 root root    248 Feb 22 18:59 .
drwxr-xr-x 17 root root    808 Feb 18 15:16 ..
drwxrwxrwx  4 root root    520 Feb 25 18:10 Boot
drwxrwxrwx  2 root root     72 Feb 18 14:53 images
drwxrwxrwx  2 root root    160 Feb 22 18:07 pxelinux.cfg
-rwxrwxrwx  1 root root 523328 Jul 14  2009 bootmgr.exe
-rwxrwxrwx  1 root root  26140 Feb 18 14:45 memdisk
-rwxrwxrwx  1 root root    998 Feb 22 18:20 pxechain.com
-rwxrwxrwx  1 root root  26579 Feb 18 14:45 pxelinux.0

ls -la /opt/pxe/Boot/ —group-directories-first
total 282836
drwxrwxrwx 4 root root       520 Feb 25 18:10 .
drwxrwxrwx 5 root root       248 Feb 22 18:59 ..
drwxrwxrwx 2 root root       208 Jan 27  2011 fonts
drwxrwxrwx 2 root root       112 Feb 22 17:36 ru-RU
-rwxrwxrwx 1 root root     12288 Feb 22 16:27 BCD
-rwxrwxrwx 1 root root      1347 Jun 11  2009 WdsConfig.inf
-rwxrwxrwx 1 root root        79 Jun 11  2009 abortpxe.com
-rwxrwxrwx 1 root root   3170304 Jun 10  2009 boot.sdi
-rwxrwxrwx 1 root root 138584642 Feb 22 17:58 boot.wim
-rwxrwxrwx 1 root root    523328 Jul 14  2009 bootmgr.exe
-rwxrwxrwx 1 root root     26076 Jun 11  2009 hdlscom1.com
-rwxrwxrwx 1 root root     26060 Jun 11  2009 hdlscom1.n12
-rwxrwxrwx 1 root root     26076 Jun 11  2009 hdlscom2.com
-rwxrwxrwx 1 root root     26060 Jun 11  2009 hdlscom2.n12
-rwxrwxrwx 1 root root     25772 Jun 11  2009 pxeboot.com
-rwxrwxrwx 1 root root    527360 Jul 14  2009 wdsmgfw.efi
-rwxrwxrwx 1 root root     31124 Feb 22 18:15 wdsnbp.com

6. Проверка работы

Проверяем работу сервиса. С любого другого компьютера, загружаемся в BIOS, разрешаем возможность загрузки по сети. Загруженное меню:

Выбираем пункт Install, загружается образ winpe:

Лог загрузки:


Feb 25 14:24:49 dev1 in.tftpd[31185]: RRQ from 192.168.1.152 filename pxelinux.cfg/01-00-1c-42-cb-f8-83 
Feb 25 14:24:49 dev1 in.tftpd[31186]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0A80198 
Feb 25 14:24:49 dev1 in.tftpd[31187]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0A8019 
Feb 25 14:24:49 dev1 in.tftpd[31188]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0A801 
Feb 25 14:24:49 dev1 in.tftpd[31189]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0A80 
Feb 25 14:24:49 dev1 in.tftpd[31190]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0A8 
Feb 25 14:24:49 dev1 in.tftpd[31191]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0A 
Feb 25 14:24:49 dev1 in.tftpd[31192]: RRQ from 192.168.1.152 filename pxelinux.cfg/C0 
Feb 25 14:24:49 dev1 in.tftpd[31193]: RRQ from 192.168.1.152 filename pxelinux.cfg/C 
Feb 25 14:24:49 dev1 in.tftpd[31194]: RRQ from 192.168.1.152 filename pxelinux.cfg/default 
Feb 25 14:24:49 dev1 in.tftpd[31195]: RRQ from 192.168.1.152 filename pxelinux.cfg/menu.c32 
Feb 25 14:24:49 dev1 in.tftpd[31196]: RRQ from 192.168.1.152 filename pxelinux.cfg/default 
Feb 25 14:25:11 dev1 in.tftpd[31203]: RRQ from 192.168.1.152 filename pxechain.com 
Feb 25 14:25:11 dev1 in.tftpd[31204]: RRQ from 192.168.1.152 filename pxelinux.cfg/../Boot/pxeboot.com 
Feb 25 14:25:11 dev1 in.tftpd[31205]: RRQ from 192.168.1.152 filename bootmgr.exe 
Feb 25 14:25:12 dev1 in.tftpd[31207]: RRQ from 192.168.1.152 filename \Boot\Fonts\wgl4_boot.ttf remapped to /Boot/Fonts/wgl4_boot.ttf 
Feb 25 14:25:12 dev1 in.tftpd[31208]: RRQ from 192.168.1.152 filename \boot.ini remapped to /boot.ini 
Feb 25 14:25:27 dev1 in.tftpd[31218]: RRQ from 192.168.1.152 filename \Boot\BCD remapped to /Boot/BCD 
Feb 25 14:25:27 dev1 in.tftpd[31218]: tftp: client does not accept options 
Feb 25 14:25:27 dev1 in.tftpd[31219]: RRQ from 192.168.1.152 filename \Boot\BCD remapped to /Boot/BCD 
Feb 25 14:25:27 dev1 in.tftpd[31220]: RRQ from 192.168.1.152 filename \Boot\Fonts\wgl4_boot.ttf remapped to /Boot/Fonts/wgl4_boot.ttf 
Feb 25 14:25:27 dev1 in.tftpd[31221]: RRQ from 192.168.1.152 filename \hiberfil.sys remapped to /hiberfil.sys 
Feb 25 14:25:27 dev1 in.tftpd[31222]: RRQ from 192.168.1.152 filename \Boot\boot.wim remapped to /Boot/boot.wim 
Feb 25 14:25:27 dev1 in.tftpd[31222]: tftp: client does not accept options 
Feb 25 14:25:27 dev1 in.tftpd[31223]: RRQ from 192.168.1.152 filename \boot\boot.sdi remapped to /Boot/boot.sdi 
Feb 25 14:25:27 dev1 in.tftpd[31223]: tftp: client does not accept options 
Feb 25 14:25:27 dev1 in.tftpd[31224]: RRQ from 192.168.1.152 filename \boot\boot.sdi remapped to /Boot/boot.sdi 
Feb 25 14:25:30 dev1 in.tftpd[31226]: RRQ from 192.168.1.152 filename \Boot\boot.wim remapped to /Boot/boot.wim 

На этом все. Про создание своего дистрибутива Windows, с установленными программами, автоматизацией установки и прочее читать здесь — «Собираем свой дистрибутив Windows 7 с программами».

Skip to content

  • About
  • Embedded / IoT
    • Embedded / IoT Operating Systems
      • IoT / Embedded
        • Windows 11 IoT Enterprise 2024 LTSC
        • Windows IoT on ARM
        • Windows 10 IoT Enterprise 2021 LTSC
        • Windows Embedded 8.1 Industry Pro
        • Windows Embedded 8 Industry Pro
        • Windows Embedded 8 Standard
        • Windows Embedded Standard 7
        • POSReady 7
        • POS Ready 2009
        • Windows Embedded Standard 2009
        • XP Embedded
      • Compact
        • Windows 10 IoT Core Pro
        • Compact7
        • CE6
      • For Embedded Systems
        • Windows Embedded 8 Pro
        • Windows 7 For Embedded Systems
        • XP Professional
      • Embedded / IoT Server
        • Windows Server 2022
        • SQL Server 2022
        • Windows Server 2012
        • SQL Server 2012
        • Storage Server 2012
      • Azure Sphere
    • Basics & Availablility
    • CLA
    • Licensing
    • Product Key Request
    • Value Based Pricing
  • Services
    • Technical Partner zereOS
    • Technical Support
    • License Consulting
    • Technical Trainings
    • Image Development
    • ESU Specialists
  • News
    • Events
    • References
  • Tools
    • Embedded Toolkit
    • Embedded Configuration Manager
    • Footprint Technology (zOFT)
    • Device Manager (zDM)
    • Smart Activation (zSA)
    • Onscreen Keyboard (zOSK)
  • Contact
  • English
    • Deutsch
    • Français
    • Italiano
    • Español
    • Nederlands
    • Magyar
    • Čeština
    • Polski
    • Svenska

Booting Windows Embedded Standard 7 Image Build Wizard via PXE

Alexander Gangl2016-01-28T17:42:55+01:00

Choose your platform to share this!

Booting Windows Embedded Standard 7 Image Build Wizard via PXE

Alexander Gangl2015-12-07T15:33:25+01:00

Choose your platform to share this!

Page load link

Go to Top

Сама статья взята с хабра https://habrahabr.ru/sandbox/30865/ и полностью рабочая, но была проблема с драйверами для сетевой карты.

Для начала установим необходимую ос на виртуалку или любой ПК.
Создадим PXE образ. Для этого нам потребуется Набор автоматической установки Windows® (AIK) для Windows®7.
Работает на платформе Windows 7 и Windows Server 2008 (R2).
После установки открываем в пуске с правами администратора: Все программы -> Microsoft Windows AIK -> Командная строка средств развертывания с правами Администратора, и начинаем собирать образ.

copype.cmd x86 d:\winpe
именно x86 несмотря на то, что планируем ставить х86 и существует меню amd64.

imagex /mountrw winpe.wim 1 mount
Теперь, для автоматической установки, в примонтированной папке d:\winpe редактируем файл Windows\system32\startnet.cmd:

wpeinit
net use y: \\192.168.2.86\iso-seven
if exist y:\sources\setup.exe (
y:
cd \sources
setup.exe
)

Самба сервер доступен для скачивания в гостевом режиме поэтому никаких параметров пользователя мы не задавали, при необходимости заменить на net use y: \\192.168.х.х\директория-образа /user:пользователь пароль

imagex.exe /unmount /commit mount

Теперь извлечем ядро и необходимые файлы для загрузки образа:

imagex /mount d:\winpe\winpe.wim 1 d:\winpe\mount
xcopy /ey d:\winpe\mount\windows\boot\pxe d:\tftp
xcopy /iy d:\winpe\mount\windows\boot\fonts d:\tftp\Boot\fonts
copy /y d:\winpe\ISO\boot\boot.sdi d:\tftp\Boot
imagex.exe /unmount d:\winpe\mount

Копируем сам образ в папку Boot
copy /y d:\winpe\winpe.wim d:\tftp\Boot

Прошу обратить внимание на то что папка Boot с большой буквы(Важно).
Теперь создаем «Скрипт» d:\winpe\createbcd.cmd
bcdedit -createstore %1\BCD
bcdedit -store %1\BCD -create {ramdiskoptions} /d “Ramdisk options”
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdidevice boot
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
for /F “tokens=2” %%i in (‘bcdedit -store %1\BCD -create /d “MyWinPE Boot Image” /application osloader’) do set guid=%%i
bcdedit -store %1\BCD -set %guid% systemroot \Windows
bcdedit -store %1\BCD -set %guid% detecthal Yes
bcdedit -store %1\BCD -set %guid% winpe Yes
bcdedit -store %1\BCD -set %guid% osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit -store %1\BCD -set %guid% device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit -store %1\BCD -create {bootmgr} /d “Windows VISTA BootManager”
bcdedit -store %1\BCD -set {bootmgr} timeout 30
bcdedit -store %1\BCD -set {bootmgr} displayorder %guid%

И запускаем его:
createbcd.cmd d:\tftp\boot

Образ готов, устанавливается через самбу с PXE сервера.
Настройка samba

Есть 2 варианта:
1)Скопировать папку sources с установочного диска в /var/seven (Необязательно в /var)
2)Примонтировать образ
mkdir /var/seven
sudo mount –o loop win7.iso /var/seven/
И зашариваем саму папку /var/seven в файле /etc/samba/smb.conf

[seven]
path = /srv/tftp/seven
browseable = yes
read only = yes
guest ok = yes
Перезагружаем службы:
sudo /etc/init.d/dhcp3-server restart
sudo /etc/init.d/tftpd-hpa restart
sudo /etc/init.d/smbd restart
Готово, можем устанавливать Windows 7 с сети.
Если возникнут какието проблемы, можно их увидеть в:
sudo tail –f /var/log/syslog

___________________
При установке на виртуалку все было прекрасно, но при попытке настроить ноутбук выдало “ошибка 1231 сетевая папка недоступна” при попытке смонтировать нашу сетевую папку.
Как оказалось ноутбук не видел сеть.

Для решения проблемы необходимо скачать драйвера на сетевую плату для нужного нам ноутбука и прошить их в наш образ .vim в той же консоле.

mkdir c:\mount
dism /Cleanup-Wim
dism /Mount-Wim /WimFile:G:\winpe\winpe.wim /index:1 /MountDir:C:\mount
dism /image:C:\mount /add-driver /driver:”G:\drivers\win8\x64″ /recurse /forceunsigned
dism /Unmount-Wim /MountDir:C:\mount /Commit

После чего сетевая загрузка Windows 7 доступна.

IMG_20170216_124710

Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

Ранее мы уже познакомились с процессом массированного разворачивания по сети готового образа жёсткого диска с предустановленной Windows 7 сразу на множество машин. Использовали мы для этого связку из DRBL и Clonezilla. Ключевой недостаток данного подхода заключается в отсутствии гибкости, связанном с вынужденным ограничением на использование однотипной конфигурации клиентских ПК. Развивая тему сетевой загрузки, мы рассмотрели создание универсального PXE-реаниматора. В этом случае ПК при старте подгружает с сервера в оперативную память live-образ той или иной ОС и работает с ним.

Аналогичным образом мы можем загрузить по сети среду предустановки Windows (PE), подмонтировать расшаренную папку с установочными файлами и запустить оттуда инсталлятор. Похожим образом работают и фирменные сервисы Microsoft RIS или WDS, однако они требуют наличия Windows Server. В случае не очень большого числа клиентских машин можно обойтись бесплатными решениями. Пример «классической» реализации такой схемы мы и рассмотрим. На одном из компьютеров с Windows Vista/7 будет поднят DHCP/TFTP/SMB-сервер.

О требованиях к железу уже говорилось в предыдущих материалах. Тем не менее ещё раз кратко пробежимся по ним. Во-первых, в BIOS всех компьютеров должна быть включена сетевая загрузка. Во-вторых, все машины необходимо на время объединить в изолированную локальную сеть, желательно гигабитную. Естественно, их конфигурация должна удовлетворять требованиям 32-битной Windows 7, так как установку именно этой ОС мы и будем рассматривать. Но в общих чертах описываемый метод подойдёт и для Windows Vista. Про «восьмёрку», пожалуй, говорить ещё рано.

Нам опять понадобится Windows Automated Installation Kit (WAIK). Скачиваем ISO-образ, распаковываем или монтируем его и устанавливаем этот набор утилит. В главном меню выбираем Microsoft Windows AIK → Deployment Tools Command Prompt. Перед нами откроется консоль, в которой надо ввести следующую команду:

copype.cmd x86 C:\WinPE
 

Эта команда копирует в каталог C:\WinPE файлы, необходимые для создания образа с предустановочным окружением 32-разрядной Windows 7. Для 64-битной версии надо указать параметр amd64 вместо x86. Сразу же создайте ещё одну папку C:\TFTP\, которая будет корневой для TFTP-сервера, а в ней сделайте директорию Boot. В последней будут храниться загрузочные файлы. Чтобы получить оные, нужно смонтировать базовый wim-образ Windows PE и скопировать их оттуда.

imagex /mountrw winpe.wim 1 mount
copy mount\Windows\Boot\PXE\*.* C:\TFTP\Boot
 

Команда imagex всего лишь распаковывает файлы из wim-образа в подпапку mount. Их можно отредактировать или, к примеру, добавить свои, а потом снова упаковать в единый архив. Этим займёмся чуть позже, а пока закроем и снова откроем Deployment Tools Command Prompt, скопируем ещё один важный файл и отмонтируем образ.

copy x86\boot\boot.sdi C:\TFTP\Boot
cd /d C:\WinPE 
imagex /unmount mount
 

Скопируем файл winpe.wim в каталог C:\TFTP\Boot под именем boot.wim и приступим к созданию загрузочного меню Windows (BCD).

copy winpe.wim C:\TFTP\Boot\boot.wim
cd /d C:\TFTP\Boot 
bcdedit -createstore BCD
 

В простейшем случае нам достаточно указать параметры для RAM-диска.

bcdedit -store BCD -create {ramdiskoptions} /d "Ramdisk options" 
bcdedit -store BCD -set {ramdiskoptions} ramdisksdidevice boot 
bcdedit -store BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
bcdedit -store BCD -create /d "PE Boot Image" /application osloader
 

Обратите внимание на вывод последней выполненной команды. В нём содержится GUID, который надо скопировать и подставить вместо {guid} в командах ниже.

bcdedit -store BCD -set {guid} systemroot \Windows 
bcdedit -store BCD -set {guid} detecthal Yes 
bcdedit -store BCD -set {guid} winpe Yes 
bcdedit -store BCD -set {guid} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} 
bcdedit -store BCD -set {guid} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}

Для начала стоит попробовать загрузиться с «чистого» образа Windows PE. Однако кое-какие правки в него надо будет внести. Во-первых, могут понадобиться драйвера для сетевой карты или контроллера жёсткого диска. Во-вторых, неплохо было бы сделать автоматическое подключение к сетевой папке и запуск установщика. Снова открываем консоль WAIK и монтируем загрузочный образ.

cd /d C:\WinPE 
imagex /mountrw winpe.wim 1 mount

Для добавления драйверов (в виде *.inf и сопутствующих файлов, конечно же) используется следующая команда:

dism /image:mount /add-driver /driver:Путь до папки или inf-файла

Также необходимо отредактировать простой текстовый файл [C:\WinPE\]mount\windows\system32\startnet.cmd. Этот скрипт выполнится при старте PE-окружения и будет монтировать сетевую папку в качестве логического диска, с которого запустится установщик Windows 7.

wpeinit
net use z: \\192.168.0.51\Win7Install password /user:username
z:\setup.exe 

192.168.0.51 — это IP-адрес сервера, с которого производится установка. На нём надо скопировать все файлы с инсталляционного образа Windows 7 в какую-либо папку (в нашем примере это Win7Install) и открыть к ней доступ по сети. Вместо password и username надо соответственно указать пароль и имя локального пользователя. Можно даже создать отдельную учётную запись под это дело. В конце не забудьте закрыть wim-файл с применением изменений и скопировать его в директорию TFTP-сервера. Консоль можно закрыть.

imagex /unmounts /commit mount
copy winpe.wim C:\TFTP\Boot\boot.wim
 

Ранее мы уже касались темы файла ответов для автоматизации процесса установки и первичной настройки Windows 7. В данном случае мы также имеем полное право использовать его возможности. Для подготовки файла лучше воспользоваться утилитой Windows System Image Manager из комплекта WAIK. После запуска в меню выбираем File → New answer file, затем нам предложат выбрать установочный образ системы. Он находится в каталоге sources, откуда будет производиться установка ОС (в нашем примере Win7Install/sources) — выбирайте файл с расширением clg и вашей редакцией ОС в качестве имени (например, install_Windows 7 PROFESSIONAL.clg).

В панели Windows Image имеется дерево компонентов, которые можно настраивать. Для этого надо кликнуть по любому из них правой кнопкой мыши и во всплывающем меню выбрать пункт Add Setting to Pass * — он тут же появится в панели Answer File, где можно будет отредактировать различные параметры. Например, добавить учётные записи, разбить диски, установить обновления и так далее. Мы не будем подробно останавливаться на наполнении файла ответов — всю необходимую информацию можно почерпнуть в Сети или из встроенной справки. Готовый файл надо сохранить всё в той же установочной директории sources под именем autounattend.xml.

Осталось совсем немного. Необходимо настроить DHCP и TFTP. В принципе, вы можете использовать практически любые программные реализации этих серверов. Мы же для примера воспользуемся универсальной утилитой Serva32/64. После запуска программы надо кликнуть по кнопке Settings, перейти на вкладку DHCP и отметить галочкой пункт DHCP server. Чуть ниже кликаем по Bind DHCP to this address и в выпадающем списке выбираем IP-адрес сетевого интерфейса, на котором будет работать сервер. Естественно, адрес должен быть статичным и заранее заданным.

В поле IP Pool 1st addr указываем начальный IP-адрес диапазона выдаваемых адресов, а в Pool size — число DHCP-клиентов. Не забудьте также прописать маску подсети (Subnet mask). Наконец, в Boot File указываем относительный путь до файла PXE-загрузчика. В нашем случае это может быть pxeboot.com или pxeboot.n12. В первом случае для старта сетевой загрузки будет предложено нажать клавишу F12, иначе будет продолжен запуск с локальных носителей. Если F12 отсутствует, то надо указать второй загрузчик (возможно, придётся переименовать его в pxeboot.com).

На вкладке TFTP аналогичным образом включаются галочки TFTP Server и Bind TFTP to this address, указывается корневая папка сервера (у нас это C:\TFTP) и обязательно отмечается опция Option negotiation, а PXE Compatibility выключается. Всё, теперь нажимаем OK, сохранив тем самым настройки, и перезапускаем утилиту. Проверьте, чтобы брандмауэр не блокировал используемые порты (UDP 67-69). Можно попробовать загрузиться по сети на одной из клиентских машин. Для выявления проблем используйте логи, которые генерирует Serva. Если всё в порядке, автоматически запустится инсталлятор Windows 7, дальнейшая работа с которым ничем не отличается от той, что идёт при загрузке с установочного USB/DVD/HDD.

Вот, собственно, и всё. Мы разобрали довольно простой пример сетевой установки Windows 7. Как его можно улучшить? Ну, во-первых, можно добавить дополнительные опции в загрузчик Windows, чтобы он по умолчанию загружался с локальных носителей, а не по сети. Во-вторых, загрузчик syslinux, о котором говорилось в прошлый раз, можно спокойно использовать с утилитой Serva32/64. Формат файла конфигурации (pxelinux.cfg/default) тот же самый. В-третьих, не помешает глубже изучить возможности файла ответов и автоматической инсталляции Windows. В общем, есть куда копать. Но это мы оставим для самостоятельного изучения и на прощание традиционно пожелаем удачи в сетевых экспериментах.

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Материал из Xgu.ru

Перейти к: навигация, поиск

Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Короткий URL: pxe/win7

Автор: Сергей Черепенин

На этой странице будет описано, как организовать бездисковую загрузку операционной системы Windows 7 при помощи
PXE и iSCSI.

Более подробное описание настройки некоторого ПО (gpxe, dhcpd, iscsitarget) см.pxe/win2008

[править] Установка OC на iSCSI target

Device Manager

Загрузка виртуального компьютера выполняется с образа дискеты gpxe.dsk.

iSCSI Initiator Properties

Полученный при этом по DHCP target остается доступным и во время работы инсталлятора windows7, запущенного следом за неудачной попыткой загрузиться с помощью gPXE.

clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/xen/win7 
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1024
shadow_memory = 8
name = "win7"
acpi=1
vif = [ 'type=ioemu, mac=00:16:3e:36:7d:60, bridge=br0']
fda='/usr/src/gpxe-0.9.9/src/bin/gpxe.dsk'
disk = ['file:/iso/en_windows_7_ultimate_x86_dvd_x15-65921.iso,hdc:cdrom,r' ]
device_model = "/usr/lib/xen/bin/qemu-dm"
boot="adc"
sdl=0
vnc=1
vncdisplay=27
localtime=1
usbdevice='mouse'
usbdevice='tablet'
monitor=1
clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/ietd.conf 
Target iqn.2009-12.clinika.local:dev.vm.win2008
        Lun 0 Path=/dev/vm/win7,Type=blockio

[править] Запуск в домене U

После инсталляции на iSCSI SAN, можно попробовать запустить эту ОС с использованием стандартных средств xen:

Initializing new devices

clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/xen/win7 
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1024
shadow_memory = 8
name = "win7"
acpi=1
vif = [ 'type=ioemu, mac=00:16:3e:36:7d:60, bridge=br0']
disk = ['phy:/dev/vm/win7,hda,w'] 
device_model = "/usr/lib/xen/bin/qemu-dm"
boot="c"
sdl=0
vnc=1
vncdisplay=27
localtime=1
usbdevice='mouse'
usbdevice='tablet'
monitor=1

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Драйвера для windows 7 для samsung rv515 windows 7
  • Настройка времени windows 2000 server
  • Windows не удалось автоматически обнаружить параметры прокси этой сети windows 10 как исправить
  • Apple в сети windows
  • Ноутбук не видит ни одну сеть wifi windows 10