Популяризация OpenBSD, часть 5 (Делаем мультизагрузочный pxe сервер)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Аватара пользователя
kasak
Сообщения: 883
ОС: OpenBSD

Популяризация OpenBSD, часть 5

Сообщение kasak » 04.07.2016 16:15

Рано или поздно в жизни системного администратора наступает такой момент когда уже не хочется возится в флешками-дисками, а хочется в любой момент иметь весь нужный инструментарий под рукой. Именно поэтому для себя я создал загрузочный сервер с PXE.
Как я это сделал я опишу ниже. Мануал конечно подходит под любую систему, но я буду ориентироваться на самую лучшую - OpenBSD! Все инструкции проверены трижды на отсутствие костылей и полностью основаны на оригинальной документации. По сути данная статья это компиляция из официальных документаций и собственного опыта, которая может быть сохранит вам пару часов, а может и пару дней поисков.

Прежде всего подготовим базу для наших загрузок.

В OpenBSD при дефолтном разбиении диска корневой раздел оказывается весьма маленьким, как впрочем и остальные системные разделы. Для нашего сервера я использую раздел /home причём всю структуру папок я создал в домашней директории своего юзера, это очень удобно при обновлении дистрибутивов на сервере.

Создаём папку tftpboot в своей домашней директории и делаем на неё линк из дефолтной директории tftp:

Код: Выделить всё

cd
mkdir tftpboot
ln -s ~/tftpboot /tftpboot


Теперь нужно создать /etc/exports с таким содержанием:

Код: Выделить всё

/home/kasak/tftpboot -alldirs -ro -mapall=kasak -network=192.168.0.0 -mask 255.255.255.0


Разумеется имя пользователя и адреса нужно поправить на реально существующие.

Теперь можно включать нужные сервисы:

Код: Выделить всё

rcctl enable portmap mountd nfsd tftpd


Spoiler
Внимательный читатель наверное заметил что я создал симлинк из корневой системы в домашнюю директорию для работы tftpd. А вместо этого можно было просто указать в rc.conf.local опцию для tftpd и указать там другую директорию. Это правда, так можно было сделать, и правильный способ всегда тот, который вам больше нравится. Если вам интересно, зачем я сделал именно так, вот вам мой ответ: В родных скриптах инициализации в опенке для каждого встроенного в систему сервиса прописаны дефолтные опции, которые мы как раз и можем изменить в rc.conf.local. Но, следует представить себе, что разработчик может внезапно изменять нужные "дефолтные" опции и сервис случайно начнёт работать не так как следует, из-за того что мы прописали "свои" опции в rc.conf.local, например какую-то опцию могут убрать или изменить, а она у нас прописана.
Я совершенно согласен с тем кто скажет что в tftpd опции век не менялись и врядли когда-либо изменятся, это действительно так. Но в других демонах (пусть даже не системных) такая ситуация имела место быть, и именно поэтому я ВСЕГДА придерживаюсь именно такого способа манипуляции с опциями, я стараюсь их не менять без веских причин, этой мой принцип! Вы можете делать так, как считаете нужным.


Теперь займёмся dhcp. Честно говоря я у себя использую isc_dhcpd из пакетов, из-за того что мне нужен ddns, однако мне кажется что и с родным для опенки dhcpd должно сработать. В крайнем случае просто установите пакет isc_dhcpd, конфиг у обоих демонов одинаковый.
Нам нужно вписать две опции. Первая вписывается в "глобальный" конфиг:

Код: Выделить всё

option architecture-type code 93 = unsigned integer 16;

Вторая часть вписывается в subnet:

Код: Выделить всё

if option architecture-type = 00:00 {
 filename "lpxelinux.0";
 } elsif option architecture-type = 00:09 {
 filename "bootx64.efi";
 } elsif option architecture-type = 00:07 {
 filename "bootx64.efi";
 } elsif option architecture-type = 00:06 {
 filename "bootia32.efi";
 } else {
 filename "pxelinux.0";
 }

Кроме того в subnet нужно добавить опцию next-server:

Код: Выделить всё

next-server 192.168.0.65;

Тут адрес 192.168.0.65 это адрес сервера tftpd конечно же.

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

Теперь нам нужно собрать файлы которые и будут загружаться нашим клиентам. Это можно сделать скачав пакет syslinux с официального сервера: https://www.kernel.org/pub/linux/utils/boot/syslinux/
На сегодняшний день последняя версия 6.03. Собирать ничего не нужно, все бинарники уже собраны внутри! Нам понадобятся следующие файлы:

Код: Выделить всё

/syslinux-6.03/bios/core/pxelinux.0
/syslinux-6.03/bios/core/lpxelinux.0
/syslinux-6.03/efi32/efi/syslinux.efi (переименовываем в bootia32.efi)
/syslinux-6.03/efi64/efi/syslinux.efi (переименовываем в bootx64.efi)
/syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32
/syslinux-6.03/efi32/com32/elflink/ldlinux/ldlinux.e32
/syslinux-6.03/efi64/com32/elflink/ldlinux/ldlinux.e64
/syslinux-6.03/bios/com32/lib/libcom32.c32
/syslinux-6.03/bios/com32/libutil/libutil.c32
/syslinux-6.03/bios/com32/menu/vesamenu.c32
/syslinux-6.03/bios/memdisk/memdisk

Внимание!!! Данный список нужен пока лишь для организации запуска НЕ EFI загрузок! К сожалению у меня в данный момент не нашлось ни одной современной тачки способной грузится по efi, поэтому каким-то образом протестировать EFI невозможно. Если в будущем такая тачка найдётся то список будет пополнен. Проблема в том что конфиг основан на vesamenu, а для него нужны модули которые имеют те же имена что для bios. Возможно это как-то можно обойти но пока что я не могу это опробовать.

Так же нам потребуется шрифт UniCyr_8x16.psf для того чтобы отображались русские буквы. Но задачу поиска шрифта я оставляю на читателе!
Нам нужно расположить все найденные файлы в директории tftpboot так, чтобы получилась такая структура:

Код: Выделить всё

./bootia32.efi
./bootx64.efi
./boot
./boot/UniCyr_8x16.psf
./boot/menu
./boot/menu/vesamenu.c32
./boot/isolinux
./boot/isolinux/ldlinux.c32
./boot/isolinux/libutil.c32
./boot/isolinux/ldlinux.e32
./boot/isolinux/libcom32.c32
./boot/isolinux/ldlinux.e64
./boot/memdisk
./lpxelinux.0
./pxelinux.0

Файлы разложены именно так потому что:
1) Pxelinux при запуске будет искать свой конфиг и все остальные файлы считая директорию где он сам находится корневой. То есть если засунуть его в boot то он уже не сможет спустится ниже чем boot, и всё что мы собираемся грузить должно быть в boot. поэтому pxelinux лежит в корне.
2) Следующий файл который грузит pxelinux - ldlinux. для bios и для efi они разные. Сначала pxelinux будет искать его рядом с собой, потом лезет в /boot/isolinux вот туда то мы его и положим.
3) Когда загрузится конфиг (pxelinux.cfg/default) в конфиге указано vesamenu, расположение меню указано в конфиге, а вот нужные для меню модули лежат в /boot/isolinux.
На самом деле если неохота возиться, просто скачайте комплект любезно собранный мной для вас: https://yadi.sk/d/IRxHaU5csypGB
Теперь нужно создать конфиг! Но кодировка в консоли ДО запуска системы никакая не utf-8 а cp866. редактировать конфиг с помощью консольных редакторов в кодировке cp866 неудобно.
создаём директорию pxelinux.cfg и в ней будем создавать конфиг в utf-8

Код: Выделить всё

cd tftpboot
touch default_utf
touch convert
chmod +x convert

В файл convert скопируем это:

Код: Выделить всё

iconv -f utf-8 -t cp866 default_utf > default

Чуть не забыл! Нужен пакет libiconv. Он автоматом ставится с php или например с апачем, но если ничего этого нет то:

Код: Выделить всё

pkg_add libiconv

Теперь редактируем default_utf:

Код: Выделить всё

default /boot/menu/vesamenu.c32

font /boot/UniCyr_8x16.psf
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color disabled 0 #ffffffff #00000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu background /boot/back.png

menu title Крутой админский тул!

prompt 0

timeout 1200

label Загрузка с первого диска
localboot 0x80

menu begin
menu title Ubuntu

label ..
menu exit

label Ubuntu 16.04 x64
kernel ubuntu/casper/vmlinuz.efi
append root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.0.65:/home/tvema/tftpboot/ubuntu NFSOPTS="rsize=8192,wsize=8192" initrd=ubuntu/casper/initrd.lz locale=ru_RU.UTF-8 quiet splash --

label Kubuntu 16.04 x64
kernel kubuntu/casper/vmlinuz.efi
append root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.0.65:/home/tvema/tftpboot/kubuntu NFSOPTS="rsize=8192,wsize=8192" initrd=kubuntu/casper/initrd.lz locale=ru_RU.UTF-8 quiet splash --

label Ubuntu 16.04 x64 server install
kernel ubuntu-server/install/netboot/ubuntu-installer/amd64/linux
append vga=normal initrd=ubuntu-server/install/netboot/ubuntu-installer/amd64/initrd.gz -- quiet

menu end

menu begin
menu title Linux Mint

label ..
menu exit

label Mint Cinnamon 32 bit
kernel mint/32/casper/vmlinuz
append root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.0.65:/home/tvema/tftpboot/mint/32 NFSOPTS="rsize=8192,wsize=8192" initrd=mint/32/casper/initrd.lz locale=ru_RU.UTF-8 quiet splash --

label Mint Cinnamon 64 bit
kernel mint/64/casper/vmlinuz
append root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.0.65:/home/tvema/tftpboot/mint/64 NFSOPTS="rsize=8192,wsize=8192" initrd=mint/64/casper/initrd.lz locale=ru_RU.UTF-8 quiet splash --
menu end

Нам нужно будет положить красивую картинку в файл /boot/back.png разрешением 640х480

Обратите внимание на опции NFSOPTS в убунтах! Дело в том что в NFS сервере openbsd значения rsize и wsize имеют именно такие значения. А в дебиане они зачем-то задрали их до 60 тысяч. Если не установить эту опцию то загрузка повиснет.

Позвольте ниже указать в спойлерах огромные куски кода для загрузки других систем:

Для system rescue cd:
Spoiler
menu begin
menu title System Rescue CD

label ..
menu exit

label 1) System Rescue CD 64 бита
kernel sysrcd/isolinux/rescue64
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx
TEXT HELP
Стандартное 64 битное ядро. Автоматический запуск графики.
ENDTEXT

label 2) System Rescue CD 32 бита
kernel sysrcd/isolinux/rescue32
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx
TEXT HELP
Стандартное 32 битное ядро. Автоматический запуск графики.
ENDTEXT

label 3) System Rescue CD 64 альтернативное ядро
kernel sysrcd/isolinux/altker64
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx
TEXT HELP
Альтернативное 64 битное ядро. Автоматический запуск графики.
ENDTEXT

label 4) System Rescue CD 32 альтернативное ядро
kernel sysrcd/isolinux/altker32
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx
TEXT HELP
Альтернативное 32 битное ядро. Автоматический запуск графики.
ENDTEXT
label 1) System Rescue CD 64 бита vesa video driver
kernel sysrcd/isolinux/rescue64
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx forcevesa
TEXT HELP
Стандартное 64 битное ядро. Автоматический запуск графики с драйвером vesa
ENDTEXT

label 2) System Rescue CD 32 бита vesa video driver
kernel sysrcd/isolinux/rescue32
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx forcevesa
TEXT HELP
Стандартное 32 битное ядро. Автоматический запуск графики с драйвером vesa
ENDTEXT

label 3) System Rescue CD 64 альтернативное ядро vesa video driver
kernel sysrcd/isolinux/altker64
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx forcevesa
TEXT HELP
Альтернативное 64 битное ядро. Автоматический запуск графики с драйвером vesa
ENDTEXT

label 4) System Rescue CD 32 альтернативное ядро vesa video driver
kernel sysrcd/isolinux/altker32
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us dostartx forcevesa
TEXT HELP
Альтернативное 32 битное ядро. Автоматический запуск графики с драйвером vesa
ENDTEXT
label 1) System Rescue CD 64 бита без графики
kernel sysrcd/isolinux/rescue64
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us
TEXT HELP
Стандартное 64 битное ядро.
ENDTEXT

label 2) System Rescue CD 32 бита без графики
kernel sysrcd/isolinux/rescue32
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us
TEXT HELP
Стандартное 32 битное ядро.
ENDTEXT

label 3) System Rescue CD 64 альтернативное ядро без графики
kernel sysrcd/isolinux/altker64
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us
TEXT HELP
Альтернативное 64 битное ядро.
ENDTEXT

label 4) System Rescue CD 32 альтернативное ядро без графики
kernel sysrcd/isolinux/altker32
initrd sysrcd/isolinux/initram.igz
append initrd=sysrcd/isolinux/initram.igz dodhcp nfsboot=192.168.0.65:/home/tvema/tftpboot/sysrcd setkmap=us
TEXT HELP
Альтернативное 32 битное ядро.
ENDTEXT

menu end

Дополнительные утилиты из состава sysrescd:
Spoiler
MENU BEGIN
MENU TITLE Дополнительные утилиты

label ..
menu exit

LABEL memtest
MENU LABEL Тестирование оперативной памяти
kernel sysrcd/bootdisk/memtestp
append -

LABEL ntpass
MENU LABEL NTPASSWD: Сброс пароля Windows
kernel sysrcd/ntpasswd/vmlinuz
append rw vga=1 initrd=/ntpasswd/initrd.cgz,/ntpasswd/scsi.cgz

LABEL grubdisk
MENU LABEL SGD: Super Grub2 Disk
kernel /boot/memdisk
append initrd=/bootdisk/grubdisk.img floppy raw

LABEL freedos
MENU LABEL FREEDOS: DOS
kernel /boot/memdisk
append initrd=sysrcd/bootdisk/freedos.img floppy
TEXT HELP
Используется для сброса биоса или других целей
ENDTEXT

LABEL hdt
MENU LABEL HDT: Диагностика железа
kernel /boot/memdisk
append initrd=sysrcd/bootdisk/hdt.img floppy
TEXT HELP
Даст информацию об используемом компьютере
ENDTEXT

LABEL aida
MENU LABEL AIDA: старинная утилита диагностики железа
kernel /boot/memdisk
append initrd=sysrcd/bootdisk/aida.img floppy

LABEL gag
MENU LABEL GAG: Графический менеджер загрузки
kernel /boot/memdisk
append initrd=sysrcd/bootdisk/gag.img floppy

LABEL dban
MENU LABEL DBAN: уничтожитель данных на диске
kernel sysrcd/bootdisk/dban.bzi
append nuke="dwipe" silent
TEXT HELP
ОСТОРОЖНО!!! ВСЁ УДАЛИТСЯ!!!
ENDTEXT

LABEL mhdd
MENU LABEL MHDD: Диагностика жесткого диска
kernel /boot/memdisk
append initrd=sysrcd/bootdisk/mhdd.img floppy

MENU END


Просто полезные утилиты:
Spoiler
menu begin
menu title Утилиты

label ..
menu exit

label bios flash
linux /boot/memdisk
initrd dos/fdboot.img
append floppy

label Memtest86+
kernel memtest/memtest

label Минималистичная ОС Колибри
linux /boot/memdisk
initrd kolibri/kolibri.img
append raw

label Hiren's boot CD диагностика системы
linux /boot/memdisk
initrd hirens/hiren.iso
append iso

label Quirky 7.3.2
linux quirky/vmlinuz
append initrd=quirky/initrd.q

label Damn Small Linux
linux /boot/memdisk
initrd dsl/current.iso

LABEL Partition Magic 32 bit
LINUX pmagic/bzImage
INITRD pmagic/initrd.img,pmagic/fu.img,pmagic/m32.img,pmagic/files.cgz
APPEND edd=on vga=normal

LABEL Partition Magic 64 bit
LINUX pmagic/bzImage64
INITRD pmagic/initrd.img,pmagic/fu.img,pmagic/m64.img,pmagic/files.cgz
APPEND edd=on vga=normal

label GParted редактор разделов
kernel gparted/vmlinuz
append initrd=gparted/initrd.img boot=live config components union=overlay username=user noswap noeject locales=ru_RU.UTF-8 keyboard-layouts=en gl_batch vga=788 fetch=http://192.168.0.65/tftpboot/gparted/filesystem.squashfs

label CloneZilla x64
kernel clonezilla64/vmlinuz
append initrd=clonezilla64/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla64/filesystem.squashfs

label CloneZilla x32
kernel clonezilla32/vmlinuz
append initrd=clonezilla32/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla32/filesystem.squashfs

label Paragon Recovery Free
linux /boot/memdisk
initrd paragon/bootcd.iso
append iso

А вот это уже интереснее, раскатка образов windows:
Spoiler
menu begin
menu title Установка Windows

label ..
menu exit

label Установка Windows 7 Профессиональная x64
kernel clonezilla64/vmlinuz
append initrd=clonezilla64/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -p poweroff restoredisk win7x64 ask_user" ocs_prerun1="mount -t cifs -o user=guest,password=NULL //192.168.0.50/images /home/partimag" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla64/filesystem.squashfs
text help
ВНИМАНИЕ!!! Установщик удалит все данные на выбранном диске и установит образ Windows 7 Профессиональная 64 бита. После установки загрузить gparted и расширить системный раздел до целого диска.
endtext

label Установка Windows 7 Professional x86
kernel clonezilla32/vmlinuz
append initrd=clonezilla32/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -p poweroff restoredisk win7x32 ask_user" ocs_prerun1="mount -t cifs -o user=guest,password=NULL //192.168.0.50/images /home/partimag" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla32/filesystem.squashfs
text help
ВНИМАНИЕ!!! Установщик удалит все данные на выбранном диске и установит образ Windows 7 Профессиональная 64 бита. После установки загрузить gparted и расширить системный раздел до целого диска.
endtext

label Установка Windows 8 x64
kernel clonezilla32/vmlinuz
append initrd=clonezilla32/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -p poweroff restoredisk win8x64 ask_user" ocs_prerun1="mount -t cifs -o user=guest,password=NULL //192.168.0.50/images /home/partimag" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla32/filesystem.squashfs
text help
ВНИМАНИЕ!!! Установщик удалит все данные на выбранном диске и установит образ Windows 7 Professional 64 бита. После установки загрузить gparted и расширить системный раздел до целого диска.
endtext

label Установка Windows 8 Профессиональная x64
kernel clonezilla32/vmlinuz
append initrd=clonezilla32/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -p poweroff restoredisk win8prox64 ask_user" ocs_prerun1="mount -t cifs -o user=guest,password=NULL //192.168.0.50/images /home/partimag" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla32/filesystem.squashfs
text help
ВНИМАНИЕ!!! Установщик удалит все данные на выбранном диске и установит образ Windows 7 Professional 64 бита. После установки загрузить gparted и расширить системный раздел до целого диска.
endtext

label Установка Windows 10 Домашняя x64
kernel clonezilla32/vmlinuz
append initrd=clonezilla32/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -p poweroff restoredisk win10x64 ask_user" ocs_prerun1="mount -t cifs -o user=guest,password=NULL //192.168.0.50/images /home/partimag" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla32/filesystem.squashfs
text help
ВНИМАНИЕ!!! Установщик удалит все данные на выбранном диске и установит образ Windows 7 Профессиональная 64 бита. После установки загрузить gparted и расширить системный раздел до целого диска.
endtext

label Установка Windows 10 Профессиональная x64
kernel clonezilla32/vmlinuz
append initrd=clonezilla32/initrd.img boot=live union=overlay config components noswap locales=en_US.utf8 edd=on ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -p poweroff restoredisk win10prox64 ask_user" ocs_prerun1="mount -t cifs -o user=guest,password=NULL //192.168.0.50/images /home/partimag" ocs_live_extra_param="" keyboard-layouts=NONE ocs_live_batch="no" nosplash noprompt fetch=http://192.168.0.65/tftpboot/clonezilla32/filesystem.squashfs
text help
ВНИМАНИЕ!!! Установщик удалит все данные на выбранном диске и установит образ Windows 7 Professional 64 бита. После установки загрузить gparted и расширить системный раздел до целого диска.
endtext

menu end


Обратите внимание, если вы для работы будете использовать gparted или clonezilla нужно будет добавить http сервер в сеть. Можно вынуть из chroot родной httpd вот таким конфигом:

Код: Выделить всё

ext_addr="*"
chroot "/"
logdir "/var/www/logs"

server "default" {
        listen on $ext_addr port 80
        connection { max request body 10000000000 }

        location "/tftpboot*" {
                directory auto index
                root "/home/tvema"
        }

        location "*.php" {
                fastcgi socket "/var/www/run/php-fpm.sock"
        }

        location "/cgi-bin/*" {
                fastcgi

                # The /cgi-bin directory is outside of the document root
                root "/var/www"
        }


        root "/var/www/htdocs"
}

types {
        include "/usr/share/misc/mime.types"
}


Образы очень плохой, самой худшей в мире операционки windows можно создать в virtualbox, это очень просто. Предоставленный мной конфиг спрашивает только на какой из дисков раскатать операционку, после чего раскатывает и выключает комп. Но я никому не рекомендую использовать windows!
Само собой наполнение сервера файлами для загрузки я оставляю читателю. Если кому-то непонятно как это сделать, чтож мой друг, пока тебе рано называть себя настоящим системным администратором.
Впринципе это всё! В этот раз я не стал разжёвывать абсолютно всё по пунктам. На самом деле информации должно быть достаточно чтобы неподготовленный человек мог развернуть сервер и начать изучение! Начинать следует с вики syslinux!
Linux kasak-pc 4.20.3-200.fc29.x86_64 #1 SMP Thu Jan 17 15:19:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Спасибо сказали: