Установка 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
bcdedit -store %1\BCD -set
bcdedit -store %1\BCD -set
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
bcdedit -store %1\BCD -set
bcdedit -store %1\BCD -set
И запускаем его:
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
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 будет скрыт псевдонимом.
LiveCD для аварийного восстановления Windows
Доброго времени суток!
LiveCD диск или флешка — крайне полезная вещь! Пока всё работает — о ней вроде и не вспоминаешь, но как только возникает проблема — без неё и не туда и не сюда! ☝
Например, перестала загружаться ОС Windows — при помощи LiveCD можно быстро загрузиться и скопировать все нужные документы и файлы. Удобно?! Я уж не говорю о том, как это удобно для тестирования и диагностики ПК/ноутбука (особенно, при его «покупке с рук. «).
В этой небольшой заметке предложу несколько весьма многофункциональных LiveCD, которые вас выручат при самых разных проблемах. В общем, рекомендую всем иметь хотя бы 1 LiveCD-флешку в качестве аварийного инструмента! Мало ли.
Как создать загрузочный LiveCD/DVD/USB-флешку или диск с операционной системой Windows [инструкция]
Выбор LiveCD: подборка
Live Disk WinPE 10-8 Sergei Strelec 👍
Как загрузиться с такой флешки: инструкция
Какие программы есть на диске «Стрельца. «
Один из лучших загрузочных LiveCD дисков на базе Windows 10 PE (интерфейс точно такой же, как в обычной ОС, и полностью на русском языке!).
Не могу не отметь, что Сергей Стрелец (автор сборки) собрал десятки самых нужных программ на «все случаи жизни»: есть и антивирусы, и HEX-редакторы, и ПО для работы с HDD, и для диагностики, и для графики и т.д.
Отлично подходит для решения практически любых проблем с ПК/ноутбуком:
В общем, однозначно рекомендую к знакомству!
✔👉Примечание: для записи LiveCD образа на флешку — можно:
- воспользоваться утилитой «ISO to USB», которая идет в одном архиве с ISO (пример настроек — см. на скрине ниже 👇);
- либо скопировать ISO-образ на флешку, подготовленную в Ventoy (этот вариант легче и универсальнее (Legacy + UEFI)).
ISO to USB — как записать загрузочную флешку
Active@ Live CD
Active@ Live CD — пример работы ПО
Практически полноценная ОС, которую можно записать на CD/DVD-диск или USB-накопитель и пользоваться на любом ПК/ноутбуке! (Разумеется, без установки —достаточно просто загрузиться с заранее подготовленной флешки)
- инструменты для восстановления данных, сброса пароля, создания резервной копии системы;
- форматирование и работа с разделами жесткого диска;
- удаление информации с диска без возможности последующего восстановления (полезно при продаже ПК);
- мониторинг за температурой ЦП, диска, и др. компонентов, и показаниями SMART дисков;
- встроенные программы: блокнот, редактор реестра, калькулятор, HEX редактор и др.;
- возможность работы с файловыми системами: FAT12, FAT16, FAT32, NTFS, NTFS5, NTFS+EFS;
- поддержка IDE / ATA / SCSI дисков.
Hiren’s BootCD PE
Hiren’s BootCD PE — скриншот работы сборки
Hiren’s BootCD PE – этот диск основан на ОС Windows XP (урезанной версии) с полным комплектом различных программ. Позволяет относительно спокойно пользоваться ПК (в том числе и сетью) просто загрузившись с флешки.
- диагностика диска: HDDScan, HDTune, DiskExplorer;
- бэкап и работа с HDD: Acronis TrueImage, AOMEI Backupper, Partition Extender, HDD Low Level Format Tool и др.;
- офис и блокноты: Notepad++, Free Office, FSViewer, Sumatra PDF, и пр.;
- антивирус: ESET Online Scanner, Malwarebytes Anti-Malware;
- диагностика, тесты: CPU-Z, HWInfo, Speccy, CCleaner, SysInternals Suite и др.;
- сеть, интернет: Chrome, Mozilla Firefox, Aero Admin и др.
Hiren’s BootCD PE — еще один скриншот
Еще несколько полезных альтернатив
👉 Ultimate Boot CD
Несмотря на то, что этот пакет не обновлялся последние пару лет — он до сих пор в «форме». Позволяет в 2-3 клика мышки проверять системы на вирусы, восстанавливать удаленные файлы, смотреть характеристики ПК, форматировать диски, и многое другое.
Минус : только на англ. языке (если с ним не дружите — лучше выбрать что-то альтернативное).
Ultimate Boot CD — внешний вид
👉 AOMEI PE Builder
Хороший добротный инструмент с самыми нужными прикладными программами и системными утилитами. Более подробно о ней я рассказывал в одной из прошлых своих заметок.
AOMEI PE Builder — скриншот окна
👉 Dr.Web Live Disk
LiveCD от знаменитого антивируса. Позволяет проверить систему на вирусы и вредоносное ПО, если Windows отказалась загружаться. Кроме этого, LiveCD содержит файловый коммандер, браузер, терминал, почту и пр.
Midnight Commander — файловый коммандер / Доктор Веб LiveCD
👉 ESET NOD32 LiveCD
Аналогичный продукт от ESET. Содержит не так много инструментов, но для проверки системы, работы с диском и сетью — вполне достаточно!
PXE — грузим всё! Осваиваем мультизагрузку по локальной сети
Содержание статьи
Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.
Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера. Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8. В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).
Xakep #201. Как стать киборгом
У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.
LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE — инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».
Главное меню загрузки PXE, графический режим
Что будем реализовывать?
Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.
- Тонкие клиенты на базе Thinstation Linux.
- Раздел Linux.
- Установка Ubuntu 14.04 x86.
- Установка Ubuntu 14.04 x64.
- Установка Ubuntu 12.04 x86.
- Установка Ubuntu 12.04 x64.
- Загрузка SliTaz Live CD.
- Раздел Windows.
- Установка Windows 2012.
- Установка Windows 7.
- Acronis.
- Windows PE с пакетом полезного ПО.
- Acronis True Image.
- Legacy BIOS.
- UEFI.
- Acronis Disk Director.
- Legacy BIOS.
- UEFI.
- Касперский Rescue v 10.
- ERD Commander от 5 до 8 через ISO-образ.
- Memtest.
Собираем все в кучу и взлетаем
В качестве дистрибутива для сервера выбор пал на Ubuntu Server 14.04.2 LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим. Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS. Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:
Параметр -y означает, что на все вопросы отвечаем согласием. Настройка TFTP сводится к правке пары строк в соответствующем месте:
Обрати внимание, параметр TFTP_DIRECTORY=»/var/lib/tftpboot» указывает место расположения корневого каталога TFTP-сервера. После сохранения перезапускаем удобным для себя способом:
Далее настроим DHCP-сервер. Приведу простую конфигурацию файла /etc/dhcp/dhcpd.conf:
Данная конфигурация говорит о том, что DHCP-сервер работает в локальной сети 192.168.0.0/24. Клиенту присваиваются адреса из диапазона 192.168.0.150–192.168.0.200, им будут присвоены параметры шлюза — 192.168.0.1, DNS-сервера — 192.168.0.2 и 192.168.0.5. Класс pxeclients, а именно параметр filename — это имя файла загрузчика, расположенного в корневой папке TFTP-сервера, в нашем случае /var/lib/tftpboot/pxelinux.0, на сервере с адресом 192.168.0.10.
Syslinux. Ставим загрузчик
В качестве загрузчика будем использовать Syslinux. Последнюю версию можно взять здесь. Распаковываем и кладем в /var/lib/tftpboot следующие файлы: ldlinux.c32, libcom32.c32, pxelinux.0 и lpxelinux.0 и каталог boot, в который складываем chain.c32, ldlinux.c32, libcom32.c32, libcom32.elf, libutil.c32, linux.c32, memdisk, menu.c32, vesamenu.c32 (menu.c32 — только текстовое меню, vesamenu.c32 позволяет украсить меню, например добавив фон). Файл меню загрузки по умолчанию должен находиться в /var/lib/tftpboot/pxelinux.cfg/default и иметь вид
На этом этапе загрузчик должен работать и иметь единственный пункт меню «Загрузка с первого жесткого диска». Далее необходимо создать подменю. Чтобы не путаться и не городить огромные файлы, рекомендую вынести подпункты в отдельные файлы меню, например так:
Все, что относится к разделу меню Install/Boot Linux, вынесем в отдельный файл /var/lib/tftpboot/linux. Аналогично выносятся другие пункты меню. Остальные параметры загрузки рассмотрим при добавлении каждого пункта/продукта.
Раздел Linux. Готовим на примере Ubuntu 14.04
Первым пунктом ставим возврат в предыдущий раздел меню. Далее будет установка Ubuntu 14.04 i386 и amd64. Скачиваем образ Ubuntu 14.04 mini.iso, распаковываем, находим прямо в корне два файла: linux и initrd.gz. Напомню, что корневой каталог сервера для загрузки — это каталог TFTP-сервера /var/lib/tftpboot . Исходя из этого, располагаем файлы внутри tftpboot. В случае с установкой Ubuntu, например, в images/linux/ubuntu14/i386 для x86 и в /images/ubuntu14/amd64 для x64 архитектур соответственно. Заметь, пути указаны относительно каталога FTFP-сервера. Здесь можно задавать параметры для установки, для автоматизации процесса установки. Например, задать параметр установки в качестве окружения рабочего стола при установке Debian KDE: append desktop=kde . Следующим шагом запустим маленький SliTaz. Грузить ISO-образы будем через memdisk. Из листинга сверху видно раздел slitaz, memdisk у нас расположен в каталоге boot, сам образ — в каталоге images. Параметры аналогичны тем, что используются в мультизагрузочных дисках.
Тонкие клиенты / Thinstation Linux
Следующим шагом научим запускать тонкие клиенты. Образ Thinstation Linux можно скачать готовый в виде сборки, можно взять конструктор для сборки и собрать самостоятельно. Можно качнуть с GitHub. Будь готов, что в последнем случае для подготовки образа потребуется около 3 Гбайт свободного места и времени в районе часа. Подготовка образа из Git хорошо описана в статье на сайте quaded.com. Я взял сборку с сайта nixts.org. В образе, который мы используем, много «ненужных» файлов, потому что там сразу и загрузчик, и дефолтные конфиги. Берем ядро и образ файловой системы (initrd и vmlinuz), которые складываем, например, в /var/lib/tftpboot/images/thinstation/ . Файлы конфигураций ( thinstation.conf.network , thinstation.hosts , thinstation.conf-user ) располагаем в корневом каталоге TFTP-сервера! Thinstation позволяет при загрузке учитывать MAC-адреса, IP-адреса, определять имя и группировать клиентов, в зависимости от параметров регулировать загрузку, например уводить на разные RDP- или VNC-серверы, сессии. Это позволяет, например, наклепать кучу виртуалок с десктопными операционными системами и посадить каждого клиента на отдельную виртуалку. Для каждого клиента можно также отдельно задавать настройки доступа к локальным устройствам: принтерам, флешкам, дискам, приводам и так далее. В общем, каждый ограничен только своей фантазией, благо вариантов использования с описанием настроек в сети навалом.
Acronis
Продукты Acronis загружаются аналогично инсталляторам Linux-систем. Скачал в Сети первый попавшийся образ Acronis, исключительно в научных целях. Распаковал. Нас интересуют только два каталога: ADD12 и ATI2015. Внутри каждого каталога видим по два файла с одинаковым именем и разным расширением. Это сделано для загрузки на 32-битных и x64-системах. Если открыть файл menu.lst того же образа, можно посмотреть, что чему соответствует. Для удобства складываем True Image и Disk Director аналогичным образом. Создаем папку acronis в рабочем каталоге ( /var/lib/tftpboot ). В него копируем ADD12 и ATI2015 со всем содержимым. Для удобства продукты Acronis выносим в отдельный раздел меню, так же как и раздел Linux. В pxelinux.cfg/default добавляем:
Файл acronis приводим к такому виду:
Windows PE
Windows-образы грузить несколько сложнее. В реализации загрузки практически любого WinPE-образа с любым содержимым внутри нам поможет загрузчик WIMBoot. WIMBoot — это системный загрузчик WIM-образов по сети. Довольно хорошо о самом продукте рассказывается на сайте, там же есть ссылка на скачивание. На сайте Microsoft есть инструкция по созданию WIM-образов. Образ, с которым я работал, был щедро вручен мне нашим системным администратором с продуктами Акронис. Назывался он Acronis_WinPE_Sergei_Strelec_25.11.2013.iso . Распаковав его, увидел в папке source заветный образ acronis.wim . Для WIM-образов для большего порядка использую отдельный каталог wim. Чтобы не путаться, внутри сделал еще один каталог winpe. В него копируем acronis.wim . Еще нам потребуются два файла из каталога BOOT этого же образа: BCD, BOOT.SDI и файл BOOTMGR из корня образа. На этом образ можно закрыть, удалить, больше он не пригодится. Переходим к подготовке загрузчиков (WIMBoot и syslinux). Распаковываем куда-нибудь архив wimboot-latest.zip . Копируем загрузчик WIMBoot на сервер TFTP, для удобства в каталог boot. Поскольку образ содержит Windows PE и различное программное обеспечение, в том числе и Acronis, то отнести можно в любой раздел меню. Я расположил его в главном меню. Итак, в файл pxelinux.cfg/default вносим изменения:
Заключение
На этом всё. В следующей статье мы научимся подготавливать и добавлять Windows-образы, сетевой установке в ручном и автоматическом режимах. Добавим Kaspersky Rescue v10, ERD Commander, именуемый MSDaRT. Разберемся, как запускать диагностические утилиты на примере memtest, а также покажем, как украсить меню загрузки.
Александр «Plus» Рак
Участник сообщества OmskLUG. Инженер отдела электронного взаимодействия МКУ «Информационно-технического управления».