Re: Umzug von IDE zu SCSI

From: Michael Haertl <michael.haertl(at)gmx.net>
Date: Wed, 14 Nov 2001 18:37:00 +0100

Oliver Fromme wrote:
> > Gibt es da keine
> > Probleme beim Booten, z.B. durch absolut referenzierte Daten
> > (da beim Booten ja z.B. noch kein Filesystem bekannt ist) ?
>
> Ich verstehe die Frage nicht. Kannst Du ein konkretes
> Beispiel nennen für so einen potentiellen Problemfall?

z.B. der Kernel: er liegt im Filesystem / , zum Zeitpunkt des Ladens
des Kernels ist aber noch kein Filesystemtreiber geladen.

Bei Linux ist es m.W. so, dass der Kernel absolut gelesen wird, d.h.
die Sektoren in denen der Kernel auf der Platte liegt werden in den
Bootloader "hardcoded". Deswegen muss man nach jedem Kernelneu-
compilieren Lilo nochmals aufrufen, um diese Werte im Bootloader zu
aktualisieren (soweit ich mich erinnere, man moege mich korrigieren).

Bei OS/2 ist (war zumindest bei Version 3) es so, dass bestimmte
Initialisierungsdateien ebenfalls an unverrueckbaren Stellen auf der
Platte vorhanden sein muessen, sonst geht der Bootvorgang schief.
Bei Scandisk, Defrag oder div. DiskDoctors etc. war das u.a. immer
als "fixed sector" markiert. Ditto bei MSDOS (msdos.sys, io.sys).

> Was das root-Filesystem ist, wird dem Kernel vom Boot-
> loader mitgeteilt [...] Im allgemeinen ist dies die a-Partition
> der gleichen Slice, von der das BIOS den Bootstrap geladen hat.
> [...]

Klar, das Bios laedt den Bootstrap/Bootloader, d.h. es liest den
ersten Sektor der Platte (512 bytes, unabhaengig vom Betriebssystem).

> Wenn das root-Filesystem einmal gemountet ist, [...]

Hier fehlt mir was. Mit 512 bytes Code/Daten, aus denen der
Bootloader besteht, "mountet" man m.E. nicht so schnell mal ein
Filesystem, welches Owner-bits, Unterverzeichnisse und
Fragmentierung usw. beinhaltet. Wenn ein neuer Kernel "installiert"
(d.h. nach / kopiert) wird, muss man m.W. ja auch nichts weiter
beachten, d.h. er kommt irgendwo zum liegen, wo in / grad Platz
ist, evtl sogar fragmentiert.

(Wenn das / Filesystem dann einmal ansprechbar/benutzbar ist, geht
es sicher leicht).

Konkret:
ich weiss nicht, wie es (FreeBSD) macht, ich ging bisher (gehe)
davon aus, dass es aehnlich wie bei anderen Betriebssystemen
passiert. Und da sieht es doch meist so aus:

 1. Bios loads sector 0 into memory[512] and jumps to &memory[0]
[1.b. optional: bootloader loads some kind of bigger bootloader from
      fixed adress]
 2. bootloader loads kernel from fixed adress from disk and starts it
 3. kernel initializes itself and basic standard drivers
 4. kernel runs startup scripts (to load the rest of the system)
 5. optional: user shell is started

Beim Umzug von / und sonstigen zum Booten wichtigen Dateien von
irgendeiner Platte auf eine groessere sehe ich speziell beim Punkt
1.b. oder 2. Probleme (ohne exakt zu wissen ob es bei *BSD welche
gibt).

-- 
/* Michael Haertl */
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 14 Nov 2001 - 18:39:27 CET

search this site