Rok temu w ramach długo oczekiwanych zajęć (
http://www.fizyka.umk.pl/~jkob/labul-wyklad.pdf - prezentacja rozwija się, str. mniej więcej od 47 przy aktualnym wydaniu, może jakiś przykład zerżniesz jako punkt wyjścia do doświadczeń) miałem okazję bawić się rozruchem przez sieć i męczyć prowadzącego pytaniami. Wyleciało mi tego sporo z czaszki, ale chętnie ją odświeżę, jeśli odwzajemnisz się kawałkiem samodzielności
Wygląda to mniej więcej tak, że po wyborze rozruchu z sieci karta klienta nawiązuje transakcję z serwerem DHCP skonfigurowanym tak, że w odpowiedzi, prócz adresu IP, wysyła on plik programu rozruchowego (np. pxelinux.0) lub bezpośrednio jądro. Zarówno ten plik, jak i "materiały rozruchowe" siedzą na serwerze TFTP, do którego klient musi mieć dostęp.
Załadowany PXELinux pozwoli Ci wybrać jądro z parametrami i initrd. Wtedy możesz sprawdzić czy wykonywany jest kod jądra (pierwsze komunikaty) oraz kod z initrd.
Ostatnim chyba krokiem tej zabawy będzie zapewnienie jądru dostępowi do głównego systemu plików. Można to zrobić np. przez zamontowanie go (przez dodanie parametrów na starcie) jako system plików NFS (np. z tej samej maszyny, która udostępniała jądro). Trzeba jednak do tego przygotować jądro: albo wkompilować na stałe obsługę rozruchu z NFS, albo przygotować initrd w celu dodania sterowników od tej obsługi - z initrd nie bawiłem się).
Wrócę jeszcze do pierwszego kroku: nie pamiętam, w jaki sposób ładowałem ROM z obsługą rozruchu przez LAN, kiedy karta sama z siebie nie dawała takiej możliwości. Odpowiedź siedzi, zdaje się, tu:
http://rom-o-matic.net/gpxe/gpxe-git/gpxe.git/contrib/rom-o-matic/ (generator obrazów dyskietek dla poszczególnych kart).
Tak wygląda ogólna idea, w razie potrzeby i przy odrobinie czasu mogę odkopac konfiguracje i spróbować postawić to na nogi (z QEMU jako klientem i DSL jako minidystrybucją odpalaną przez sieć).