linux-l: [The.Intruder at gmx.net: DRINGEND: LINUX aus Bootmana

Marco Tidow martidow at cs.tu-berlin.de
Mi Jan 14 21:28:06 CET 1998


(14 Jan 98:Matthias Kranz <linux-l at mlists.in-berlin.de>:)

>-----Forwarded message from "Axl (C)" <The.Intruder at gmx.net>-----
<[...]
>Geht alles prächtig. Nun habe ich aber bei der Installation von Linux
>auch diesen LILO konfiguriert. Ich habe die Linux-Root Partition (bei
>mir /dev/hdb7) als auch die DOS Boot-Partition der ersten Platte (womit
>ich also zum oben genannten OS-Loader komme) eintragen lassen (keine
>Fehlermeldungen!) und LILO im Superroot der Linux-Partition installiert.
>Wenn man mit der oben genannten Betriebssystem-Konfiguration LILO auf
>den Master-Boot-Sektor von C:\ legt, kann man nach dem nächsten Start
>zwar erstmal LILO benutzen und auch daraus Win 95 laden, aber dann hat
>es sich auch erledigt. C:\ enthielt nach dem Beenden von Win 95 und
>erneutem Warmstart NICHTS mehr. Dos erkannte kein System mehr
>("Betriebssystem fehlt) und alle Recover Versuche schlugen fehl.

Offensichtlich passten w95 die partition-table geometrie (MasterBootRecord) 
nicht mit "seiner" BIOS parameter-table im (DOS) boot-sector der C-Partition
zusammen... da reagiert es offensichtlich mit hektischen Korrekturen des 
C:-bootsectors... beim 1.Start fand es noch die alte DOS-Platten Geometrie 
im bootsector (disk-parameter-table) vor, nach reboot wurde es dunkel.  
Abhilfe: Hellsehen oder die "bootsect.dos" (von NT waehrend seiner 
Installation in C:\ gespeichert) Datei per binaerer Suche und/oder tool wie 
norton-diskedit in der C:-partition auftreiben, darin stehen die alten Werte. 
17h weniger...  allerdings musst Du dann auch noch die Partitiontable (MBR)
zurueckbiegen :-(  (macht von Hand keinen Spass).


Deshalb mal zwei kurze DOS "debug" (jaaaa :-) scripts,

das erste:
speichert die Partitiontable (MBR, 512 byte) ins file "parttbl0.bin".
 c:\>debug  <savpart0.dbg    ODER auch mit "symdeb.exe"
 c:\>symdeb <savpart0.dbg

das zweite:
UEBERSCHREIBT DIE VORHANDENE der als BIOS-device 0x80 fungierenden
Platte mit der Datei!!! (Achtung bei IDE-Wechselrahmen, eine zusaetzlich 
vorhandene SCSI rutscht runter auf 0x80 (bootdrive), wenn die IDE-Platte 
nicht drinsteckt!)

 c:\>debug  <loadptb0.dbg
 c:\>symdeb <loadptb0.dbg

am besten von Diskette DOS (3.30 - 6.xx) booten und von dort (A:) hantieren!
Und, fuer Leute die gern experimentieren, es gelten die ueblichen DOS 
Einschraenkungen (cyl.<1023, sector<64, hd<16), da ueber den alten 
BIOS-interrupt Int13 gelesen/geschrieben wird.


savpart0.dbg:
-------------------------------
a 100
int 13
int 3

* read 02  01 sector
rax 0201
* targetbuffersegment
res ds
* targetbufferoffset
rbx 0400
*   cyl-lsb  cyl-msb   startsector
*   7cccccc098sssss0y
rcx 0000000000000001y
* Kopf  Laufwerk (HD +80h)
rdx 0080
g=100
db 5c0 l40
nparttbl0.bin
rcx 0200
w 400
<con
       
--------------------------bis inkl. der letzen Leerzeile!!!

loadptb0.dbg
--------------------------bis inkl. der letzen Leerzeile!!!
a 100
int 13
int 3

nparttbl0.bin
l 400
db 400 l200
* write 03  01 sector
rax 0301
* targetbuffersegment
res ds
* targetbufferoffset
rbx 0400
*   cyl-lsb  cyl-msb   startsector
*   ........ ..        ......y
rcx 0000000000000001y
* Kopf  Laufwerk (HD +80h)
rdx 0080
g=100
<con

--------------------------bis inkl. der letzen Leerzeile!!!


ABER VORSICHT damit, ja???

>(ich bin kein Experte!!!) nehme an, daß LILO das Laufwerk C:\ ins LINUX
>Format umgewandelt hat und sich somit alle Daten der anderen 3 Systeme
>weg waren. 

Ne, ne, ist "bloss" einer von Millionen Sektoren futsch.
Kann aber schon etwas stoeren.  Kenn ich :-)

Marco




Mehr Informationen über die Mailingliste linux-l