Re: bootloader issue

"David Ross" <[email protected]>
Newsgroups gmane.os.netbsd.ports.atari
Message-ID <[email protected]>
> sdboot binaries in 1.6.1 and 4.0 look identical
> (since it's written in assembler), so there is
> some problem around bootxx binary in 4.0, I guess.
I thought it would be a bug in the first stage because I don't even see the 
banner from the second stage.  But I guess it must be something that's 
happening in the second stage before the banner gets printed.

> Hmm, in this case, what combination?
> sdboot: 1.6.1
> bootxx: 1.6.1
> boot.atari: 4.0
> installboot: 1.6.1
> Is this right? If so, we have to check the bootxx binary.
No, it is:
sdboot: 1.6.1
bootxx: 1.6.1
boot.atari: 1.6.1
installboot: 1.6.1
And with the version of installboot, I assume you mean the last version that 
was run.  I had to manually replace boot.atari to be the old one from 1.6.1 
and then the boot would work.  Before doing that, I'd get a crash (the one 
you wanted more info on) -- I didn't yet go back to get details on this 
crash because I assumed that the mismatch between xdboot/bootxx vs. 
boot.atari explains it entirely.

> So if you'll try to use different installboot version,
> you have to move bootxx and sdboot binaries into
> an appropriate directory.
When I say I ran the 1.6.1 installboot, what I mean is that I actually 
booted up the 1.6.1 sysinst on a 1.6.1 kernel and ran through the first part 
of the install procedure (being careful to preserve the filesystem).

> BTW, the superblock for root file system is located
> at right after first 8KB blocks (where bootxx is written).
> I'm afraid installboot writes something too much..
Ok, that makes sense.  For now I'll just assume it's an artifact of running 
the 1.6.1 installboot on top of a HEAD install.

You had mentioned adding printfs to the bootloader to try to pinpoint the 
error.  If you build it, I'll test it, as many times as it takes.  =)

David Ross
[email protected]


----- Original Message ----- 
From: "Izumi Tsutsui" <[email protected]>
To: <[email protected]>
Cc: <[email protected]>; <[email protected]>; <[email protected]>; 
<[email protected]>
Sent: Sunday, January 04, 2009 1:09 AM
Subject: Re: bootloader issue


> David Ross wrote:
>
>> Sysinst from HEAD runs installboot.  Here's the command line:
>> /usr/mdec/installboot -v /dev/rsd0c
>>
>> And the output:
>> installboot: Cannot stat /netbsd, no bootversion check done
>> Primary   boot loader: /usr/mdec/std/sdboot
>> Secondary boot loader: /usr/mdec/std/bootxx
>> Boot block installed on /dev/rsd0c (sector 0)
>> Boot preference set to NetBSD.
>
> Ok, then it looks worked as expected.
>
> I've also checked your disk image in the PR.
> It looks sdboot and bootxx are written into
> the first 8KB space properly.
>
> sdboot binaries in 1.6.1 and 4.0 look identical
> (since it's written in assembler), so there is
> some problem around bootxx binary in 4.0, I guess.
>
>> Now, after this is installed of course I get the "Halting..." message, so 
>> I
>> now have gone back to run installboot from 1.6.1.  /boot.atari is still 
>> the
>> one from HEAD so we have the mismatch.  I just tried fixing the mismatch 
>> by
>> dropping the boot.atari from 1.6.1 onto the root of the drive.  And... 
>> it
>> worked!  Well, sort of...
>>
>> The HEAD kernel boots up off the drive and here's what I get:
>> http://i39.tinypic.com/2cdki8x.jpg
>
> Hmm, in this case, what combination?
> sdboot: 1.6.1
> bootxx: 1.6.1
> boot.atari: 4.0
> installboot: 1.6.1
> Is this right? If so, we have to check the bootxx binary.
>
> As per cvs log, there is no particular change between 1.6 and 4.0
> around bootxx, so we have to check other possible changes,
> i.e. gcc4 or machine independent standalone libraries etc.
> (one possible problem is it's too large)
>
>> Two possibilities immediately come to mind:
>>   - Running the 1.6.1 installer slightly corrupted the drive.  In truth, 
>> I
>> didn't _just_ run the 1.6.1 installboot.  That alone fails.
>
> According to cvs log, milan support was added after 1.6
> and directories for boot binaries were changed
> from /usr/mdec/ to /usr/mdec/{std,milan}/ and
> installboot was also changed to search an appropriate dir
> per "-m" (milan) option.
>
> So if you'll try to use different installboot version,
> you have to move bootxx and sdboot binaries into
> an appropriate directory.
>
>> A simple fsck_ffs:
>> fsck_ffs /dev/rsd0a
>> ..does not fix the super block issue.  fsck_ffs complains about the same
>> issue but doesn't repair it.  Not sure how to correct this.  The -b 
>> option
>> looks intriguing but I'm not sure what block number I would need to 
>> supply:
>> http://netbsd.gw.com/cgi-bin/man-cgi?fsck_ffs+.atari+NetBSD-current
>
> "fsck_ffs -b 32" will work, as fsck_ffs(8) says:
>>>          -b block        Use the block number block as the super block 
>>> for
>>>                          the file system.  Block 32 is usually an 
>>> alterna-
>>>                          tive super block.
>
> BTW, the superblock for root file system is located
> at right after first 8KB blocks (where bootxx is written).
> I'm afraid installboot writes something too much..
>
> ---
> Izumi Tsutsui
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.