Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||
www.lissyara.su
—> главная
|
|
Расписывать какая опция за что отвечает - не буду, это уже было. Конфиг обзываем, например, main-diskless. Добавляем такую строчку в /etc/make.conf:
|
После чего, пишем небольшой скрипт:
|
Ну, и сделав его исполняемым, запускаем. Ждём завершения работы, в указанной директории (/usr/local/tftp/freebsd.4.11 - но можно и поменять, в скрипте) должна появиться вся система, и ядро. По окончании работы скрипта, советую проверить наличие и того, и другово. Пока собирется мир и ядро, организуем сервер tftp, раскомментив и слегка подправив строчку в /etc/inetd.conf:
|
Даём команду inetd перечитать свой конфиг (если он у вас запущен и работает. Если не запущен, смотрите тут)
|
Если есть желание логгировать запросы к tftpd, добавляем в /etc/syslog.conf такие строки:
|
Затем создаём файлик и даём команду syslogd перечитать свой конфиг:
|
Также, нам необходимо организовать расшаривание создаваемой корневой системы по NFS, для этого, добавляем такие строки в /etc/rc.conf (значение опций можно посмотреть тут)
|
Также расшариваем будущую корневую ФС тонких клиентов, для этого вносим в файл /etc/exports такие строки:
|
На первый раз, можно запустить руками, или перезагрузиться, если мир с ядром уже собрались и проинсталлились. Если будте запускать руками, то я использую такой скрипт (вообще, он для перезапуска, чё-то у меня не получается штатными средсвами перезапустить всю эту кучу демонов, если правил /etc/exports)
|
Если используете виндовый DHCP - добавляете в него опции, у меня же стоит isc-dhcp, посему даю опции для него:
|
Ну, перезупускаем dhcp, и если мир с ядром установились, пробуем загузиться с машины подерживающей PXE. Должно получиться. Правда, сам клиент будет по мелочи ругаться - sendmail и прочие не запустятся. Также надо сразу подправить файл /usr/local/tftp/freebsd.4.11/etc/fstab до такого состояния:
|
Собственно, дальнейшие работы я производил с тонкого клиента (ага, загрузившись по сети на двухголовом ксеноне с гигабитной сеткой и 3Gb памяти :)))) - надо писать конфиги, и устанавливать иксы, ибо целью было, не посадить юзеров за консоль FreeBSD, а подрубить их к виндовому серверу терминалов. Есть и другой метод - jail - можно на родительской машине зайти в корневую директорию для клиентов, как в клетку. Но - мне этот мето не подходил - я экспортировал с 6-й FreeBSD, а на клиентах была 4.11 (перенёс с машины на машину tar`ом). Посему ищем самую мощную доступную машину, и грузимся с неё.
Для начала, надо передвинуть с /var всё, что нужно, т.к. на тонком клиенте /var находитя в оперативной памяти (надо сказать такую феню - если / смонтировать в режиме чтения-записи, то /var, /tmp и /dev не создаются в оперативке, а вот если всё в режиме только чтения - фря создаёт их в оперативке), а собсно из родного /var нам надо лишь /var/db/pkg который мы переместим в /usr/local/var/db/pkg. Для этого, надо завести переменную окружения $PKG_DBDIR. Для этого, правим файл /root/.cshrc, вносим в его начало такую строчку:
|
Делаем логоф-логон рута, проверяем:
|
Всё путём. Можно собирать из портов ПО. Нa 4.11 (на шохе - влёт) у меня не собрался xorg - но я и не особо пытался, посему собираем XFree4. C ним тоже не всё гладко, поэтому добавляем в /etc/make.conf такие строки:
|
После чего, собираем такой список софта:
|
Я собирал вначале rdesktop, а уже затем всё оставшееся (осталось то, что начиналось на заглавную букву X :)). Пока собирается ПО, настраиваем систему - я настроил русскую локаль, и привёл /etc/rc.conf к такому состоянию:
|
Далее, пишем такой набор скриптов:
|
|
После чего не забываем сделать их исполняемыми и заводим нужного юзера:
|
Ну, можно завести себя, чтоб ходить по ssh, можно разрешить вход руту. Кому как удобней - тут о секурности можно не особо беспокоится... Также кладём конфиг для иксов - /usr/local/etc/thin_configs/conf/xorg.conf.template
|
Выкладываем дефолтовый конфиг клиента - /usr/local/etc/thin_configs/defaults.conf, который сразу можно подравить под себя (имя домена и сервера)
|
Также, надо сделать симлинк /tmp --> /var/tmp
|
Пожалуй, всё. Перезагружаемся, смотрим - подымутся ли иксы. Должны подняться. Типичный конфиг клиента выглядит так:
|
Список драйверов можно глянуть тут:
|
Замечу, что драйвер vesa - практически универсальный, но не всегда он тянет большое разрешение и частоту обновления, он - выход на крайний случай, когда не удалось подобрать драйвер производителя.
Осталось последнее - у меня больше половины клиентов, без сетевух с поддержкой PXE - надо создать загрузочную дискету. Для этого выполняем такой набор телодвижений (без комментов, тока примечание - делалось на FreeBSD4.11 на 6.1 будет отличаться.)
|
Всё. Пишем полученный флоп такой командой:
|
P.S. C дискеты довольно долго грузиться, ядро всё же не маленькое...
P.S.2 Писалось после сделанного, мог чего-то забыть...
P.S.3 Не забываем сделать корень "ro"!
P.S.4 В некотором роде продолжение - тут. Про BIOS`ы и загрузку PXE.
размещено: 2006-11-17,
последнее обновление: 2009-08-18,
автор: lissyara
dimma, 2007-01-27 в 19:03:59
> (вообще, он для перезапуска, чё-то у меня не получается штатными средсвами перезапустить всю эту кучу демонов, если правил /etc/exports)
mountd(8) рекомендует делать проще:
After sending the SIGHUP (kill -s HUP `cat /var/run/mountd.pid`), check the syslog output to see if mountd logged any parsing errors in the exports file.
:)
Vetal, 2007-03-17 в 22:24:50
или
если в rc.conf присутствует строка mountd_enable="YES" то
sudo /etc/rc.d/mountd reload
sectoid, 2007-06-08 в 15:53:16
lis ты крейзи :) понятно что ты очень крут в бсде :)
но признавайся тебе за это миллион-два заплатили? :)
lissyara, 2007-06-08 в 16:07:21
нет, развлекался в свободное время :)
кстати, флэшки тоже прикрутил - http://forum.lissyara.su/viewtopic.php?t=3721
:)
Leo, 2007-07-17 в 17:30:10
С дискеты надо грузить как раз только pxe-loader сетевухи, а фрёвый pxeboot забирать уже по tftp (рекомендую назвать его наподобие freebsd.0 и включить в меню загрузки pxelinux-а).
И потом грузиться по сети - очень приятно.
Стоит собрать загрузчик с опцией LOADER_TFTP_SUPPORT=YES
lissyara, 2007-07-17 в 17:34:28
а вы пробовали сделать то, что советуете?
я - пробовал.
Если знаете как скормить лоадеру адрес от DHCP, и прочие параметры - поделитесь.
Leo, 2007-07-18 в 14:25:30
Пробовал. Именно то, что написал. Я так теперь всё время ОСи ставлю с бука.
Берём машину с dhcp , настраиваем (всем или только класу pxe-клиентов) загрузку
nextserver tftpserver;
filename pxelinux.0;
Настраиваем меню pxelinux (из того, о чём сейчас речь, надо вписать пунктом kernel freebsd.0 - обязательно наличие расширения ".0", подробности - в syslinux пакете). Про pxelinux пишу потому, что это самый простой и удобный способ делать выбор, что же грузить по сети (я так ещё винду ставлю, например, тестмем можно и пр.). Если нужно только фрю - пишем в filename только фрёвый pxe-загрузчик с любым именем. Если собирали загрузчик с поддержкой TFTP, то потом с того же tftp из каталога /boot/ берутся boot.4th, loader.4th ... loader.conf, ядро, fstab.
Или я не по делу столько понаписал?
lissyara, 2007-07-18 в 14:57:03
Понял. Ты грузишь лоадер линуксовый, а уже он, потом, запускает фряшный...
Так неинтересно... Вчистую хочется, без ошмётков от помоечных ОСей..
Leo, 2007-07-18 в 15:41:16
Значит не зря написал.
Это не ошмёток - это отдельный проект. В данной теме (загрузка по сети) - самое удачное решение.
Почему-то граб есть в портах, а этого - нет. Но это - лирика.
Основное было пропущено. Если не надо выбирать, что грузить, то всю часть про pxelinux можно пропустить. pxeboot сам по себе тоже прекрасно грузится
nextserver tftpserver.dns.name;
filename pxeboot;
lissyara, 2007-07-18 в 15:45:08
pxeboot грузится. с сети.
но не с дискеты же...
Leo, 2007-07-18 в 15:47:20
Я по смежной теме комментил тут
http://www.opennet.ru/base/sys/freebsd_remote_install.txt.html
Leo, 2007-07-18 в 15:49:49
Да что ж за бедулька-то! :)
С дискеты грузится etherboot (http://rom-o-matic.net zdsk образ), а он уже получает айпи, грузит pxeboot и т.д.
Leo, 2007-07-18 в 16:02:38
Разница в том, что таким образом с дискеты считывается 30К (заменитель бутрома новых сетевух), что занимает буквально пару-тройку секунд
lissyara, 2007-07-18 в 16:03:30
ты пробовал?
а я пробовал - эта гадость с рекомендованого сайта - всего лишь кривая неполноценная реализация PXE и параметры полученные от DHCP передавать лоадеру она не умеет!
А он без них не знает что делать - потому как брать их с серевера не умеет. Умеет лишь пользоваться полученными - и то не всеми (например что такое гейт и маршрутизация - он не знает - хотя тот же PXE знает и умеет ими пользоваться).
Leo, 2007-07-18 в 16:52:10
Я - делал
Реализация достаточно прямая, все основные параметры (адрес-маска-днс-гейт-тфтп-бутфайл) передаются и получаются.
Возмоджно, с маршрутизацией есть проблемы. Я не наблюдал, т.к. всё было в одном сегменте (что не редко). Так - точно работает.
lissyara, 2007-07-18 в 16:57:28
Фря какая? Я на 4.11 гонял.
===========
или за прошедшие 9 месяцев ихний лоадер поумнел...
Leo, 2007-07-18 в 17:59:10
У меня везде 6
Лоадер, как мне кажется, нормально работал достаточно давно.
Etherboot 5.4.0 - PXE is now supported.
А 5.4.1 сделан 2005-09-08 07:19
mak_v_, 2007-07-22 в 20:31:29
Привет Лис, продолжаю умилятся твоей хитрости
есть такая задача :
1)сделать загрузку по сети тонких клиентов
2)на стороне клиента оставить звук,X-ы + приложения(браузер, Sip-телефон(софтовый))
Реально ли это и нету ли у тебя взятся за подобное за умеренную плату?
[url=mak_v_@pochta.ru]
dm, 2009-01-08 в 0:06:42
Накатил это дело на 7RС1, с ядром просто не вышло пришлось брать свое и резать.
много но...
1. Добавив в фстаб 192.168.*.*/usr/ports rw 0 0 нада еще и добавить в /usr/exports/ и как-то кривовато у меня оно запахало...
2. не получаеться сменить руту пассворд пишет что не может залочить мастер.пасворд, неполучаеться создать юзверя.. самая главная проблемма
3. так чуть я недопонял а как с /var /tmp и свапом ?
В хандбуке чет написано но интересно Ваше решение вопроса Лис.
Алексей, 2009-04-08 в 4:41:50
много полезного, но я решил проще - потратился на лицензии wtware - стоят недорого, а работу сильно упрощают, не у всех хватит знаний на то, что описано в статье, а работать нужно.
AnticoO, 2009-04-15 в 11:27:47
На #uname -rm
7.1-RELEASE i386
добавление пользователя (pw, adduser, sysinstall etc) вылетает с ошибкой passwd file update: Inappropriate ioctl for device
Гугленью не поддалось, у меня во всяком случае... (был ряд пассажей про то, что места не хватает на /, но
# df -a
Filesystem Capacity Mounted on
192.168.11.1:/var/tftpboot/bsddiskless71/ 5% /
Ну и xorg в самом конце сборки выдал ошибку, что он не может завести пользователя.
Жаль, что не получилось, очень хотелось завести всё это дело :-)
lissyara, 2009-04-15 в 11:41:28
Навскидку - два варианта решения проблемы
1. man pw
2. man mount_nfs
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [22 шт.]