On Mon, 06 Mar 2000, Stefan Bellon wrote:
[snip]
> I indeed have considered it. But: The 2 GB hard disc I'm using at the
> moment is only a temporary solution until I get my replacement 10 GB
> disc from Toshiba (remember my first posting: The 10 GB crashed it's
> second time). Then, on the 10 GB one I'll install Win 98, Win NT (I
> need both for some commercial products) and Linux. I'll boot Linux from
> the NT boot loader which works fine (it's just starting the LILO
> boot sector as a file). BUT: I need the latest BIOS, as the previous
> ones don't recognize a 10 GB disc! :-(
> 
I finally found your first post on www.mail-archive.com (seems to be a week
behind) and reread it just after I sent my last mail. I had previously deleted
it and I only have about a 3 email memory so I'm currently stuck on:
"unsubscribe linux-laptop"
"unsubscribe linux-laptop"
"unsubscribe linux-laptop"

> > > I don't understand why you're confused. If the BIOS checks a
> > > checksum of the boot sector, then it can do it not just only for
> > > the MBR, but for the boot sector called from this one as well, as
> > > it /expects/ the DOS MBR to be there. So it looks at the active
> > > boot partitions and checks its boot sector as well. I don't see why
> > > this couldn't apply here.
> > >
> > My understanding of the DOS/Windows boot sequence is that the BIOS
> > reads the MBR, which then loads the first boot sector marked as
> > active, which then loads the msdos.sys and related files.
> 
> [pretty nice ASCII art which however didn't use mono spaced font ;-)]
>
Grumble ... grumble ... grumble. Well, it looked good in kmail at the time.

> > When you do a "sys" command in DOS/Windows, it rewrites the boot
> > sector to point at the msdos.sys file, etc. The DOS MBR is the same
> > across all Microsoft OSs but the boot sector is unique by the way of
> > different versions and pointing to different disk locations. My Win98
> > release 1 reads "MSWIN4.1" were as my DOS 6.0/Win 3.1 reads
> > "MSDOS5.0". If the BIOS was checking the boot sector then any other
> > Windows version, or upgrade, or even reinstallation would not work
> > because the boot sector would be different. That's why I'm confused.
> 
> No, not necessarily. There's a boot sector checksum, isn't there? It
> would be possible that the BIOS checks this checksum. Not just the
> correctness of the checksum itself, but the value of the checksum. So,
> all the DOS (or MS) MBRs have *one* value as checksum.
Yes, the MBRs are the same, but the boot sectors are different. So the DOS MBR
pointing at the active partition with a Linux boot sector (LILO) should have
worked.
> If this isn't
> found: Don't boot. If it is found, then look at the active partition
> (the BIOS knows that the MBR with /this/ checksum does this as well)
> and do the same there.
> 
> It /would/ be possible. There's no other way I can explain what's
> happening.
> 
eat_crow () {
  open_mouth (wide);
  insert_foot (deep);
  swallow_pride (void);
}
OK, I've been working on 3 of my systems and I'm still confused. I thought that
the DOS MBR was the same across all MS systems but it doesn't seem to be.
Systems:
  1) Quantex laptop 333 w/6GB, Win98/Linux
  2) Compaq desktop 400 w/4GB, WinNT/Linux
  3) PB desktop 486/66 w/10GB, DOS/Win3.1/Linux

All 3 are now setup with a DOS MBR and LILO in the boot sector of the active
partition (linux). The first 220 bytes of the MBR in both the Nt and Dos/Win3.1
systems are exactly the same (as someone else suggested, the rest looks like it
might be partition table). The MBR of the Win98 is quite different (with only
the 3 text error messages apparently in common). The Dos/Win boot sectors are
completely different on each system with only the first, last, and a couple
single characters in common. As these are so different it's hard to imagine you
could checksum these in any consistent way and come up with a common value
between MS systems. One interesting note: all my Dos/Win boot sectors start
with the character "�" (0xeb), but all my Linux boot sectors (LILO) start with
"��" (0xfa 0xeb). (This is in khexdit, hexdump byte swaps the characters.) Maybe
it checks only first character? (Hummm, maybe not.)
 ...
OK, I just tried something really ugly ... hacking a LILO boot sector by hand
with dd.
  Try 1 - 010101010101010101 ... oops, guess that didn't work.
  Try 2 - 010101010101010101 ... oops, guess that didn't work.
  Try 3 - kcv^S!8$<beep>JH$&*s<beep><beep>kjauifba<beep>
     ... well, thats definitely not good.
   Try 4 - LILO: ... hey, wait a second, it worked, how'd that happen!
And it loaded linux just fine.

DISCLAIMER - This may be extremely dangerous and I take no responsibility for
any damage done, hard drive crashes, power failures, strife, disease, mass
kaos, inter-planetary shifts, global-thermo-nuclear war, or that coffee mug
your going to throw off the table and break when this doesn't work as
advertised.
I replaced the first character "�" (0xfa) with a "�" (0xeb) so LILO now reads
"��l...LILO....!.". I did it this way.
1) Make a copy of your LILO to work on:
    dd if=/dev/fd0 of=/good_LILO bs=512 count=1
2) Make the hacked LILO
    dd if=/good_LILO of=/hack_LILO bs=1 skip=1 count=1
    dd if=/good_LILO of=/hack_LILO bs=1 skip=1 seek=1 count=511
3) Copy it to new floppy (or if you're daring the hda1 assuming the MBR is
still a DOS MBR).
     dd if=/hack_LILO of=/dev/fd0 bs=512 count=1

It's a stretch, I know, but I'm out of ideas.
BTW, what does "m�isterstuck" mean? I assume "master note", Babelfish came back
with "master stucco" (I first misspelled it as "m�isterstruck" and got back
"master jerk"  which I though was more appropriate for the notebook).

Adrian

Reply via email to