Даже не знаю к какому разделу стоило отнести данный пост, так что решил писать сюда.
Решил попробовать запустить calculate через PXE.
Что сказать - в общем идея перспективная, однако хватает недоработок.
К примеру - syslinux, имхо, не лучший выбор загрузчика.
Как минимум у него неудобная “деревянная” система конфигов, нет возможности (как минимум сейчас) выбрать разные iso-образы.
В связи с этим решил поставить pxe-загрузчик от grub:2
Тут я постараюсь расписать как это получилось сделать.
Сразу предупрежу - это не руководство к действию, скорее это дневник, чтоб самому не забыть и другим подсказать.
Установка pxe
Итак, первым делом я особо не мудрствуя следуя документации выполнил
cl-install -s cldg --pxe --march=i686
и стал разбираться что же получилось.
Создание и установка grub2pxe
Слегка погуглив и поковыряв документацию в сорцах я пришел к следующей последовательности действий:
cd /var/calculate/pxe
ln -s . boot
cp -a /lib/grub/i386-pc grub
cp -a /usr/share/grub/unicode.pf2 grub/
mkdir grub/locale
ls /usr/share/locale/*/LC_MESSAGES/grub.mo |
sed -rne 's:(/usr/share/locale/([^/]+)/LC_MESSAGES/grub.mo):\1 grub/locale/\2.mo:p' |
xargs -l1 cp -va
grub-mkimage --format=i386-pc --output=core.img --prefix='(pxe)/boot/grub' pxe pxecmd
cat grub/pxeboot.img core.img >grub2pxe
Все вышеперечисленные действия абсолютно не влияют на работоспособность ранее установленного pxe сервера. Чтоб заставить грузиться grub-овский загрузчик вместо syslinux-ово , нужно заменить в файле /etc/dhcp/dhcpd.conf строку
filename “pxelinux.0”; ## она установлена командой cl-install --pxe …
на строку
filename “grub2pxe”;
Все, теперь после перезапуска сервера dhcp (/etc/init.d/dhcpd restart) мы увидим, что с этого сервера грузится grub 1.99*
творческая работа по написанию конфига
Осталось самая малость - конфиг. /var/calculate/pxe/grub/grub.cfg
Скажу сразу - мой конфиг не является эталоном крастоы и удобства, но некоторый намек на это есть ;).
Поскольку я уже выше писал - что это не является туториалом, не буду прикреплять файл, а выложу его листинг здесь(ну люблю я красивости, цветные буковки) поскольку предполагаю вносить в него еще изменения.
Также необходим файл /var/calculate/pxe/grub/calculate.defaults
Следующего содержания
<code class="bash">
cl_defaults="real_root=/dev/nfs nfsroot=192.168.256.1:/var/calculate/pxe/calculate init=/linuxrc looptype=squashfs unionfs doload=squashfs,isofs,unionfs loop=/livecd.squashfs nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 console=tty1 udev noresume doscsi"
cl_lang=ru_RU
cl_domain=domain:192.168.256.1,domain_pw:SeCrEtClIeNtPaSsWoRd
## calculate_iso=/linux/cldg-20120119-i686.iso
</code>
Я решил включить в свой конфиг “переключатель разрешений” “(строки 45-80)”:http://pastebin.calculate-linux.ru/ru/show/3276 оставив по дефолту графический режим отключенным. Дело в том, что на некоторых комбинаиях видео+монитор я сталкивался с тем, что графическое меню grnu-а не отображалось.
Нечто подобное, как задел на будущее, я решил сделать и для локалей.
Собственно это лишь попытка скопировать меню выбора дистрибутива для загрузки “(85-98)”:http://pastebin.calculate-linux.ru/ru/show/3276 Поскольку этот конфиг - неточная копия конфига с моей загрузочной флешки. Кстати, в строках 35-40 видно как у меня iso-шки грузятся с флешки без необходимости распаковвывать iso-образ. К сожалению по сети такой вариант не прокатил, пришлось распаковвывать iso-шку в директорию, но как вы понимаете таких директорий можно налепить сколько угодно.
За обилие закомментированых кусков в конфиге прошу простить. Ну спешил я на последнюю маршрутку когда допилилвал этот скрипт конфиг. Если найду время - постараюсь завтра/на_днях допилить данный конфиг и вечером выложить, но не обещаю. Работы много, а сейчас важно “чтоб все свистело и крутилось”, сейчас не до красоты кода.