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.
> > 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
>
> > the lies to the hard disk controller get thicker and thicker. I'd
> > set lzone to '0' and run lilo again
>
> I can't set lzone in the BIOS.
>
> > .. If you make the same partition (tracks 1-3), format is for DOS,
> > and boot off a Dos floppy system disk and execute "sys A: C:"
> > will it boot from the hard drive? I bet it will.
> It will.
> > Then if you change partition type, reformat, run lilo, and boot
> > linux from it, it will not. Correct?
> It won't, correct.
> > ergo, the linux boot system of the distribution you use is not
> > recognised by the BIOS,
>
.......snip.........
> > or it's in the wrong part of the disk.
>
> 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.
> > Don't laugh, but you might try this. Write a floppy, with your
> > kernel named io.sys, your System.map called msdos.sys (Dos
> > attributes here are read-only, hidden, system) and some other file
> > called command.com. The Dos "sys" command might just place them for
> > you correctly. This would leave /boot as a Dos format disk, but you
> > should be able to run the system this way. This is heresy, I know,
> > but at least it's funny even if it doesn't work ;-)
>
> 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!!
>
> > 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.
> 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
>
> (I hope I got the skip syntax right, I have never used it before)
>
Don't look at me!
Have you tried /boot as an UMSDOS partition?
--
Regards,
Declan Moriarty.