PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PXE - Bootdiskette


ethrandil
2003-02-22, 15:15:56
Hi leute,
ich möchte mal 'aus dem Netz booten' ausprobieren. (Bootfile per DHCP), leider unterstützt ein Computer kein pxe ...
Es gibt sicherlich PXE emulierende Bootdisketten, ... Woher bekomme ich die (free)?

Eth

Harleckin
2003-02-22, 16:03:55
Im Rahmen eines Beowulf-Clusters hatte ich mit diesem Problem schon mal zu tun.
Damals mussten wir das komprimierte Kernelimage patchen, damit er sich das rootfilesystem über Netzwerk holt.
Der DHCP-Server lieferte in diesen Fall das filesystem mittles "tftp". Später käme noch "nfs" zum Zuge.

Probier mal 'etherboot'.

[1] http://freshmeat.net/projects/etherboot/


MfG

ethrandil
2003-02-22, 19:11:43
sieht gut aus, aber dann muss ich erstmal wieder linux installieren ;)

Harleckin
2003-02-22, 23:13:33
Eins sei aber noch gesagt.. einfach wird es nicht werden!

BTW: Knoppix beherrscht das booten über Netzwerk.


MfG

Unregistered
2003-02-22, 23:34:34
Im Linux Magazin (http://www.linuxmagazin.de/) 01/03 ist ein achtseitiger Artikel über das Booten über Netzwerk.

ethrandil
2003-02-23, 00:51:05
Originally posted by Harleckin
Eins sei aber noch gesagt.. einfach wird es nicht werden!

Hmmmm ich muss mir schnell wieder Linux besorgen ;) mit Cygwin bekomm ich das nicht 100 pro hin :)
Knoppix zum Kompilieren zu benutzen scheint mir nicht gerade ideal...
Aber wo liegt das Problem, wenn ich das fertig kompiliert habe? Dann gibt es doch ein Tool, um die Bootdiskette zu erstellen, oder?

Originally posted by Harleckin
BTW: Knoppix beherrscht das booten über Netzwerk.

MfG

Ja? Echt? Wie? Wo? PXE - kompatibel? Wie bekomm ich das hin?
Ich möchte das kernelimage komplett übers Netz schicken, per DHCP.!

ethrandil
2003-02-23, 00:54:08
Originally posted by Unregistered
Im Linux Magazin (http://www.linuxmagazin.de/) 01/03 ist ein achtseitiger Artikel über das Booten über Netzwerk.
Schade nur, dass er nicht online zur verfügung steht ...

Harleckin
2003-02-23, 01:41:02
Mit Knoppix meinte ich einen Client, der sich das rootfilesystem über Netzwerk holt.
Zuerst einmal muss der Server laufen!

Ich hab mal die HowTo's heraus gesucht mit denen ich mich herum geschlagen hatte.

[1] http://tldp.org/HOWTO/Diskless-HOWTO.html
[2] http://tldp.org/HOWTO/Diskless-root-NFS-HOWTO.html
[3] http://tldp.org/HOWTO/HOWTO-INDEX/networking.html
[4] http://tldp.org/HOWTO/Diskless-root-NFS-other-HOWTO-1.html


MfG

ethrandil
2003-02-23, 13:58:22
"special network cards implementing the RARP, BOOTP or DHCP protocols, cdroms, or bootloaders loaded from a boot floppy"

Nun, angenommen ich habe 20 Computer von denen 19 DHCP-Netzbooten per EEPROM Unterstüzen, und ich richte einen Server ein undundund. Kein Problem.
Aaaaber, der 20. Computer kann das nicht. Ich möchte weder den Computer außer Betrieb setzen, noch den Server umkonfigurieren (!).

Deswegen brauche ich ein Bootdiskette, die quasi ein EEPROM 'emuliert', die DHCP-Abfrage macht, den Kernel läd, booted, dann das Root-Verzeichnis mounted ...

Das ist ja alles einleuchtend, nur brauch ich diese Diskette. Kann sein, dass das auf den seiten Beschrieben ist, ich such mal :)

Eth

Harleckin
2003-02-23, 14:29:12
[1] http://www.kegel.com/linux/pxe.html
[2] http://www.linuxdocs.org/HOWTOs/Network-boot-HOWTO/
[3] http://syslinux.zytor.com/pxe.php

Ich hatte damals den Kernel prepariert und einfach auf eine Diskette kopiert. Dieser bootete und bekam seine IP vom DHCP usw. ...


MfG

ethrandil
2003-02-23, 22:47:20
Aaalso kleiner Statusbericht:
Ich hab heute mknbi installiert und ausprobiert *. Es funktioniert.
DHCP-Server war sone Shareware unter Win2k (*gg* ich weiß...)
Also Bootdiskette habe ich eine von http://www.rom-o-matic.com genommen.

Hat alles wunderbar funktioniert (bis auf ein paar komplikationen (siehe*))
Ich hatte da mal eine Idee:
Wie wäre es, wenn man ein DOS-Image übers Netz saugt.
Dieses Image erzeugt eine (Große) RAMDISK und sagt das ist c: .
Dann kopiert man aus dem Netz eine fertige Windowsinstallation auf c: und startet diese *tada* man _müsste_ doch ein frisches Windows haben, oder?

2. Möglichkeit
Man hat eine Lokale HDD (d: ) fürs Swap-File und mountet c: übers Netz ** (vorteil: Es muss nicht alles übertragen werden (!) )


*) Ich hab hier ja wie gesagt kein Linux mit gcc+nasm, daher hab ich den Server eines Freundes per ssh benutzt. Da dieser Server kein Diskettenlaufwerk hat habe ich einfach mal das Suse-Notfalldisketten-Image genommen. Das hat funktioniert. ich gehe davon aus, das es mit einer reinrassigen Dos-Startdiskette auch funktioniert.
**) vermutlich wird windows sagen c: sei kein blockorientiertes Gerät oÄ... da muss man wohl irgendwie eines Emulieren. Gibt es passende Software für DOS (fürchte nein ...)

So, wie sieht es da mit der Realisierbarkeit aus??
Hat da jemand Ahnung?

ethrandil
2003-02-26, 23:30:05
Hallo,
ich habe mich ein wenig mit der Thematik auseinandergesetzt. hier mein Ergebnis: (Ein Dos mit Netzwerksupport, von dem evtl.. Windows gestartet werden können wird :))

README.txt

DIE DOS-BOOTDISKETTE

Ich habe eine Dos-Bootdiskette erstellt, mit dem Programm in [1].
Die Konfiguration sollte folgendermaßen aussehen:
- Automatische Benutzeranmeldung. hier (Administrator passwd)
- Netzlaufwerk zuweisen c: \\king\win98 ACHTUNG: Die eingabe der IP ist nicht möglich!
- Protokoll TCP-IP Adresszuweisung durch DHCP. (Etwas langsam, aber IMHO besser. Geschwindogkeit wird mit netzboot besser.)
- Netzwerkkarte wählen. (ansonsten Standardeinstellungen) Viele Netzwerkkarten sind standardmäßig dabei, ansonsten muss ein Treiber vorhanden sein.
- Diese Dateien auf der Diskette speichern:
- xmsdsk.exe (aus [2]). Dieses Programmm erzeugt eine Ramdisk.
- XCOPY32.MOD (Aus dem Windowsverzeichnis)
- XCOPY.EXE (Aus dem Windowsverzeichnis)
- Zur Autoexec.bat hinzugefügt wird:

xmsdsk 128000 C: /y dH eine Ramdisk (c:) der Größe 128000kb wird ohne Nachfragen (/y) erstellt.
xcopy d:\windows\*.* c:\windows\ /s Das Netz-Windowsverzeichnis wird auf die Ramdisk kopiert.
xcopy d:\command.com c:\

(Nach dem Netzwerkstart)

- Nun kann die Konfiguration für später gespeichert werden.
- Als Ursprungsdiskette benötigt man eine DOS-Bootdiskette, die man zB mit 'sys a:' erhält. Es müssen die Dateien MSDOS.SYS, KEYBOARD.SYS KEYB.COM IO.SYS CONFIG.SYS AUTOEXEC.BAT HIMEM.SYS COMMAND.COM .
- Nun kann mit Fertigstellen die Diskette beschrieben werden.
______________________________________________________________________________

ETTERBOOT - BOOTBAR MACHEN

- Diskettenimage extrahieren mit 'dd if=/dev/fd0 of=dosimage'
- mit mkbni (vorher compileren und in /usr/local/lib/mkbni kopieren (AFAIK)) in ein etterboot.bootbares Image umwandeln.
'mkbni --format=bni --target=dos dosimage > dosImage.bni'
______________________________________________________________________________

ETTERBOOT - BOOTDISKETTE

- unter [3] ein Image herunterladen. (Floppy + richtige Netzwerkkarte)
- mit 'cat rom-o-matic-image.lzdsk > /dev/fd0' bekommt man eine Diskette, die per DHCP nach einer Datei sucht, um diese zu booten.
______________________________________________________________________________

DHCP - Konfiguration

- ich habe einen freeware-windows-dhcpserver verwendet...
- hauptsache ist, dass das image dosImage.nbi als 'filename' übergeben wird, und die TFTP-Konfiguration korrekt ist.
______________________________________________________________________________


[1] Backmaagic NetBoot 1.1 http://www.backmagic.de/download/download.htm
[2] Ramdisk http://www.simtel.net/pub/pd/4825.html
[3] Rom-O-Matic http://www.rom-o-matic.com
[4] Windows-On-CD http://www.heise.de/ct/english/99/11/206/

TODO:
Unter [4] befindet sich eine Anleitung, um Windows von der CD zu starten. Das müsste sich _ähnlich_ auf das Netzwerk übertragen lassen.
Wir haben nach o.g. schritten vollen Netzzugriff mit DOS, das heißt wir können (vom Speicher begrenzte) Datenmengen benutzen, sin d nicht mehr an Disketten gebunden.
PROBLEM: Beim Betrieb mit mehreren Rechnern darf der Rechnername nicht identisch sein ...

(c) by Ethrandil
ich bin in keinster Weise für die verlinkten Internetseiten und deren Inhalt verantwortlich :).

ethrandil
2003-02-26, 23:36:21
Originally posted by Harleckin
Ich hatte damals den Kernel prepariert und einfach auf eine Diskette kopiert. Dieser bootete und bekam seine IP vom DHCP usw. ...

MfG
Ich würde eher auf http://www.rom-o-matic.com ein Bootimage machen, und dann per dhcp ein mit mknbi versehenen selbstgebackenen Kernel übermitteln :)
Dann noch einen schönen NFS-Root, und die Welt ist in Ordnung ...

Eth

harleckin
2003-02-27, 13:47:11
Die URL ist verdammt gut.

Wenn mehrere verschiedene Clients auf das gleiche Win98 zugreifen (sollen), geht es mit den Problemen erst los.

Eine Möglichkeit wäre für jeden Client ein eigenes Win98 Share anzulegen, was die individuelle Konfiguration enthält.

Nachteile:
-zeitintensiv in der Administration
-hoher Platzdarf auf dem Server

Vorteil:
-exakte Konfiguration


Ein zentrale Konfiguration ist in Bezug auf Verwendung von Win98 in meinen Sicht unmöglich.


MfG

ethrandil
2003-02-27, 23:22:19
so, nächstes Spielchen :)
Ethrandil kompiliert sich einen Kernel für den Netzboot.

Anleitung auf www.ltsp.org.
Eine Frage: Ich erzeuge _erst_ mit 'make bzImage' Das Bootimage, und dann mit 'make modules' die module? Müssen die Module nicht in das Image eingebunden werden??

Eth

harleckin
2003-02-28, 10:00:20
Stell am besten einen monolithen Kernel her, dann fallen deine Modulprobleme auf das erste weg.

Oder du löst es mit "initrd", welcher die Module aufnehmen kann. Bevor der Kernel versucht das Rootfilesystem zu mounten, wird ein Ramdisk angelegt in dem alle Module entpackt werden.
Somit wird gerade bei filesystemmodulen wie ReiserFS, das evt. zum lesen des rootfilesystem nötig ist, diese Methode angewendet.


MfG

ethrandil
2003-02-28, 14:37:05
hmm wo liegen denn diese Module?
EDIT: hmm 'lib/modules/++ ' vielleicht? :jediboom:

Harleckin
2003-02-28, 17:00:47
japp, aber erst nach "modules_install" ;)


MfG

ethrandil
2003-02-28, 17:07:40
Originally posted by Harleckin
japp, aber erst nach "modules_install" ;)


MfG
kl0ar :)
Ich hatte ein paar Probleme mit meinem Kernel :) Ich dachte mir : Ach, ich kompilier meine netzwerktreiber mal fest rein, besser isses". dummerweise läd ltsp die alle als Module ;)
Jetzt funktioniert alles wunderbar, ich brauch nurnoch ein root-verzeichnis, dass ich mounten kann.
Wie bekomme ich einb möglichst komplettes, Kompaktes Linux (für ltsp) ?

EDIT: Ich bin ja so blöde ... Ich hab mir einen boot-kernel mit openMOSIX gemacht, nur dummer weise wird ja beim ltsp-start ein anderer gemounted .. (oder) wäre ja echt schade ...