On Fri, 20 Mar 2009, Sven Mönnich wrote:

Hallo,

auf der Wiki Seite http://www.pug.org/mediawiki/index.php/Thin_Client_evo_T20

unter "filesys0.img zusammenbauen" beginnt es mit:
"Nun wird GRUB in das Image ..."

Kurz darüber steht:
"Der Erste Sektor ist der MBR wird aber von dem BIOS ignoriert"

Bootvorgang auf einem normalen PC:

Eigentlich sind im ersten Sektor einer Festplatte zwei wichtige Teile.
Der binaer Teil des MBR und die Partitionstabelle.

Beim Einschalten des Rechners sollte es so etwas wie einen Staffellaeuf
geben. Das BIOS des Rechners fuehrt ein paar Selbsttests und initialisierung
von Hardware durch und sollte die Kontrolle an den binaer Teil des MBR
weitergeben.

Ab diesem Augenblick spielt das BIOS keine aktive Rolle mehr sondern der
Code im MBR bestimmt was als naechstes passiert.  Einge DOS IRQ im Bios
werden noch verwendet, um auf die Festplatte zuzugreifen, fuer Tastatur
und Bildschirm.

Bei einem Windows MBR gibt es kein Menue sondern es wird direkt von der
ersten (und bei Microsoft einzigen) aktiven primaeren Partition
weitergebootet, das heisst der bin Code im MBR uebergibt die Kontrolle an
den ersten Sektor der ersten aktiven primaeren Partition.

Eigentlich faengt der erste Sektor einer Partition immer auf dem ersten
Sektor eines Tracks an. Da auf dem allerersten Track einer hdd schon der MBR liegt, kann dort nicht gleichzeitig der Startsektor einer Partition
liegen.
Deshalb gibt es ungenutzte Sektoren freie Sectoren im 1. Track einer hdd
vor der ersten Partition, die ab dem 2. Track anfaengt.


Bootvorgang auf dem Evo soweit wir das jetzt wissen.

Anstelle einer normalen Festplatte gibt es Flashspeicher der als hdd
angesprochen wird. Im Gegensatz zu einer normalen Installation faengt der
erste Sektor der ersten Partition aber schon direkt nach dem MBR an.
Es gibt keine ungenutzen freien Sektoren nach dem MBR bis zum ersten Sektor
der ersten Partition. Da Platz auf dem Evo im damals teuren Flash nicht
verschwendet werden sollte. Eigentlich eine gute Idee. Das erklaert warum
normal angelegte neue Partitionen im Image nicht funktionieren. Die haben
naemlich als default den ersten Sektor einer Partition auf dem ersten Sektor
eines Tracks.

Sehen kann man das in Linux mit "fdisk -l -u". Einfach mal die Ausgabe eines
normalen PC mit dem Image vom Evo vergleichen.

cfdisk bietet einen Menuepunkt "maximize partition", mit dem eine bereits
normal erstellte Partition nach vorne erweitert werden kann. Damit wuerde
ein eigenes Image dann auch eine Partition haben, die direkt nach dem MBR
anfaengt. Auf einem normalen PC wuerde ich davon aber dringend abraten!

Im Evo ist der normale Startvorgang auch etwas anders.
Der bin Code im MBR wird vom Evo BIOS nicht geladen und ausgefuehrt. Es wird
direkt der Startsektor der ersten Partition verwendet.
Aber es scheint einen Test im BIOS zu geben, der prueft ob der original, MBR vorhanden ist.

Beispiele dazu mit Erklaerung hab ich auf:
http://baldar.dyndns.org/dokuwiki/doku.php/compaq_evo_t20_thinclient/2_booting

Es ist auch nicht so einfach einen normalen Bootmanager wie grub oder lilo
im ersten Sektor der primaeren Partition einzubringen. Das Bios sorgt normal
dafuer, dass die erste Platte mit 0x80 von DOS aus gefunden wird. Leider
scheint das 0x00 zurueckzuliefern und wenn ein Evo Image in einer VM
verwendet wird, um dort den Bootmanger Eintrag zu erzeugen, dann
funktioniert es spaeter im Evo nicht mehr, die finden dann alle keine
Festplatte.

Erst neuere grub4dos Versionen suchen gruendlicher und ignorieren
fehlerhafte Werte die vom BIOS kommen.

Was fuer ein eigenes Image funktioniert:
Den Inhalt der original NTFS Partition im Evo fast komplett loeschen, in der
boot.ini grub4dos laden lassen. Als default der menu.lst eigenen linux
Kernel und initrd von grub4dos laden lassen.
Beispiele dafuer hab ich auf:
http://baldar.dyndns.org/dokuwiki/doku.php/compaq_evo_t20_thinclient/firmware_creation_using_grub4dos_on_ntfs_instead_of_a_patched_grub1

Dann braucht man nicht wie frueher eine eigene Firmware mit einem gepatchten
Grub1 erstellen. NTFS Partition mit ntfs-3g mounten und ein paar files
kopieren ist viel einfacher.

Also läuft ohne original MBR nix ? Kann ich GRUB nicht in den MBR installieren ?

ja, nein, noch Fragen?

fertige Images als Beispiel hab ich auf:
http://baldar.dyndns.org/pub/ftp/baldar/Compaq_Evo_T20/Firmwares/

cu Frank


--
"Text processing has made it possible to right-justify any idea, even
one which cannot be justified on any other grounds."
                -- J. Finnegan, USC.
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an