Меню Рубрики

Установка windows 7 по сети pxe tftp

Установка windows 7 по сети pxe tftp

Всем привет.
Суть такова. По этому мануалу http://www.3dnews.ru/workshop/626279
создал winpe.win
Казалось что все хорошо, все работает, пока не столкнулся с проблемой по поводу:

Также необходимо отредактировать простой текстовый файл [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 надо соответственно указать пароль и имя локального пользователя. Можно даже создать отдельную учётную запись под это дело.

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

Как быть, че делать? А может как то по другому до этого ресурса стучаться?
Мож на серваке поднять HTTP сервер и как то с помощью него можно будет автоматом цепляться?

Да, для справки: на этом ресурсе лежит 8 гигов установочного дистрибутива Windows 7. Столько гигов потому что в него встроены многие программки + есть выбор между версиями: от стартера до проф с разной битностью. А все это хозяйство работает на Starter с помощью Tftpd32 и Syslinux (чисто для вывода первоначального меню, в котором можно выбрать нужное действие: запуск тестовых утилит или установку этой вот винды).

Всем спасибо за незамедлительные советы..)))))))) Очень надо, а то начальство живьем съест, если до конца августа сервак не будет работать боле менее стабильно. ((((

Источник

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

Очень часто возникает необходимость устанавливать операционную систему Windows, в рамках одного компьютера можно воспользоваться диском, флешкой, я предлагаю способ устанавливать эту операционную систему через локальную сеть, в этом нам поможет сервер сетевой загрузки, рассмотренный в статьях тут и тут
Все нижеописанные скрипты я поместил в репозиторий git

План работ

1. Устанавливаем среду сборки образов предустановки WinPE
2. Выполняем сборку wim образа
3. Создаем конфигурацию загрузки на сервере загрузки

WinPE через PXE

Для того чтобы поставить Windows нам потребуется система предустановки Windows, которая называется WinPE.
Ее можно сделать скачав пакет ADK с сайта Microsoft
После установки можно приступать к сборке образа

Сборка образа WinPE

Я создал несколько скриптов позволяющих автоматически собирать образы, заточенные под установку ОС Windows.
В Windows7 мне пришлось отключать проверку цифровой подписи драйверов, так как команда dism вываливалась с ошибками, это делается при старте системы, клавишей F8 вызываем меню загрузки и выбираем «отключение обязательной цифровой подписи драйверов».

Автоматизация процесса создания образа WinPE

Скрипты описанные ниже представлены в порядке их запуска и имеют достаточно подробное описание, запускаются они как в автоматическом режиме с помощью setup.bat, так и по отдельности, необходимые переменные помещаю в config.bat

config.bat

В этом скрипте устанавливаем рабочую дерикторию и архитектуру создаваемого образа
arch могут быть «x86″,»amd64»

generate.bat

Создание рабочей дериктории winpe, в процессе работы в каталоге который мы указали появится подкаталог с названием архитектуры.

dp0 config.bat
copype %arch% %workdirectory%\%arch%

unpack.bat

Скрипт распаковки созданного wim образа, распаковывает в каталог mount

dp0 \config.bat
dism /Mount-Image /Imagefile:»%workdirectory%\%arch%\media\sources\boot.wim» /index:1 /MountDir:»%workdirectory%\%arch%\mount»

import_start.bat

Помещаем скрипт автозагрузки в системный каталог, в качестве скрипта автозагрузки выступает startnet.cmd, который можно отыскать в примонтированном образе /mount/windows/system32

dp0 config.bat
xcopy /Y %

dp0 startnet. cmd %workdirectory%\%arch% \mount\windows\system32\

driver.bat

Импортируем рекурсивно драйвера на сетевые карты, драйвера должны быть сложены возле каталога со скриптом, команда dism выбирает inf файлы и по ним ищет остальные модули драйвера.

dp0 config.bat
dism /image:%workdirectory%\%arch%\mount /add-driver /driver:»%workdirectory%\drivers» /recurse /forceunsigned

extractBootPXE.bat

Копируем из wim образа файлы для загрузки через PXE, в самом wim образе находятся необходимые модули для загрузки через PXE. Кроме того у меня не получилось загрузиться по сети с pxeboot.n12, но достаточно было ео переименовать заменив n12 на 0 как загрузка прошла без ошибок.

dp0 config.bat
mkdir %workdirectory%\%arch% \PXE
echo f | xcopy /Y %workdirectory%\%arch% \mount\windows\boot\pxe\pxeboot.n12 %workdirectory%\%arch% \PXE\pxeboot.0
xcopy /Y %workdirectory%\%arch% \mount\windows\boot\pxe\bootmgr.exe %workdirectory%\%arch% \PXE
mkdir %workdirectory%\%arch% \PXE\Boot
xcopy /Y %workdirectory%\%arch% \media\Boot\boot.sdi %workdirectory%\%arch% \PXE\Boot

pack.bat

Упаковываем в образ рабочую деррикторию, следует отметить что необходимо из нее выйти (она находится в каталоге mount), иначе образ не отмонтируется.

dp0 \config.bat
dism /Unmount-Image /MountDir:»%workdirectory%\%arch%\mount» /commit

export.bat

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

dp0 \config.bat
Dism /Export-Image /SourceImageFile:%workdirectory%\%arch%\media\sources\boot.wim /SourceIndex:1 /DestinationImageFile:%workdirectory%\%arch%\PXE\winpe%arch%.wim

Если необходимо откатить изменения которые мы делали после распаковки, то запускаем скрипт pack_dscard.bat

pack_dscard.bat

dp0 \config.bat
call %

dp0 var.bat
dism /Unmount-Image /MountDir:»%workdirectory%\%arch%\mount» /discard

setup.bat

Автоматизируем процесс создания wim образа, запустив все созданные скрипты по очереди.

dp0 \config.bat
call %

dp0 \generate.bat
call %

dp0 \unpack.bat
call %

dp0 \import_start.bat
call %

dp0 \driver.bat
call %

dp0 \extractBootPXE.bat
call %

Еще понадобится файл с описанием загрузки BCD, он не заработал у меня из среды средств развертывания, поэтому запускаю средствами cmd с повышенными правами

createBCD.bat

dp0 config.bat
bcdedit -createstore %workdirectory%\%arch% \PXE\Boot\BCD
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -create < ramdiskoptions >/d «Ramdisk options»
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set < ramdiskoptions >ramdisksdidevice boot
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set < ramdiskoptions >ramdisksdipath \Boot\boot.sdi
for /F «tokens=2» %%i in ( ‘bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -create /d «MyWinPE Boot Image» /application osloader’ ) do set guid= %%i
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set %guid% systemroot \Windows
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set %guid% detecthal Yes
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set %guid% winpe Yes
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set %guid% osdevice ramdisk= [ boot ] \winpe %arch% .wim, < ramdiskoptions >
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set %guid% device ramdisk= [ boot ] \winpe %arch% .wim, < ramdiskoptions >
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -create < bootmgr >/d «Windows PE BootManager»
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set < bootmgr >timeout 2
bcdedit -store %workdirectory%\%arch% \PXE\Boot\BCD -set < bootmgr >displayorder %guid%

В результате работы скриптов у получается следующая структура каталогов:

Настройка сервера загрузки

Копируем содержимое каталога PXE в корень tftp каталога сервера загрузки
Так как windows использует другой разделитель для своих путей, то нам необходимо сделать карту символов для tftp сервера, для этого в файле конфигурации /etc/default/tftp-hpa вносим изменения и указываем путь к файлу с картой:

Сервис tftpd-hpa

TFTP_USERNAME= «nobody»
TFTP_DIRECTORY= «/srv/template»
TFTP_ADDRESS= «0.0.0.0:69»
TFTP_OPTIONS= «—secure -v -c -m /srv/template/tftpd.remap»

Создаем файл tftpd.remap с таким содержимым:

Это правило будет заменять все обратные слешы на прямые, затем помещаем этот файл также в корень tftp сервера (чтобы нам легко было изменить в случае чего)
Перезапускаем tftp-hpa сервер

Настройка сервиса общих каталогов Samba

Для установки нам еще понадобится сервер samba,в debian и убунту он ставится командой

в конфигурационном файле /etc/samba/smb.conf добавляем секцию описывающую наш общий каталог:

Образ Window 7 и установовчный скрипт setup.bat

Теперь распаковываем образ с win7 и помещаем каталог sources в публичный каталог samba.
Создаем скрипт start.bat, в котором запускаем програму setup.exe из распакованного sources

Последнее что нам осталось — это прописать в меню загрузки пункт с winpe:

В итоге все получилось

Скрипты в GitHub
После этого у нас загрузившись через PXE начнется загрузка WinPE:


Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Источник

Установка Windows 7 через PXE boot c *nix сервера

Хочу поделиться с вами своим опытом по установке Windows 7 с сети (PXE boot на Ubuntu server).
Так как я не нашел удачного решения в интернете, решил поделится опытом.
Если интересно прошу под кат.

Эта статья является дополнением к ранее опубликованной статье на хабре.
На днях наткнулся на интересную статью, Где очень хорошо рассказывается об установке Windows 7 с сети, но с платформы на базе Windows. А так как у меня есть сервер на Ubuntu, захотелось прикрутить его туда, но все оказалось не так просто.

Создание PXE образа

Итак, начнем с создания PXE образа. Для этого нам потребуется Набор автоматической установки Windows® (AIK) для Windows®7.
Работает на платформе Windows 7 и Windows Server 2008 (R2).
После установки открываем в пуске: Командная строка средств развертывания с правами Администратора, и начинаем собирать образ.
copype.cmd x86 d:\winpe
imagex /mountrw winpe.wim 1 mount

Теперь, для автоматической установки, в примонтированной папке d:\winpe редактируем файл Windows\system32\startnet.cmd:
wpeinit
net use y: \\192.168.0.1\seven /user:seven seven
if exists y:\sources\setup.exe (
y:\sources\setup.exe
)

В строке монтирования, можно задать свои параметры, смотря как будете настраивать Samba, у меня к примеру она расшарена без авторизации с правами read only и параметр /user:seven seven не обязательно.
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
#B Копируем сам образ в папку Boot
copy /y d:\winpe\winpe.wim d:\tftp\Boot

Прошу обратить внимание на то что папка Boot с большой буквы(Важно).
Теперь создаем «Скрипт» d:\winpe\createbcd.cmd
bcdedit -createstore %1\BCD
bcdedit -store %1\BCD -create /d «Ramdisk options»
bcdedit -store %1\BCD -set ramdisksdidevice boot
bcdedit -store %1\BCD -set 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,
bcdedit -store %1\BCD -set %guid% device ramdisk=[boot]\Boot\winpe.wim,
bcdedit -store %1\BCD -create /d «Windows VISTA BootManager»
bcdedit -store %1\BCD -set timeout 30
bcdedit -store %1\BCD -set displayorder %guid%

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

Основная проблема это бэкслэши, Регистр и их Ремап, тут я не стал их переделывать, а просто создал ремап на сервере, можете сами поиграться, но об это позже.
Теперь у нас готов PXE набор для установки Windows 7 с сети.
Также вы можете скачать мой образ тут или тут

Настройка DHCP – Сервера:

Конфигурационный файл /etc/dhcp/dhcpd.conf

ddns-update-style none;
option domain-name «xxxxxxxx.xx»;
option domain-name-servers 8.8.8.8;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 <
range 192.168.0.5 192.168.0.100;
filename = «pxeboot.n12»;
>

С такой конфигурацией при ланбуте сразу пойдет установка windows. Если-же вы будете использовать эту статью как дополнение к этой статье, тогда в файле /etc/dhcp/dhcpd.conf ничего не меняем, только (Важно!) переименовываем файл pxeboot.n12 в pxeboot.0 (иначе не заработает) и добавляем в меню /var/lib/tftpboot/pxelinux.cfg/default
label Install Windows7
kernel /pxeboot.0

Установка и настройка TFTP Сервера:

sudo apt-get install tftpd-hpa
sudo nano /etc/default/tftpd-hpa

У меня конфиг такой:
TFTP_USERNAME=»tftp»
TFTP_DIRECTORY=»/var/lib/tftpboot»
TFTP_ADDRESS=»0.0.0.0:69″
TFTP_OPTIONS=»—secure -m /var/lib/tftpboot/tftp-remap -v»

Добавляем только параметры:
-m /var/lib/tftpboot/tftp-remap (файл ремапа) и параметр -v чтобы в /var/log/syslog можно было отслеживать запросы.
Копируем содержимое папки D:\tftp в /var/lib/tftpboot/seven/.
Теперь создаем файл ремапа:
touch /var/lib/tftpboot/tftp-remap
nano /var/lib/tftpboot/tftp-remap

У меня он выглядит так:
r bootmgr.exe /seven/bootmgr.exe
r abortpxe.com /seven/abortpxe.com
r hdlscom1.com /seven/hdlscom1.com
r hdlscom1.n12 /seven/hdlscom1.n12
r hdlscom2.com /seven/hdlscom2.com
r hdlscom2.n12 /seven/hdlscom2.n12
r pxeboot.com /seven/pxeboot.com
r pxeboot.n12 /seven/pxeboot.n12
r WdsConfig.inf /seven/WdsConfig.inf
r wdsnbp.com /seven/wdsnbp.com
r \\Boot\\BCD seven/Boot/BCD
r \\boot\\boot.sdi seven/Boot/boot.sdi
r \\Boot\\winpe.wim seven/Boot/winpe.wim

Настройка 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

Спасибо за внимание!

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Установка windows 7 отменена
  • Установка windows 7 не заходя в биос
  • Установка windows 7 на флешку pwboot
  • Установка windows 7 на слабый компьютер
  • Установка windows 7 на серверное железо