Доброго времени суток, уважаемые.
Появилась задача создать загружаемый по сети образ Linux, для использования на бездисковых тонких клиентах. Попробовал множество готовых решения на подобие thinstation, но их нужно сильно допиливать до требуемого уровня. Поэтому решено было создавать с нуля, а потом в процессе появления новых потребностей дорабатывать. По сути все сводится к созданию подобия live cd\usb образа. Порывшись в Интернете нешел способы создания подобных изделий при помощи live-helper и reconstructor, но получившиеся образы очень тяжелы и тормозны. Есть еще мануал по созданию livecd на базе Gentoo Linux, но как то не очень хочется с ним связываться.
Если кто то имеет опыт создания подобных вещей "руками" или обладает ссылками или документацией по данному процессу, поделитесь пожалуйста!
Создание образа Debian загружаемого по сети
Подождите, Вам нужно, чтобы бездисковые терминалы выполняли роль клиентов "Удаленного рабочего стола"? То есть сами процессы будут выполняться на сервере? Я Вас правильно понял? Ну, тогда Вам нужно копать в эту сторону - http://www.opennet.ru/base/sys/pxe_diskless.txt.html
Поэтому решено было создавать с нуля, а потом в процессе появления новых потребностей дорабатывать.
Поверьте моему опыту, допилить thinstation раз в 200 проще чем сделать из Debian компактный загружаемый образ. По сути дела вам придется сделать все то что уже сделали разработчики thinstation.
Тут конечно можно выбирать на какой стадии компактности остановиться... но в любом случае с thinstation будет проще.
Если образно то ваш вопрос звучит приблизительно так: не смог включить магнитофон решил делать музыку сам подскажите как один человек может заменить симфонический оркестр. :)
Подождите, Вам нужно, чтобы бездисковые терминалы выполняли роль клиентов "Удаленного рабочего стола"? То есть сами процессы будут выполняться на сервере? Я Вас правильно понял?
Нет, процессы будут происходить на тонком клиенте. Загрузка будет по pxe.
[quote="spock"]Поэтому решено было создавать с нуля, а потом в процессе появления новых потребностей дорабатывать.
Поверьте моему опыту, допилить thinstation раз в 200 проще чем сделать из Debian компактный загружаемый образ. По сути дела вам придется сделать все то что уже сделали разработчики thinstation.
Тут конечно можно выбирать на какой стадии компактности остановиться... но в любом случае с thinstation будет проще.
Если образно то ваш вопрос звучит приблизительно так: не смог включить магнитофон решил делать музыку сам подскажите как один человек может заменить симфонический оркестр. :)[/quote]
Я не собираюсь делать свой собственный дистрибутив. Просто хочу создать live-cd на основе имеющегося, но хочу сделать это с максимальной оптимизацией и кастомизацией.
В дебиане это довольно несложно. Как грузиться по сети уже знаете? Вкратце всё сводится к созданию клиентской ОС в любом каталоге, и утилитой debootstrap кидаем туда минимальный образ. После этого грузим его по сети и можем ставить в него всё что надо. Также туда можно делать chroot и устанавливать/удалять всё что пожелаете. У меня например DHCP, tftp, pxelinux стоят на одном сервере (роутере), а сам основной образ ОС который грузится и в котором идёт работа находится на сервере с быстрой дисковой подсистемой (аппаратный рейд 10 на САС винтах) и Гбитным каналом. Пока только тестирую такую систему, у самого ещё много вопросов :)
но хочу сделать это с максимальной оптимизацией и кастомизацией.
В этом то как раз и проблема, что бы приблизится по оптимизации к той же thinstation нужно будет пересобрать все пакеты что бы выставить нужные флаги и удалить ненужные зависимости. И то что получится действительно будет новым дистрибутивом :)
Если отказаться от слова "максимально" то тогда будет гораздо проще. Но и выигрыш по ресурсам будет не очень существенным.
В дебиане это довольно несложно. Как грузиться по сети уже знаете? Вкратце всё сводится к созданию клиентской ОС в любом каталоге, и утилитой debootstrap кидаем туда минимальный образ. После этого грузим его по сети и можем ставить в него всё что надо. Также туда можно делать chroot и устанавливать/удалять всё что пожелаете. У меня например DHCP, tftp, pxelinux стоят на одном сервере (роутере), а сам основной образ ОС который грузится и в котором идёт работа находится на сервере с быстрой дисковой подсистемой (аппаратный рейд 10 на САС винтах) и Гбитным каналом. Пока только тестирую такую систему, у самого ещё много вопросов :)
Да, pxe уже работает. Расскажите пожалуйста поподробнее о debootstrap или ссылочкой поделитесь.
[quote="spock"]но хочу сделать это с максимальной оптимизацией и кастомизацией.
В этом то как раз и проблема, что бы приблизится по оптимизации к той же thinstation нужно будет пересобрать все пакеты что бы выставить нужные флаги и удалить ненужные зависимости. И то что получится действительно будет новым дистрибутивом :)
Если отказаться от слова "максимально" то тогда будет гораздо проще. Но и выигрыш по ресурсам будет не очень существенным.[/quote]
Мне кажется разработчики thinstation не особо заморачивались с пересборкой пакетов, а вот то что они много лишнего поубирали это факт.
Да, pxe уже работает. Расскажите пожалуйста поподробнее о debootstrap или ссылочкой поделитесь.
Курите, там всё подробно и доступно. Будут вопросы - обращайтесь :)
h t t p://ajc.su/unix/linux-unix/bezdiskovye-rabochie-stancii-zagruzka-po-seti-polnocennogo-linux/
spock, а чем официальное руководство не устраивает?
http://www.debian.org/releases/stable/mips/apds03.html.ru
Вот пример с хабра habrahabr.ru/post/144822/
ASDev, newzenon спасибо! Похоже на то, что нужно.
XliN, это не совсем то, чего я хотел. Я хотел сделать все без всяких сборщиков, тем более онлайн, т.к. отсутствует возможность оптимизации.
[quote=spock]
Да, pxe уже работает. Расскажите пожалуйста поподробнее о debootstrap или ссылочкой поделитесь.
Курите, там всё подробно и доступно. Будут вопросы - обращайтесь :)[/quote]
У меня вот такой вопрос:
при данной конфигурации пользователи имеют возможность менять файлы на сервере, если в настройках nfs указать, что файловая система только для чтения, то некоторые службы типа syslog естественно начинают ругаться.
А у меня сценарий работы следующий:
- загружается образ настроенной системы с сервера, он доступен только для чтения, т.е. только загрузка в память клиента;
- во время загрузки запускается скрипт который опрашивает пользователя и по результатам монтирует определенные каталоги, которые в свою очередб доступны данному пользователю на запись;
- по завершению работы каталоги отмонтирываются.
Какие службы можно поотрубать, чтобы система безболезненно грузилась в режиме только чтения?
Еще некоторые службы ругаются на то, что не могут создать pid-файл. Можно как то перенести /var/run на сервер в каталог с возможностью записи или в ОЗУ клиента?
Еще такой вопрос:
Мой скрипт обращается к M$ ActiveDirectory за информацией о пользователях, я бы хотел это дело сделать более красиво, например заюзать lightdm или xdm. Теоретически этот сервер можно включить в АД, но куда мне впихнуть скрипт монтирования каталогов, что бы он отрабатывал после того как пользователь залогинится через lightdm?
Вы наверное не совсем поняли концепцию. У вас создаётся как бы линукс в линуксе, который и грузится по сети. В НФС вы экспортируете именно его, а не всю хостовую ФС. И доступ туда будет как к обычному линуху, т.е. вы в этом гостевом линухе создаёте пользователей и назначаете им права. Он точно такой же многопользовательский как и хостовая система, никаких отличий. Поэтому мне кажется что грузить в режиме только чтения не имеет смысла, просто создайте юзеров с ограничеными правами в гостевой системе и всё, пускай пользователи заходят под ними
Вы наверное не совсем поняли концепцию. У вас создаётся как бы линукс в линуксе, который и грузится по сети. В НФС вы экспортируете именно его, а не всю хостовую ФС. И доступ туда будет как к обычному линуху, т.е. вы в этом гостевом линухе создаёте пользователей и назначаете им права. Он точно такой же многопользовательский как и хостовая система, никаких отличий. Поэтому мне кажется что грузить в режиме только чтения не имеет смысла, просто создайте юзеров с ограничеными правами в гостевой системе и всё, пускай пользователи заходят под ними
Я прекрасно понял концепцию, говоря сервер я имел ввиду именно тот самый линукс в линуксе.
От идеи создания пользователей пришлось отказаться, т.к. эти пользователи как бы виртуальные и им не нужно давать писать на сервер потому, что их очень много, около 100. Сетка да и сервер просто лягут от такой нагрузки. Попробую более конкретно сформулировать чего я хочу получить:
1. Мне нужно создать образ initrd, который будет загружаться по сети, содержать в себе минимальный набор софта с X'ами и влезать размером примерно в ~100mb;
2. Образ должен загрузиться в память тонкого клиента как основная ось;
3. Скрипты монтируют в память клиента каталоги на удаленном сервере которые доступны для записи.
Что у меня не получается на данном этапе:
Пока я пытаюсь создать образ при помощи debootstrap, но он у меня получается гораздо больше 200Мб и по сети грузится достаточно долго. Образ этот содержит кучу лишнего. Я не знаю что именно мне из него можно удалить и как это сделать корректно.
В общем на данном этапе мне нужно сделать образ наподобие https://help.ubuntu.com/community/LiveCDCustomizationFromScratch, только миниатюрных размеров.
Но там используется пакет casper, которого в Debian нету.
1. Мне нужно создать образ initrd, который будет загружаться по сети, содержать в себе минимальный набор софта с X'ами и влезать размером примерно в ~100mb;
Сомневаюсь в реальности такой затеи с использованием debootstrap.
И да ядро тоже придется самому собирать, чтобы выкинуть лишнее, имхо тогда уж брать Gentoo.
[quote=spock]
1. Мне нужно создать образ initrd, который будет загружаться по сети, содержать в себе минимальный набор софта с X'ами и влезать размером примерно в ~100mb;
Сомневаюсь в реальности такой затеи с использованием debootstrap.
И да ядро тоже придется самому собирать, чтобы выкинуть лишнее, имхо тогда уж брать Gentoo.[/quote]
Ну например в thinstation нечто подобное реализовано, хотя она конечно основана на Crux. Gentoo хорошая система, сам ей пользовался долгое время, но не устраивает время сборки + дополнительное место занимается библиотеками которые нужны только в процессе сборки.
но не устраивает время сборки + дополнительное место занимается библиотеками которые нужны только в процессе сборки.
Так собирать на другой машине, и /usr/portage, /usr/src конечно же исключить.
За то нет таких жестких зависимостей как в Debian и можно значительнее ее покрамсать.