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