[ale] homemade bootdisk problems

James P. Kinney III jkinney at localnetsolutions.com
Fri May 17 15:02:44 EDT 2002


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.






More information about the Ale mailing list