From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <45406C8A.3070301@smap.gov.ua> Date: Thu, 26 Oct 2006 11:06:34 +0300 From: LVU User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: ALT Linux Community References: <20061020193410.323d127e.cetus@newmail.ru> <20061023105454.424e92ed.cetus@newmail.ru> <20061023100042.704326b1@shadow.orionagro.com.ua> <20061024140847.19dd19b1@shadow.orionagro.com.ua> <20061024145450.GE28465@osdn.org.ua> <20061024194741.GY5512@osdn.org.ua> <453EFD29.5020609@smap.gov.ua> <453F13D8.1090001@smap.gov.ua> <453F3D05.1010906@smap.gov.ua> <453F6ACD.8030506@smap.gov.ua> <45404BB9.9060606@smap.gov.ua> In-Reply-To: Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit X-Virus-Scanned: amavisd-new at localhost Subject: Re: [Comm] LTSP-4 ALTMaster2.4 X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 08:13:11 -0000 Archived-At: List-Archive: List-Post: Здравствуйте! Aleksander N. Gorohovski wrote: >>> А просто загрузкой с дискеты (или с Lilo / com-файла) нельзя обойтись. >> В данном случае да. Либо загрузчиком с дискеты надо >> указывать ядру, откуда ему брать nfsroot. Правда, bootrom > > А как обычно можно это сделать? > Вроде DHCP уже передаёт эту информацию. Передает, но см. ниже. > Возможно я не до понимаю всю глубину и тайный замысел > создателей этой технологии, но как себе представлял > должно было бы быть не сильно сложно, а именно: > 1. > Не важно с какого устройста произошла загрузка терминала-клиента > (дискета, hdd, BOOT-ROM сетевой), он обращается на сервер к DHCP > чтобы получить свой IP (и пр. сетевые настройки), а также адрес > ядра и своей будущей корневой файловой системы. > 2. > Дальше, с этим адресом (корневой файловой системы) обращается > к TFTP чтобы загрузить ядро и корневой файловой системы > (или основную её часть) к себе в ОЗУ (или HDD, если есть) > 3. > Передать управление загруженному ядру. Наверное, как-то можно сделать и так (насчет дискеты и hdd), но в случае с бутромом есть отличия: 1. Код бутрома, который сидит в бутром-микросхемке на сетевой или в биосе, посылает широковещательный запрос: "а нет ли тут кого-нибудь, кто сможет меня загрузить?" 2. DHCP-сервер, который знает, что он умеет кого-то грузить (allow-booting, вроде, отвечает за это в dhcpd), отвечает: да, грузись. Вот тебе твой IP-адрес, вот тебе адрес файла, который надо грузить (вообще говоря, может лежать на другом хосте). Этот файл в моей конфигурации - загрузчик pxelinux (вроде может даже grub быть? не пробовал). 3. Бутром вытягивает загрузчик (по tftp), и передает управление на _него_. Тот лезет (опять по tftp!) на сервер, и пытается найти нужные настройки в pxelinux.cfg/... Порядок посика - в мануале на pxelinux. Если нашел, то в настройках указано ядро и параметры, которые надо ему передать. 4. Загрузчик вытягивает (и снова tftp!) ядро, и _возможно_ (не обязательно!) initrd (тоже указывается в конфиге pxelinux). После чего передает управление на ядро, указав ему соотв. параметры. В принципе, этого может быть достаточно, если всю корневую FS упихнуть в initrd, но так ее очень неудобно модифицировать. Поэтому 6. Ядру, среди прочего, могут быть переданы настройки nfsroot'а в виде root=/dev/nfs nfsroot=[:][,] ip=:::::: , причем последнее автоматом прописывается, если pxelinux'у дана опция IPAPPEND 1. 7. Ядро у меня монолитное, так что initrd ему не нужен. Оно спокойненько вытягивает по NFS корневую систему по мере надобности, запускает /sbin/init и живет долго и счастливо. > Странно, но получается, что это можно решить только > через PXE-загрузку. Вообще, хороший источник информации - http://syslinux.zytor.com/pxe.php. Там описано также, как обойтись без PXE-загрузки :) With best regards, LVU.