Pxe boot windows and linux

Установка Windows по сети с Ubuntu PXE сервера

Итак, я плавно со своим PXE сервером развернутым на Ubuntu 18.04 Server подошел к этапу, когда нужно в дополнении к автоматизированным установкам Ubuntu 18.04 Desktop & Server дополнить функционал. Уже сделал, что можно загрузившись через LiveCD инструмент сбросить Windows пароль, проверить жесткий диск на предмет заражения вирусами т. д. А вот моя мечта это возможность устанавливать Windows 7,10 и серверную линейку из среды Ubuntu. Использовать WDS, пожалуй нет. Я специализируюсь на Ubuntu системах, а значит и пишу и делаю исходя из своего предпочтения. В этой заметке я для себя разобрал, как сделать Windows загрузку из под Ubuntu 18.04 PXE.

Подготавливаю систему Ubuntu 18.04 Server amd64 под первоначальное использование:

ekzorchik@srv-bionic:~$ hg clone —insecure https://172.33.33.7/hg/dproject

ekzorchik@srv-bionic:~$ sudo ./dproject/default

Устанавливаю пакет Samba на нем, точнее с его помощью у меня будет файловый ресурс где будет храниться образа Windows 7, как x86/amd64:

ekzorchik@srv-bionic:~$ sudo apt-get install samba samba-common -y

ekzorchik@srv-bionic:~$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.backup

ekzorchik@srv-bionic:~$ sudo nano /etc/samba/smb.conf

server string = Samba Server Version %v

log file = /var/log/samba/log.%m

idmap config * : backend = tdb

## For multiple installations the same time — not lock kernel

acl allow execute always = true

На заметку: Параметр « acl allow execute always = true » в smb.conf необходим для возможности запускать на исполнение файлы exe.

ekzorchik@srv-bionic:~$ sudo testparm

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

ekzorchik@srv-bionic:~$ sudo mkdir -p /windows/x32

ekzorchik@srv-bionic:~$ sudo mkdir -p /windows/x64

Монтирую ISO образ Windows 7 на каталог Samba сервиса:

ekzorchik@navy:~$ scp /media/ekzorchik/iso/SW_DVD5_Win_Pro_7w_SP1_64BIT_Russian_-2_MLF_X17-59431.ISO ekzorchik@172.33.33.25:/home/ekzorchik

ekzorchik@srv-bionic:~$ sudo mount -o loop SW_DVD5_Win_Pro_7w_SP1_64BIT_Russian_-2_MLF_X17-59431.ISO /mnt

Читайте также:  Tail and head in linux

mount: /mnt: WARNING: device write-protected, mounted read-only.

ekzorchik@srv-bionic:~$ sudo cp -fr /mnt/* /windows/x64/

ekzorchik@srv-bionic:~$ sudo umount /mnt

ekzorchik@navy:~$ scp /media/ekzorchik/iso/SW_DVD5_Win_Pro_7w_SP1_32BIT_Russian_MLF_X17-28979.ISO ekzorchik@172.33.33.25:/home/ekzorchik

ekzorchik@srv-bionic:~$ sudo mount -o loop SW_DVD5_Win_Pro_7w_SP1_32BIT_Russian_MLF_X17-28979.ISO /mnt

ekzorchik@srv-bionic:~$ sudo cp -fr /mnt/* /windows/x32/

ekzorchik@srv-bionic:~$ sudo umount /mnt

ekzorchik@srv-bionic:~$ sudo chmod -R 755 /windows/

ekzorchik@srv-bionic:~$ sudo chown -R nobody:nogroup /windows/

ekzorchik@srv-bionic:~$ sudo /etc/init.d/smbd restart

ekzorchik@srv-bionic:~$ sudo /etc/init.d/nmbd restart

Samba ресурс с двумя каталогами x32 & x64

Устанавливаю PXE сервис:

Устанавливаю в систему пакет tftpd-hpa:

ekzorchik@srv-bionic:~$ sudo apt-get install tftpd-hpa -y

ekzorchik@srv-bionic:~$ sudo mkdir /media/pxeboot

ekzorchik@srv-bionic:~$ sudo chmod -R 777 /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo chown -R nobody:nogroup /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup

ekzorchik@srv-bionic:~$ sudo nano /etc/default/tftpd-hpa

TFTP_OPTIONS=»—secure —create —verbose»

Перезапускаю сервис tftpd-hpa:

ekzorchik@srv-bionic:~$ sudo service tftpd-hpa restart && sudo service tftpd-hpa status | head -n 5

ekzorchik@srv-bionic:~$ sudo apt-get install pxelinux syslinux -y

ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/libcom32.c32 /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/libutil.c32 /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo cp /usr/lib/PXELINUX/pxelinux.0 /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/memdisk /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /media/pxeboot/

ekzorchik@srv-bionic:~$ sudo mkdir /media/pxeboot/pxelinux.cfg/

ekzorchik@srv-bionic:~$ sudo nano /media/pxeboot/pxelinux.cfg/default

#Секция по умолчанию, если пользователь не выбрал никакого варианта или нажал
клавишу Enter

#Секция времени в секундах, в течении которого отображается загрузочное меню

#Секция отображения строки для выбора варианта загрузки (1 — view, 0 — hidden)

LABEL Boot from first hard disk

label Install Windows 7 x32/x64

ekzorchik@srv-bionic:~$ sudo chown -R nobody:nogroup /media/pxeboot/

ekzorchik@srv-bionic:~$ ss -l4 | grep tftp

udp UNCONN 3072 0 0.0.0.0:tftp 0.0.0.0:*

Далее на VM под управлением Windows 7 x64 устанавливаю пакет Windows AIK (KB3AIK_RU.iso размером 1.2 Gb ) и через инструмент Deployment Tools Command Prompt

Win + Все программы — Microsoft Windows AIK — «Командная стройка средств развертывания» (запускаю через правый клик с правами администратора)

Читайте также:  Linux find kernel config

( для amd64 создаю winpe образ )

C:\Program Files\Windows AIK\Tools\PETools>copype amd64 c:\winPE_x64

c:\winPE_x64>copy «c:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim» c:\winPE_x64\ISO\sources\Boot.wim

c:\winPE_x64>copy «c:\Program Files\Windows AIK\Tools\amd64\imagex.exe» c:\winPE_x64\ISO\

c:\winPE_x64>oscdimg -n -bC:\winPE_x64\etfsboot.com c:\winPE_x64\ISO c:\winPE_x64\winpe_amd64.iso

Computing directory information complete

Image file is 170760192 bytes

Writing 22 files in 9 directories to c:\winPE_x64\winpe_amd64.iso

Final image file is 170760192 bytes

( для x86 создаю winpe образ )

C:\Program Files\Windows AIK\Tools\PETools>copype x86 c:\winPE_x86

c:\winPE_x86>copy «c:\Program Files\Windows AIK\Tools\PETools\x86\winpe.wim» c:\winPE_x86\ISO\sources\Boot.wim

c:\winPE_x86>copy «c:\Program Files\Windows AIK\Tools\x86\imagex.exe» c:\winPE_x86\ISO\

c:\winPE_x86>oscdimg -n -bC:\winPE_x86\etfsboot.com c:\winPE_x86\ISO c:\winPE_x86\winpe_x86.iso

Computing directory information complete

Image file is 145268736 bytes

Writing 18 files in 8 directories to c:\winPE_x86\winpe_x86.iso

Final image file is 145268736 bytes

Копирую получившийся iso файл на SAMBA сервис в каталог \\172.33.33.25\install

Копирую winpe_amd64.iso в smb ресурс \\172.33.33.25\installФайл успешно скопирован на SMB ресурс

ekzorchik@srv-bionic:~$ sudo mkdir /media/pxeboot/windows/

ekzorchik@srv-bionic:~$ sudo mv /windows/winpe_amd64.iso /media/pxeboot/windows/

ekzorchik@srv-bionic:~$ sudo mv /windows/winpe_x86.iso /media/pxeboot/windows/

Теперь беру VM и выставляю ей что она сперва должна произвести загрузку по сети

При загрузке по сети вижу свое PXE менюВыбрав установку Windows 7 ожидаю когда файлы загрузятсяВижу запрос на нажатие клавиши нажимаю клавишу Enter и производится загрузка с диска, а диск у меня это iso образ. Тем самым стартует загрузка Windows, но не привычная установка а приглашение командной строки:

Нажимаю клавишу Enter и начинается загрузка с winpe_amd64.isoВижу приглашение командной строки

В этом приглашении следует уже подмонтировать SAMBA ресурс и запустить установку ОС, т. е. Windows 7 Pro x64

X:\windows\system32> net use M: \\172.33.33.25\install\x64

где M: — это произвольное буква на которую монтирую доступ к ресурсу.

Затем перехожу на букву M: и запускаю файл инсталляции операционной системы:

X:\windows\system32\cd /d M:

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

Запустив установку Windows 7 SP1 Pro x64 начинаю с первого шага выбора языка

Нажимаю «Далее» — «Установить» и начинается обыденный процесс инсталляции операционной системы Windows, как если бы я просто записал образ на болванку или USB Flash Drive, выставил в BIOS с чего загружаться и загрузился.

Читайте также:  Линукс убунта 32 бит

Вообще следует разделить установку Windows в default файле:

LABEL Boot from first hard disk

LABEL Install Windows 7 Pro SP1 x64

LABEL Install Windows 7 Pro SP1 x86

Далее, для того, чтобы автоматизировать установку системы, можно с помощью «диспетчера образов системы Windows» подготовить файл ответов Autounattend.xml (именно так должен именовать файл ответов), и запускать установку с файлом ответов:

M:\setup.exe /unattend: Autounattend.xml

Исходя из этого, становится возможным на большом количестве персональных компьютеров которые необходимо вот прям, завтра, или сейчас ввести в эксплуатацию установить ось задействовав текущий PXE сервис и общий ресурс в роли SAMBA сервиса на который взгромоздить подготовленный ранее файл ответом или ставить все в ручную.

О том, как подготовить файл ответов будет в следующей заметке.

А пока я прощаюсь, на этом всё, с уважением автор блога Олло Александр aka ekzorchik

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником — ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог — это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору.

Источник

Оцените статью
Adblock
detector