[ale] homemade bootdisk problems
Benjamin Dixon
beatle at arches.uga.edu
Fri May 17 17:04:17 EDT 2002
I agree! I haven't tried the changes yet (not at home) but I will tonight.
Sounds right on target (not that I would ever have thought of it!). Thanks
alot and I'll let you know how it goes!
Ben
On 17 May 2002, James P. Kinney III wrote:
> That was an exceptional amount of detailed information. Good job, Joe.
> That is an answer for the archives.
>
> Wow!
>
> Another episode in the continuing saga "Why I like Linux".
>
> On Fri, 2002-05-17 at 14:29, Joe Steele wrote:
> > You're doing everything right, except for one problem:
> >
> > The kernel's boot sector loader is a very primitive piece of code
> > (due to the constraint that it must fit in a single 512 byte sector).
> > While booting, it uses the system bios to read in the kernel one
> > track at a time. But in order to do that, the loader must tell the
> > bios how many sectors are contained on a track. The loader has no
> > easy way of learning this, so it does some guessing. First it
> > guesses 36 sectors per track, then 18, 15, and finally 9. For each
> > guess, it tries to read the last sector of track 0. If the read
> > fails, then it guesses again.
> >
> > In your case, /dev/fd0u1743 is laid out with 21 sectors per track.
> > Consequently, the loader's first guess will fail, but the second
> > guess (18 sectors per track) succeeds. The loader happily proceeds
> > reading in the kernel, track by track, 18 sectors at a time. This
> > leaves three sectors on every track unread, which pretty well
> > guarantees that the box is going to crash.
> >
> > Solutions:
> >
> > 1) multiple boot disks. I presume you don't want this, or you
> > wouldn't be attempting the higher density disk.
> >
> > 2) A boot loader such as lilo. Again, I presume you don't want
> > this, because it will require additional disk space.
> >
> > 3) Customize your kernel. In the file
> > "linux/arch/i386/boot/bootsect.S", find the lines near the end which
> > read:
> >
> > disksizes:
> > .byte 36,18,15,9
> >
> > Change the 36 to 21, and all should be well.
> >
> > 4) For the really adventurous, use vi on your kernel image :-O
> >
> > Search for the "Loading" string. On the line above that, at the end
> > of the line, you should find the following 5 characters:
> >
> > "$^R^O ^M"
> >
> > (Note that there is a tab character between the ^O and ^M)
> >
> > If you translate these to their decimal ascii codes, you get:
> >
> > 36 18 15 9 13
> >
> > These represent the different disk sizes the loader will guess
> > (followed by a ^M). Change the 36 to 21, and you should be set. The
> > 36 is the "$". To get the 21, type ctrl-V ctrl-U. When done, you
> > should have:
> >
> > "^U^R^O ^M"
> >
> > Save the file and give it a try. Other (less adventurous) ways of
> > editing the image should work as well.
> >
> > --Joe
> >
> >
> > -----Original Message-----
> > From: Benjamin Dixon [SMTP:beatle at arches.uga.edu]
> > Sent: Thursday, May 16, 2002 8:10 PM
> > To: Calvin Harrigan
> > Cc: ale at ale.org
> > Subject: Re: [ale] homemade bootdisk problems
> >
> >
> > Nah, I dd'ed using seek to move 338 records to the end of the kernel.
> > Something like:
> >
> > dd if=root.img of=/dev/fd0u1743 bs=1k seek=338
> >
> > Previous to that I dd'ed the kernel:
> >
> > dd if=kernel.img of=/dev/fd0u1743 bs=1k
> >
> > then:
> >
> > rdev /dev/fd0u1743 /dev/fd0u1743
> > rdev -R /dev/fd0u1743 0
> > rdev -r /dev/fd0u1743 16722
> >
> > the 16722 comes from 2^14 + 338 which is the number of records dd spit out
> > for the kernel rounded up.
> >
> > Then the root image dd as above.
> >
> > I thought maybe I had missed a step but I've tried it 4 or 5 times now
> > with no luck. Then I thought it might be a bios issue (the project
> > involves older 486 hardware) so I tried it on my P3 and it did the same
> > thing:
> >
> > "Loading................................................"
> > <reboot>
> >
> > If I DON'T put the root image on the disk, the kernel will boot and halt.
> > So I I must have done something wrong along the way, I just don't know
> > where to look exactly.
> >
> > Ben
> >
> > On 16 May 2002, Calvin Harrigan wrote:
> >
> > > When you say you dd'ed the root image right behind the kernel, do you
> > > actually do something like
> > >
> > > dd if=root.img of=/dev/fd0 BS=XX ?
> > >
> > > if so you are overwriting the kernel you just put there.
> > > Could you show the sequence of commands that you enter?
> > >
> > >
> > > Calvin...
> > >
> > >
> > > On Thu, 2002-05-16 at 18:42, Benjamin Dixon wrote:
> > > >
> > > > Hi all,
> > > >
> > > > I'm trying to put together a custom-made bootdisk for an embedded project
> > > > and have run into trouble. Ultimately I'd like to have the most basic
> > > > system plus svgalib on a single floppy so I've been messing with
> > > > superformat to get 1.68 to 1.7Mb out of a 1.44Mb floppy. I went through
> > > > and followed the instructions in the bootdisk howto and everything went
> > > > smoothly. I dd'ed the kernel to the disk, then dd'ed the root image right
> > > > behind it. However when I try to boot from the disk, it says "Loading"
> > > > and thne prints periods all the way across the screen and never gets to
> > > > decompressing the kernel. However I noticed that if I dd the kernel alone,
> > > > it will boot and eventually halt. I get the same behaviour with 2.2.20 and
> > > > 2.4.18 so I think its just something wrong with my procedure. Has anyone
> > > > run into to the "loading.........etc" problem before? What type of error
> > > > might that indicate? Has anyone used superformatted floppies for bootdisks
> > > > before? So far as I know, it should work.
> > > >
> > > > Ben
> > > >
> > > >
> >
> > ---
> > This message has been sent through the ALE general discussion list.
> > See http://www.ale.org/mailing-lists.shtml for more info. Problems should be
> > sent to listmaster at ale dot org.
> --
> James P. Kinney III \Changing the mobile computing world/
> President and CEO \ one Linux user /
> Local Net Solutions,LLC \ at a time. /
> 770-493-8244 \.___________________________./
>
> GPG ID: 829C6CA7 James P. Kinney III (M.S. Physics)
> <jkinney at localnetsolutions.com>
> Fingerprint = 3C9E 6366 54FC A3FE BA4D 0659 6190 ADC3 829C 6CA7
>
>
>
>
> ---
> This message has been sent through the ALE general discussion list.
> See http://www.ale.org/mailing-lists.shtml for more info. Problems should be
> sent to listmaster at ale dot org.
>
Today's Random Quote--------------------------------------
"Dont critisize a man till you've walked a mile in his shoes,
that way when you critisize him you're a mile away and have his
shoes."
- unknown
-----------------------------------------------------------
---
This message has been sent through the ALE general discussion list.
See http://www.ale.org/mailing-lists.shtml for more info. Problems should be
sent to listmaster at ale dot org.
More information about the Ale
mailing list