Грузим ВСЁ по сети в DualBoot. Часть 4: Загружаем Strelec WinPE

Грузим ВСЁ по сети в DualBoot. Часть 4: Загружаем Strelec WinPE

В предыдущей части мы закончили на том, что добавили поддержку UEFI к нашей сетевой загрузке, в результате меню грузится одинаково и в Legacy и в UEFI. Теперь пора загрузить что-то полезное.

Часть 1: Теория и анализ предложений
Часть 2: Первые грабли в процессе загрузки MemTest86+
Часть 3: Добавляем поддержку UEFI
Часть 4: Загружаем Strelec WinPE
Часть 5: Загружаем полноценный дистрибутив Linux Ubuntu
Часть 6: Загружаем Windows Installer и ставим ОС
Часть 7: Устанавливаем Windows на iSCSI диск по сети
Часть 8: Жонглируем пунктами iPXE меню
Часть 9: Обслуживание сервера и обновление образов

Настройка TGTd

Так как протокол TFTP медленный, а memdisk требует оперативной памяти по размеру образа, Strelec WinPE будем загружать с виртуального диска по протоколу iSCSI сразу из iPXE. Протокол iSCSI, в отличии от SMB/NFS, предоставляет блочный доступ к диску, как будто вы подключаете физический диск.

iSCSI Target’ом (то есть iSCSI сервером) будет у нас служба tgtd, отличающаяся достаточно простой настройкой и бесперебойной работой.

apt install tgt -y
cat > /etc/tgt/targets.conf << EOF

# указываем имя виртуального диска (LUN'a) и путь до него
<target iqn.2020-12.pxe:strelec>
    backing-store /pxe/images/strelec.img
</target>

EOF

Подготовка образа

Последующие операции в целом можно выполнить используя fdisk, parted, mount и прочие Linux’овые утилиты, но для наглядности и понятности происходящего это проще сделать с Windows. В общем, займемся созданием виртуального диска с образом Strelec WinPE объемом 5Гб и перезапускаем tgt.

mkdir /pxe/images
touch /pxe/images/strelec.img
truncate -s 5G /pxe/images/strelec.img
service tgt restart

Теперь на компьютере с Windows идем в Панель управления => Администрирование => Инициатор iSCSI. Если запускаете впервые, будет предложено его включить, включаем. Вводим IP-адрес сервера загрузок и успешно входим, в диспетчере дисков появляется новый диск.

Подключение iSCSI диска
Диск успешно подключен

Выставляем таблицу разделов MBR, форматируем в файловую систему FAT32. Далее ищем последнюю сборку на официальном сайте, скачиваем ISO, открываем любым доступным образом и копируем файлы из ISO в корень нового диска. В данном случае образ весит чуть больше 4Гб, у нас остается немного места для хранения временных файлов и про запас на случай обновления сборок.

Копирование файлов на iSCSI диск

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

  1. Открываем, выбираем наш диск из списка
  2. Process MBR => Windows NT 5.x / 6.x => Install => NT 6.x
  3. Process PBR => BOOTMGR boot record => Install
  4. Parts Manage => Activate

Готово, теперь можно отключать iSCSI диск. Сначала делаем диск «вне сети» через диспетчер дисков, потом прерываем сессию в iSCSI инициаторе. В Windows есть какой-то странный глюк, когда при попытке прервать сессию система жалуется, что диск занят и ни в какую не хочет его отдавать.
В таком случае можно остановить tgt командой service tgt stop, дождаться пока система поймет, что он недоступен и только после этого его можно будет удалить. Потом включить обратно tgt командой service tgt start.

Доделываем меню iPXE

Добавляем пункт меню и блок загрузки в файл /pxe/ipxe/menu.ipxe

....
item strelec Boot Strelec WinPE
....
:strelec
sanboot iscsi:${srvip}:::1:iqn.2020-12.pxe:strelec

Для загрузки с iSCSI в iPXE используется команда sanboot, сочетающая в себе адрес сервера и имя LUN’а, с которого хотим загрузиться.

Полностью конфиг меню iPXE у нас выглядит примерно так:

#!ipxe
set menu-timeout 0

set srvip ${net0/next-server}

:start
menu iPXE boot menu
item  memtest          Run Memtest86+-5.01
item  strelec          Boot Strelec WinPE

choose --default memtest selected
goto ${selected}

:memtest
initrd tftp://${srvip}/utilites/mt531b.iso
chain tftp://${srvip}/utilites/memdisk iso raw

:strelec
sanboot iscsi:${srvip}:::1:iqn.2020-12.pxe:strelec

Готово. Пробуем загрузить в Legacy и в UEFI режимах, убеждаемся что все работает, выбирая второй пункт меню iPXE.

Загрузка Strelec WinPE по сети в режиме Legacy
Загрузка Strelec WinPE по сети в режиме UEFI

Грузим ВСЁ по сети в DualBoot. Часть 4: Загружаем Strelec WinPE: 7 комментариев

  1. У меня проблема при попытке загрузиться с образа Strelec. При использовании
    sanboot iscsi:${srvip}:::1:iqn.2020-12.pxe:strelec
    Вылетает ошибка — 1c0d6202
    https://ipxe.org/err-orig/1c0d6202

    Подскажите в чем может быть проблема?

  2. Пробовал последний на данный момент образ от 2022.01.04 грузить(в легаси) и через
    sanboot —no-describe -k http://X.X.X.X/iso/strelec10.iso
    и через
    sanboot iscsi:X.X.X.X:::1:2022-01-04.pxe:strelec
    В результате что со скачанным iso что с записанным isci img с помощью bootice результат одинаков, WinPE загружается но с ошибками связанными с тем что в системе где обычно на диск С смонтирована флешка(ну по сути сам образ) оказывается пусто и никаких устройств система не видит и по итогу из всего образа доступна только сама WinPE на Ram диске X

    1. тоже самое на 3х разных пк пробовал в legasy и в efi, на hyper-v при чем грузит всё отлично, без ошибок.

  3. Установил все по Вашему мануалу в efiх64 все прекрасно, и на ноутбуках и в vm Proxmox, однако в Легаси работать отказывается -No more network devices. Если бы Вы смогли настроить dnsmasq в режиме прокси моему счастью не было бы предела
    Спасибо Вам большое, за ваш труд

  4. не грузится стрелец айскази в уефи после меню, несколько раз делал и ничего не загрузилось. легаси работает нормально.

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

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