LinuxForum.Fans
Тема

Создание образа Debian загружаемого по сети

Автор: spock 22 сообщений 4717 просмотров
#255977

Доброго времени суток, уважаемые.

Появилась задача создать загружаемый по сети образ Linux, для использования на бездисковых тонких клиентах. Попробовал множество готовых решения на подобие thinstation, но их нужно сильно допиливать до требуемого уровня. Поэтому решено было создавать с нуля, а потом в процессе появления новых потребностей дорабатывать. По сути все сводится к созданию подобия live cd\usb образа. Порывшись в Интернете нешел способы создания подобных изделий при помощи live-helper и reconstructor, но получившиеся образы очень тяжелы и тормозны. Есть еще мануал по созданию livecd на базе Gentoo Linux, но как то не очень хочется с ним связываться.

Если кто то имеет опыт создания подобных вещей "руками" или обладает ссылками или документацией по данному процессу, поделитесь пожалуйста!

#256029

Подождите, Вам нужно, чтобы бездисковые терминалы выполняли роль клиентов "Удаленного рабочего стола"? То есть сами процессы будут выполняться на сервере? Я Вас правильно понял? Ну, тогда Вам нужно копать в эту сторону - http://www.opennet.ru/base/sys/pxe_diskless.txt.html

#256032
"spock" написал:
Поэтому решено было создавать с нуля, а потом в процессе появления новых потребностей дорабатывать.

Поверьте моему опыту, допилить thinstation раз в 200 проще чем сделать из Debian компактный загружаемый образ. По сути дела вам придется сделать все то что уже сделали разработчики thinstation.

Тут конечно можно выбирать на какой стадии компактности остановиться... но в любом случае с thinstation будет проще.


Если образно то ваш вопрос звучит приблизительно так: не смог включить магнитофон решил делать музыку сам подскажите как один человек может заменить симфонический оркестр. :)

#256539
Lucky_spirit написал:
Подождите, Вам нужно, чтобы бездисковые терминалы выполняли роль клиентов "Удаленного рабочего стола"? То есть сами процессы будут выполняться на сервере? Я Вас правильно понял?

Нет, процессы будут происходить на тонком клиенте. Загрузка будет по pxe.

#256540
Thinker написал:
[quote="spock"]Поэтому решено было создавать с нуля, а потом в процессе появления новых потребностей дорабатывать.

Поверьте моему опыту, допилить thinstation раз в 200 проще чем сделать из Debian компактный загружаемый образ. По сути дела вам придется сделать все то что уже сделали разработчики thinstation.

Тут конечно можно выбирать на какой стадии компактности остановиться... но в любом случае с thinstation будет проще.


Если образно то ваш вопрос звучит приблизительно так: не смог включить магнитофон решил делать музыку сам подскажите как один человек может заменить симфонический оркестр. :)[/quote]

Я не собираюсь делать свой собственный дистрибутив. Просто хочу создать live-cd на основе имеющегося, но хочу сделать это с максимальной оптимизацией и кастомизацией.

#256548

В дебиане это довольно несложно. Как грузиться по сети уже знаете? Вкратце всё сводится к созданию клиентской ОС в любом каталоге, и утилитой debootstrap кидаем туда минимальный образ. После этого грузим его по сети и можем ставить в него всё что надо. Также туда можно делать chroot и устанавливать/удалять всё что пожелаете. У меня например DHCP, tftp, pxelinux стоят на одном сервере (роутере), а сам основной образ ОС который грузится и в котором идёт работа находится на сервере с быстрой дисковой подсистемой (аппаратный рейд 10 на САС винтах) и Гбитным каналом. Пока только тестирую такую систему, у самого ещё много вопросов :)

#256555
"spock" написал:
но хочу сделать это с максимальной оптимизацией и кастомизацией.

В этом то как раз и проблема, что бы приблизится по оптимизации к той же thinstation нужно будет пересобрать все пакеты что бы выставить нужные флаги и удалить ненужные зависимости. И то что получится действительно будет новым дистрибутивом :)

Если отказаться от слова "максимально" то тогда будет гораздо проще. Но и выигрыш по ресурсам будет не очень существенным.

#256615
ASDev написал:
В дебиане это довольно несложно. Как грузиться по сети уже знаете? Вкратце всё сводится к созданию клиентской ОС в любом каталоге, и утилитой debootstrap кидаем туда минимальный образ. После этого грузим его по сети и можем ставить в него всё что надо. Также туда можно делать chroot и устанавливать/удалять всё что пожелаете. У меня например DHCP, tftp, pxelinux стоят на одном сервере (роутере), а сам основной образ ОС который грузится и в котором идёт работа находится на сервере с быстрой дисковой подсистемой (аппаратный рейд 10 на САС винтах) и Гбитным каналом. Пока только тестирую такую систему, у самого ещё много вопросов :)

Да, pxe уже работает. Расскажите пожалуйста поподробнее о debootstrap или ссылочкой поделитесь.

#256616
Thinker написал:
[quote="spock"]но хочу сделать это с максимальной оптимизацией и кастомизацией.

В этом то как раз и проблема, что бы приблизится по оптимизации к той же thinstation нужно будет пересобрать все пакеты что бы выставить нужные флаги и удалить ненужные зависимости. И то что получится действительно будет новым дистрибутивом :)

Если отказаться от слова "максимально" то тогда будет гораздо проще. Но и выигрыш по ресурсам будет не очень существенным.[/quote]

Мне кажется разработчики thinstation не особо заморачивались с пересборкой пакетов, а вот то что они много лишнего поубирали это факт.

#256620
spock написал:

Да, pxe уже работает. Расскажите пожалуйста поподробнее о debootstrap или ссылочкой поделитесь.

Курите, там всё подробно и доступно. Будут вопросы - обращайтесь :)
h t t p://ajc.su/unix/linux-unix/bezdiskovye-rabochie-stancii-zagruzka-po-seti-polnocennogo-linux/

#256653

Вот пример с хабра habrahabr.ru/post/144822/

#257053

ASDev, newzenon спасибо! Похоже на то, что нужно.
XliN, это не совсем то, чего я хотел. Я хотел сделать все без всяких сборщиков, тем более онлайн, т.к. отсутствует возможность оптимизации.

#257315
ASDev написал:
[quote=spock]
Да, pxe уже работает. Расскажите пожалуйста поподробнее о debootstrap или ссылочкой поделитесь.

Курите, там всё подробно и доступно. Будут вопросы - обращайтесь :)[/quote]

У меня вот такой вопрос:
при данной конфигурации пользователи имеют возможность менять файлы на сервере, если в настройках nfs указать, что файловая система только для чтения, то некоторые службы типа syslog естественно начинают ругаться.
А у меня сценарий работы следующий:
- загружается образ настроенной системы с сервера, он доступен только для чтения, т.е. только загрузка в память клиента;
- во время загрузки запускается скрипт который опрашивает пользователя и по результатам монтирует определенные каталоги, которые в свою очередб доступны данному пользователю на запись;
- по завершению работы каталоги отмонтирываются.

Какие службы можно поотрубать, чтобы система безболезненно грузилась в режиме только чтения?
Еще некоторые службы ругаются на то, что не могут создать pid-файл. Можно как то перенести /var/run на сервер в каталог с возможностью записи или в ОЗУ клиента?

Еще такой вопрос:
Мой скрипт обращается к M$ ActiveDirectory за информацией о пользователях, я бы хотел это дело сделать более красиво, например заюзать lightdm или xdm. Теоретически этот сервер можно включить в АД, но куда мне впихнуть скрипт монтирования каталогов, что бы он отрабатывал после того как пользователь залогинится через lightdm?

#257859

Вы наверное не совсем поняли концепцию. У вас создаётся как бы линукс в линуксе, который и грузится по сети. В НФС вы экспортируете именно его, а не всю хостовую ФС. И доступ туда будет как к обычному линуху, т.е. вы в этом гостевом линухе создаёте пользователей и назначаете им права. Он точно такой же многопользовательский как и хостовая система, никаких отличий. Поэтому мне кажется что грузить в режиме только чтения не имеет смысла, просто создайте юзеров с ограничеными правами в гостевой системе и всё, пускай пользователи заходят под ними

#257866
ASDev написал:
Вы наверное не совсем поняли концепцию. У вас создаётся как бы линукс в линуксе, который и грузится по сети. В НФС вы экспортируете именно его, а не всю хостовую ФС. И доступ туда будет как к обычному линуху, т.е. вы в этом гостевом линухе создаёте пользователей и назначаете им права. Он точно такой же многопользовательский как и хостовая система, никаких отличий. Поэтому мне кажется что грузить в режиме только чтения не имеет смысла, просто создайте юзеров с ограничеными правами в гостевой системе и всё, пускай пользователи заходят под ними

Я прекрасно понял концепцию, говоря сервер я имел ввиду именно тот самый линукс в линуксе.
От идеи создания пользователей пришлось отказаться, т.к. эти пользователи как бы виртуальные и им не нужно давать писать на сервер потому, что их очень много, около 100. Сетка да и сервер просто лягут от такой нагрузки. Попробую более конкретно сформулировать чего я хочу получить:

1. Мне нужно создать образ initrd, который будет загружаться по сети, содержать в себе минимальный набор софта с X'ами и влезать размером примерно в ~100mb;
2. Образ должен загрузиться в память тонкого клиента как основная ось;
3. Скрипты монтируют в память клиента каталоги на удаленном сервере которые доступны для записи.

Что у меня не получается на данном этапе:
Пока я пытаюсь создать образ при помощи debootstrap, но он у меня получается гораздо больше 200Мб и по сети грузится достаточно долго. Образ этот содержит кучу лишнего. Я не знаю что именно мне из него можно удалить и как это сделать корректно.

#257868

В общем на данном этапе мне нужно сделать образ наподобие https://help.ubuntu.com/community/LiveCDCustomizationFromScratch, только миниатюрных размеров.
Но там используется пакет casper, которого в Debian нету.

#257870
spock написал:


1. Мне нужно создать образ initrd, который будет загружаться по сети, содержать в себе минимальный набор софта с X'ами и влезать размером примерно в ~100mb;

Сомневаюсь в реальности такой затеи с использованием debootstrap.
И да ядро тоже придется самому собирать, чтобы выкинуть лишнее, имхо тогда уж брать Gentoo.

#257983
newzenon написал:
[quote=spock]

1. Мне нужно создать образ initrd, который будет загружаться по сети, содержать в себе минимальный набор софта с X'ами и влезать размером примерно в ~100mb;

Сомневаюсь в реальности такой затеи с использованием debootstrap.
И да ядро тоже придется самому собирать, чтобы выкинуть лишнее, имхо тогда уж брать Gentoo.[/quote]

Ну например в thinstation нечто подобное реализовано, хотя она конечно основана на Crux. Gentoo хорошая система, сам ей пользовался долгое время, но не устраивает время сборки + дополнительное место занимается библиотеками которые нужны только в процессе сборки.

#257995
spock написал:
но не устраивает время сборки + дополнительное место занимается библиотеками которые нужны только в процессе сборки.

Так собирать на другой машине, и /usr/portage, /usr/src конечно же исключить.
За то нет таких жестких зависимостей как в Debian и можно значительнее ее покрамсать.

Войдите или зарегистрируйтесь, чтобы ответить.