Библиотека сайта rus-linux.net
Как с помощью PXElinux v5 и Wimboot загрузить через сеть (PXE) спасательный диск WinPE
Оригинал: IT Geek: How to Network Boot (PXE) the WinPE Recovery Disk with PXElinux v5 & WimbootАвтор: Aviad Raviv
Дата публикации: 9 мая 2013 г.
Перевод: Н.Ромоданов
Дата перевода: апрель 2014 г.
Хотелось ли вам когда-либо быстро открыть консоль восстановления Windows, поддерживающую работу процедуры или программы, которой вы хотите воспользоваться, и, при этом, не вспоминать, где вы забыли компакт диск? В настоящей статье будет рассказано о том, как загрузить WinPE через сеть (с помощью PXE).
Среда предустановки Windows (WinPE) представляет собой версию Windows, о которой большинство людей знает, как о средстве загрузки установочного компакт-диска. На протяжении многих лет создавались целые проекты с тем, чтобы получить своего рода среду Windows Live, похожую на многие дистрибутивы Linux. В этом руководстве у нас будет система Windows PE, которая будет устанавливать загрузочный компакт диск через сеть, точно также, как мы можем это уже делать для запуска утилиты обновления Dell BIOS. Вам предлагается продолжить исследование бездонных возможностей этого подхода...
Обзор
Мы рассказали вам о том, что такое загрузка через сеть PXE и как вы можете с помощью пакета FOG настроить для этого сервер (и многое другое); сегодня мы добавим в пакет FOG еще одну дополнительную возможность. В общем сегодняшняя процедура будет состоять из следующего:
- Обновления PXElinux до версии v5.01 или выше, если это еще не сделано.
- Добавления модуля wimboot.
- Копирования образа WIM и вспомогательных файлов с установочного диска Windows.
- Добавления пункта меню.
- Использования загруженного WinPE для того, чтобы получить рабочую «консоль восстановления Windows».
Мы собираемся выполнить все, сказанное выше, поскольку если пойти по «обычному» пути использования пакета автоматической установки Windows Automated Installation Kit (WAIK), то вы вынуждены будете, в лучшем случае, установить его на вашей машине и выполнить не такую уж простую процедуру изменения файла WIM и вспомогательных файлов в формате WDS/RIS. Хотя для Linux есть альтернативы, например, проект UDA (являющийся сервером PXE, которым я пользовался до тех пор, пока не перешел на FOG), использование описываемого подхода просто сведется к однократной замене некоторых файлов на сервере PXE (что вам, вероятно, придется, так или иначе в конце концов сделать) и копированию на сервер PXE неизменного файла WIM и вспомогательных файлов непосредственно с компакт-диска Windows.
Единственное, на что нужно обратить внимание, это то, что вы можете таким образом запустить процедуру установки windows, но, на самом деле, вы не сможете завершить ее — описание этого выходит за рамки настоящего руководства.
Давайте приступим к делу :)
Обновляем PXElinux до версии V5.01
На момент написания настоящей статьи в репозитории Ubuntu по-прежнему присутствовал пакет Syslinux версии 4.05. Я предполагаю, что это связано с тем, что команда Syslinux решила «перетряхнуть» ветку V5 и изменить способ работы модулей COM32 (теперь на базе ELF), а также изменила «ядро», требующее использовать библиотеку (ldlinux.c32) для всего, что выходит за рамки «чистой загрузки». Те, кто привык к «старому подходу», весьма вероятно столкнутся с проблемами. Не волнуйтесь, мы будем загружать необходимые файлы вручную и сделаем это так, что в вашей инсталляции сервера FOG ничего не пропадет.
Мы будем использовать версию 5.01, поскольку на момент написания этой статьи это последняя стабильная версия ветки V5, и именно та, над которой команда Syslinux работает с командой wimboot для того, чтобы сделать эту конкретную процедуру работоспособной.
Примечание: Еще одна причина, из-за которой последняя версия все еще не является частью репозитория Ubuntu, состоит в том, что по крайней мере на Citrix-Xen гостевые системы HVM не могут загружать что-либо, кроме меню PXE. Другие гипервизоры, например, VMware, Hyper-V и VirtualBox, а также физические машины просто отлично работают с новой версией.
Если указанное выше примечание вас не беспокоит, то продолжим дальше.
Получите версию 5.01 пакета PXElinux непосредственно с сайта Kernel.org и распакуйте ее на сервере FOG с помощью следующей команды:
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.tar.bz2 tar xvhf syslinux-5.01.tar.bz2
Создайте каталог, в котором будут находиться только что полученные библиотеки:
mkdir -p /tftpboot/howtogeek/libs
Скопируйте в этот каталог файлы с необходимыми библиотеками, с тем чтобы они на этапе выполнения были доступны для клиентов:
cp -av syslinux-5.01/com32/lib/libcom32.c32 /tftpboot/howtogeek/libs/ cp -av syslinux-5.01/com32/libutil/libutil.c32 /tftpboot/howtogeek/libs/ cp -av syslinux-5.01/com32/modules/linux.c32 /tftpboot/howtogeek/libs/
Добавьте в уже существующий конфигурационный файлу default путь к этому каталогу - для этого либо его отредактируйте, либо выполните следующую команду:
echo "PATH howtogeek/libs" >> /tftpboot/pxelinux.cfg/default
Скопируйте необходимую библиотеку ldlinux.c32 в корень сервера TFTP с помощью следующей команды:
cp -av syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32 /tftpboot/
Обновите графический движок (vesamenu.c32), чтобы он соответствовал этой новой версии:
cp -av syslinux-5.01/com32/menu/vesamenu.c32 /tftpboot/
Поздравляем, ваш PXE сервер теперь обновлен до версии v5.01 и сделано все, чтобы он работал (если примечание, указанное выше, к вам не относится).
WIMboot
Этот загрузчик является частью проекта iPXE и он описывается следующим образом:
wimboot
является загрузчиком файлов формата Windows Imaging Format (.wim
). Он позволяет загружать среду Windows PE (WinPE) с диска RAM без лишних затрат памяти, которые требуются при использовании образа диска RAM.
Загрузите последнюю версию с сайта проекта:
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
Установите программу unzip на сервер FOG, если ее еще нет:
aptitude install unzip
Распакуйте пакет wimboot:
unzip wimboot-latest.zip
Скопируйте модуль wimboot в каталог libs, который мы создали в предыдущем разделе:
cp -va wimboot*/wimboot /tftpboot/howtogeek/libs/
Вот и все. Загрузчик wimboot готов к использованию.
Файлы компакт диска Windows
Создайте на сервере FOG новый каталог для хранения файлов, которые мы будем копировать:
mkdir -p /tftpboot/howtogeek/WinPE/
Вставьте оригинальный установочный диск Windows 7 в ваше устройство CD-ROM и скопируйте в этот каталог файлы, которые перечислены ниже:
\bootmgr \boot\bcd \boot\boot.sdi \sources\boot.wim
Да, это настолько просто, причем, чтобы это работало, вам не нужно воспроизводить структуру каталогов, имеющуюся на CD.
Примечание: я выяснил, что для того, чтобы можно было выполнять обновления Dell BIOS, необходимо использовать 32-разрядную версию Windows.
Добавьте запись в меню
Создайте пункт меню PXE — для этого отредактируйте меню Utils:
sudo vim /tftpboot/howtogeek/menus/utils.cfg
Добавьте к этому следующее:
label WinPE com32 linux.c32 howtogeek/libs/wimboot APPEND wimboot initrdfile=/howtogeek/WinPE/bootmgr,/howtogeek/WinPE/bcd,/howtogeek/WinPE/boot.sdi,/howtogeek /WinPE/boot.wim
Поздравляем, теперь у вас на сервере PXE есть система WindowsPE.
Примечание: может показаться, что файл wim завис, но это не так. На самом деле клиенту через TFTP передается файл размером в 140MB, что занимает больше времени, чем для обычных небольших файлов, которые передаются таким образом.
Ниже показан скриншот, указывающий на то, что это выполнено.
На жестком диске виртуальной машины, показанной выше и запущенной с помощью плейера VMware, установлена система Ubuntu и выполнена загрузка через сеть (PXE) системы WinPE.
Консоль восстановления Windows
Опять же, как уже упоминалось в обзоре, хотя вы можете начать процедуру установки windows, вы на самом деле не сможете ее завершить, а обсуждение, позволяющее это сделать, выходит за рамки данного руководства.
С учетом сказанного, просто приведем один пример того, чем этот подход мог бы быть полезным - мы будем использовать эту среду для того, чтобы обновлять Dell BIOS.
Получаем обновления, которые вам надо выполнить, с сайта Dell, и помещаем их на флешку. Подключаем флешку к клиентской машине и выполняем загрузку через сеть (загрузку PXE).
Чтобы перейти к консоли восстановления, в главном окне, которое показано на скриншоте выше, нажимаем Next (Далее).
Щелкаем по записи Repair your computer (Восстановить компьютер).
Выбираем вариант Use recovery tools (Использование средств восстановления) и нажимаем кнопку Next (Далее).
Выбираем вариант Command Prompt (Командная строка).
После того, как вы окажитесь в командной строке, вам придется узнать, какую «букву диска» система WinPE решила назначить вашей флешке. Чтобы это сделать, с помощью следующей команды получите от системы список всех используемых в текущий момент букв дисков:
wmic logicaldisk get name
Теперь для каждой буквы, кроме букв A: и X: и, возможно, C: (хотя она не указана), поищите содержимое флешки:
Driveletter: dir
Как только вы найдете нужный диск, запустите файл, и вы должны увидеть что-то вроде следующего:
Поздравляем, у вас все настроено для выполнения обновления.
В следующей статье мы расскажем, как с помощью сетевой загрузки PXE выполнить автоматическую установку гипервизора Citrix Xen.