Subject: Re: sysinst fix
To: Frederick Bruckman <fredb@immanent.net>
From: Bob Nestor <rnestor@augustmail.com>
List: port-mac68k
Date: 06/15/2002 12:08:16
On Saturday, June 15, 2002, at 11:22 AM, Frederick Bruckman wrote:

> That's wierd, since mime/mailcap pretty much requires a suffix to do
> anything useful at all. In any case, I believe the preferred way is to
> simply include the patch in the body -- no mime attachments. I've
> never gotten complaints about that.

Tried that yesterday.  The file was to large and someplace along the way 
the mail got stopped.  This morning when I didn't see my message from 
last nite show up I just reposted with the changes attached as a file.  
I haven't bothered to figured out where the first mail message got 
stopped since I thought it was more important to try and get these 
changes out and tested for possible inclusion in 1.6.

> While I'm doing all that, let me ask you this: what happens if I have
> two or three ffs partitions, and two or there HFS partitions. Won't
> the second and third of each be "d" and "e" respectively, displaying
> two of the same in the menu? Then, of course, they won't match the
> kernel interpretation -- the kernel doesn't make that mistake -- and
> sysinstall will then newfs and try to mount the wrong partition. It
> certainly does that presently -- there's an open PR -- and I'm failing
> to see where you've addressed that problem in your patch.

The "d" partition isn't used by NetBSD for ffs parts since it is the 
RAW_PART on other ports.  The mac68k port uses "c" as the RAW_PART. I 
think this was a change that was made after 1.3 when the disksubr code 
was cleaned up and rewritten.  I seem to recall that "d" was usable in 
the mac68k port prior to that change.  Unfortunately the original code I 
wrote for sysinst was written and tested on a 1.3 system.  (There was a 
nasty disk bug in 1.4 that kept some systems from running at the time 
and mine was one of them.)

The "d" partition is used by NetBSD for an HFS part though.  The problem 
that you were probably seeing with multiple partitions showing up in 
multiple slots was because the kernel was merging the new on-disk label 
with the existing in-core label.  This didn't occur previously because 
the disksubr patch I submitted in 1999 wasn't committed.  Scott tipped 
me off to this problem since he was also seeing it on his systems.  I 
think I was able to reproduce it and solve it, but that's why I need 
others to test it to make sure.

So I think the problem you described is addressed, just not in the 
sysinst patches.  There is a patch to disksubr in there that must also 
be applied to the Kernel.  It zeros out the existing in-core label prior 
to reprocessing the on-disk Partition Map and creating a new in-core 
label.

You may notice there is a change in sysinst for what parts it assigns to 
different partitions. The "bsd_order" now excludes "d", and the 
"macos_order" includes "d".  I also added some comments to that section 
of code to help remind us in the future that changes in disksubr need to 
be matched with changes in sysinst.  I think that's what happened 
between 1.3 and now that caused the breakage.

You'll also notice that I left in the post-labeling checks that verify 
the new reprocessed on-disk label matches the expected in-core model.  
If it doesn't you'll get a display explaining the problem and sysinst 
will gracefully exit before zapping anything else on the disk.  At this 
point a reboot should have you up and running without a problem.

-bob