Удаленная загрузка ОС с кальки

Возникла необходимость устанавливать разные ОС с сети, т.к. все чаще встречаются устройства без ЦД/ДВД приводов, а держать на каждую ОС отдельную флешку не хочется.
Было прочитано некоторое число статей на эту тему и выбран простейший вариант: dhcp(dnsmasq) + tftpd + хвостики от syslinux + подготовленные образа нужных систем.
В итоге: установка winxp запускается и идет без проблем; в win7 запускается только winpe, а установку приходится запускать вручную с сетевого диска; запустить кальку удалось только в варианте cls, потому как загружаю образ полностью в память, но это пока в процессе.
Походу процесса возникла мысль добавить подобный функционал в поставку CDS, и устраивать загрузку терминалов с сервера. Сразу возникли следующие проблемы:
1 - нужно собрать минимальный образ системы для загрузки в память, что бы с него запустилась сетка и загрузилась нужная система;
2 - как загружать систему, из сквоша или с рута на сетевом диске.
Пока не решены эти вопросы дальше двигаться смысла нету. Прошу сообщество обсудить данный интересный вопрос. :slight_smile:

2 - как загружать систему, из сквоша или с рута на сетевом диске.

Имхо, расшаривание по NFS сквоша для машин где 2гига и более рама (если бортовое видео - чтоб забирало не более 64М) будет удобна для загрузки и отключения от nfs. Исхожу из опыта загрузки с флешки в режиме docache. Даже без свопа этого хватает для открытия десятка страниц хрома.
Если свитч - гигабитник, и комп от сети отключаться не будет, то можно распаковывать образ, либо монтировать куда либо подобно build-режиму и расшаривать по NFS его. Поможет сэкономить память.

В общем - получается стоит оставить оба варианта, и выбирать при загрузке.

Извиняюсь, тоже подобным занимаюсь.
Как указать в параметрах ядра, что сквош лежит в NFS?

Может эта команда при запуске ядра сгодится rootfstype=nfs ip=dhcp root=/dev/nfs?

Вообще по вопросам загрузки initrd лучше смотреть в эти файлы /usr/share/genkernel/defaults/{linuxrc,initrd.{defaults,scripts}}

Как указать в параметрах ядра, что сквош лежит в NFS?

Подозреваю, что необходимо нечто вроде cdroot=/dev/nfs cdroot_type=nfs

Пока пробую вариант с рутом на нфс-разделе. Доходит до подключения рута и ругается на невозможность подключить нфс-шару. :frowning: Хотя пару строк выше показывало что сеть есть. Пришлось использовать initrd-install, ессно. Пробовал вкомпилить ВСЕ сетевые дрова в ядро - не помогло.

Возможно стоит включить в ядре CONFIG_IP_PNP
У этого товарища спрашивал (немного знаком с ним лично), как у него все организованно, говорит, initrd вообще не используется.

Кстати, он хоть человек и занятой, но надеюсь не откажется ответить на пару вопросов. Были бы вопросы не тривиальные. Можете задать тут вопросы, а я при случае попрошу его зарегаться тут и ответить на них.

Именно без initrd загрузка и произошла. Все многочисленные манипуляции с initrd не дали никаких результатов, в busybox нету ничего для монтирования nfs разделов, можно, конечно, добавить это все туда руками, но это не “стандарт” для кальки, а как средствами системы добавить пакет с зависимостями в initrd я не нашел. :frowning:
Следующие шаги: перенести настройки пользователя на сервер, что делается достаточно просто создание доменного пользователя или монтирование хомяка с nfs-шары; решить вопрос с различными “темпами”, если у клиента много памяти можно их в нее же и засунуть, если мало то придется монтировать с сервера; опять же /var/calculate/remote на сервер; ну и финал - монтирование рутового раздела в R/O, что позволит подключать к нему несколько клиентов одновременно.
Может кто подскажет как отмониторить нагрузку на канал на сервере при загрузке клиента?
Кстати, параллельно заметил, что если в grub/syslinux корректно прописан рутовый раздел, то в fstab его можно и не прописывать :slight_smile:

Продолжу:
Монтирование рута с нфс в р\о из сисилинукса не прокатило, после монтирования загрузка дальше не идет :frowning: Придется прописывать перемонтирование рута в fstab-е уже в р\о. Или, пришла мысль, использовать схему билдера - рут в aufs + для каждого пользователя свой изменяемый “слой”, что позволит им нормально управлять своей системой, добавлять\удалять софт ну и т.д., при необходимости (как именовать “слои” на сервере с привязкой к конкретному клиенту, по маку карты или как? ).
Нарисовалась еще одна проблема: после выключения клиента попытка парезагрузить\выключить сервер приводит к невозможности завершить какой-то процесс и перезагружать\выключать его приходится “кнопкой”.
Темпы отлично переносятся на сетку, ну а профили пользователей пошли туда же вместе с подключением в домен.
Опять же, была замечена одна странность: после логина доменного пользователя в систему и запуска konsole команда id идентифицирует пользователя как guest, хотя вход выполнен доменным пользователем с другим именем, локальный пользователь guest на клиенте есть.