Re: Aufbau einer laufhaehigen FreeBSD-CD

From: J Wunsch <j(at)uriah.heep.sax.de>
Date: Sat, 17 Mar 2001 20:37:57 +0100

As Jörg Träger wrote:

> Ich bin dabei ein komplettes FreeBSD auf CD zum Laufen zu
> kriegen.Wie kann ich ein unter dem El Torito Standard zu nutzendes
> 2.88er Image ueberreden ein Dateisystem (cd9660) als root-fs zu
> mounten.

Fast überhaupt nicht.

Ich habe sowas mal geschrieben, war damals ein Auftragswerk für die
Firma Plutotech, die das gern für eins ihrer Produkte haben wollte.
Die sterblichen Überreste sind noch zu bewundern unter
/home/ncvs/src/sys/i386/boot/cdboot/Attic/, sofern Du einen CVS-Tree
bei Dir hast.

Als ich vor 1,5 Jahren dann Kenneth Merry persönlich getroffen habe,
hab ich ihn mal gefragt, was eigentlich aus diesem Projekt geworden
ist. Hat man eingestampft, weil letztlich der ganze CD-Boot-Sche***
bei PeeCees so ein Krampf ist, daß es praktisch kein einziges BIOS
gibt, das den Kram überhaupt richtig auf die Reihe bekommt. (Und
dabei ist El Torito schon sowas von PeeCee-haft krank, aber selbst den
damit verbrochenen Müllstandard haben sie am Ende nicht richtig
realisiert.) Das Adaptec-BIOS v1.23 war das Einzige, mit dem man das
überhaupt booten konnte (es konnte allerdings nur "emulation boot",
also der Bootstrap mußte in ein eigenes Floppy-Image wandern), alle
späteren Versionen wurden auch bei Adaptec wieder schlimmer, und den
IDE-Krempel kannst Du in dieser Hinsicht größtenteils gleich in die
Tonne treten. Der schafft es ja oft genug nicht mal, eine ,,normale''
CD zu booten, ohne dabei in einen Timeout zu rennen.

Dreh- und Angelpunkt ist, daß Dein Bootstrap den Kernel von der CD
lesen können muß. Dazu braucht er BIOS-Routinen, und diese sind
standardmäßig beim BIOS nicht dabei (sondern fallen unter die
sogenannten INT 13 extensions oder wie auch immer die Hersteller das
nennen). Wenn sie dabei sind, funktionieren sie oft genug nicht, weil
sie sonst kein Mensch benutzt und das dadurch auch nicht getestet
worden ist. So ungefähr sah jedenfalls das Fazit meiner damaligen
Arbeit aus. (Außerdem hat El Torito zwar allen Tod und Teufel
vorgesehen, aber nützliche Angaben wie etwa den Startsektor der
aktuellen Session, von der gebootet worden ist, sucht man vergeblich.)

Ich hatte mit besagten Adaptec-BIOS v1.23 letztlich eine vollständig
bootende CD hinbekommen (und damit mein Ziel erreicht). Was mir noch
so einfällt: /etc als union-Mount mit einer Floppy realisiert, /var
und /tmp als MFS (dafür muß man heftig an den rc-Scripts feilen, damit
das /var rechtzeitig von einem cpio- oder tar-Archiv populiert wird),
/dev als DEVFS, damit man sich um den Kram nicht auch noch kümmern
muß. Dein ,,und danach passiert gar nichts mehr'' Symptom könnte
übrigens sowas sein: wenn /sbin/init kein /dev/console hat, rennt es
gewissermaßen ins Leere. Meines Wissens werden device nodes auf einem
cd9660-Filesystem aber nicht unterstützt.

Du kommst wohl am Besten, wenn Du ein Szenario à la der zweiten CD-ROM
der FreeBSD-Distribution aufsetzt: root auf einem MD implementiert,
das als El Torito emulierte Floppy geladen wird, und dann die CD-ROM
selbst irgendwo anders mounten. $PATH entsprechend anpassen, ein paar
Symlinks brauchst Du noch (beispielsweise /usr/libexec/ld.so).

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 17 Mar 2001 - 20:50:47 CET

search this site