In article <00030420344201.01519@laptop>,
Declan Moriarty <[EMAIL PROTECTED]> wrote:
> On Sat, 04 Mar 2000, Stefan Bellon wrote:
> > > What's the lzone setting in the bios?
> >
> > I don't have such a setting in the BIOS!
> That's bad. It has to guess. LZONE is usually part of the disk spec.
> You can usually set the type (1-47) then user, auto, or none. You
> then get (on user only) the possibility to set these things up.
I can't do anything about it, can I?
> > > It should be '0' or 'number of tracks - 1' (524). But with 128
> > > heads showing, each 'track' in the bios is 8 tracks on the normal
> > > format (i.e.16 heads), and as your disk really only has 2 heads,
> >
> > No, it has 16! The geometry that is printed onto the hard disc is
> > (c/h/s): 4200/16/63. And the one recognised by Linux is (c/h/s):
> > 525/128/63.
> RIGHT. This might be something you could work with. There is a
> (rewritable) record inside each hd of it's specs. Maybe that was
> rewritten for lba access, and what might get you out of it is disk
> partitioning software from the manufacturer of the hd to set it for
> 'normal' (i.e. 4200/16/63)
> That's a problem. If lzone is number of tracks -1, then it would be
> 4199 with the correct spec, but 4192 when the 128 heads are converted
> to 16
Well, what does that mean? Is there a way out of the dilemma?
[snip]
> > What?
> If certain information is not on the correct part of the hd, you
> cannot boot from it. I speak from years of frustration in
> Dos/windoze. I'm not sure about linux - yet, but I presume it's the
> same.
Alright, but I assumed that when booting, the contents of the MBR
(sector 0 of the hard disc, if I understand things right) is loaded and
executed by the BIOS. There's a JMP at the start to some further init
code which calls the kernel at the specified position which was
calculated and written into the boot sector by LILO. So there's a
problem when LILO and the BIOS calculate in a different way. That's
where a problem could be. But why doesn't the boot sector get executed
at all? At least the "LI" string from "LILO" should appear on the
screen. But it doesn't. So the boot sector isn't executed at all. And
why is this? Surely not, because it doesn't get found? The only
solution - that springs to my mind now - is, that the BIOS checks what
it thinks to be a valid boot sector. And it decides that the LILO one
is no valid one. When copying to the floppy disc it works. So the BIOS
doesn't check the boot sector of floppy discs. Does this make sense? %-/
[snip]
> > And what happens, if I compile a new kernel? Then I have to copy
> > over the kernel as io.sys to the floppy, restart into dos mode and
> > make again "sys a: c:"? Well ... :-/
> I wasn't thinking that far ahead. I was contemplating one UMSDOS
> partition, /dev/hda1 as /boot with files placed by M$ software as
> io.sys and msdos.sys. These might get you going. Rename them
> 'vmlinuz' and System.map later if you can......I doubt whether
> msdos.sys is a very good name for system.map - linux would hardly
> swallow it. But the point of it would be that they would be placed in
> the relevant parts of the disk, as M$ stuff boots, doesn't it? And if
> you left the kernel as io.sys, that might get loaded without lilo by
> the BIOS. It's crazy, but it would get all linux software writers off
> their posteriors and onto your problem :>)) This would be patched -
> and fast!!
Well, I've heard (from a few friends of mine) that they discourage the
use of UMSDOS partitions. Even for booting. So I'll keep to the "512
bytes from the floppy disc, the rest from the hard disc" booting
scheme, I'm using now. :-}
But still, I have to remember to copy the new boot sector to my floppy
disc whenever I have run LILO. This isn't what I'd call a good
situation.
> > > One other idea worth a whirl is to use dd to read the boot
> > > record and write loads of copies of it. As dd just copies the
> > > data, you can 'format' your disk with boot partitions, (i.e. copy
> > > the boot sector to every sector in the /dev/hda1 partition) and
> > > then try again. This time it should read the boot sector, and
> > > then freeze, If this occurs, you have a location problem.
> >
> > I don't quite understand this.
> My idea (I was assuming the linux and M$ read the disk geometry
> differently, and presuming LILO places the boot sector or presumes
> the lzone in the wrong place) was to make EVERY sector a boot sector.
> That would make sure that whatever the boot sector was, it would
> point at a kernel. If the system then worked - great. Otherwise your
> offset would be wrong, and you'd hang on lilo.
So, MBR != MBR? If I understand you right, the lzone setting can change
the absolute place of the MBR on the disc? And if LILO uses another
lzone for its calculations than the BIOS when starting, then you'll get
my problems?
> > You suggest something like
> >
> > dd if=/dev/hda of=/dev/hda1 bs=512 count=1
> > dd if=/dev/hda of=/dev/hda1 bs=512 count=1 skip=1
> > dd if=/dev/hda of=/dev/hda1 bs=512 count=1 skip=2
> > dd if=/dev/hda of=/dev/hda1 bs=512 count=1 skip=3
> I've lost you. What I would do is copy the boot sector to a file with
> dd. Then copy that file to every sector as step 2. You're obviously
> thinking deeply with this above, and I'm still pretty new to linux. I
> just haven't got the hours in the day to sort myself out fully with
> it. Then write the kernel over this, and hope you don't overwrite the
> 'boot' sector
Well, I've worked with _working_ Linux systems and didn't think about
problems that could arise. So I'm more familar with Linux itself, than
with how it starts and how the BIOS works. A deficiency I have to pay
now. :-}
> Have you tried /boot as an UMSDOS partition?
No, but the 512 bytes of the MBR on a floppy disc work nice (as a
temporary solution)!
Thanks for all your explanations. They help a lot to understand things
better.
Greetings,
Stefan.
--
Stefan Bellon * <mailto:[EMAIL PROTECTED]> * <http://www.sbellon.de/>
10,000 ants dressed as rice & robbed a Chinese restaurant