Date: Fri, 16 Oct 1998 22:17:14 -0700 From: Mike Smith <mike@smith.net.au> To: Bruce Evans <bde@zeta.org.au> Cc: mike@smith.net.au, shimon@simon-shapiro.org, freebsd-current@FreeBSD.ORG, jkh@time.cdrom.com Subject: Re: Show Stopper? Failure to Install 19981014 Message-ID: <199810170517.WAA00708@dingo.cdrom.com> In-Reply-To: Your message of "Sat, 17 Oct 1998 14:51:01 %2B1000." <199810170451.OAA00376@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
> >It appears to be caused by not entering the root filesystem first. > >There's a test in the disklabel code which checks to see if the > >partition you have open to write the label starts at 0, and if not then > >it defaults to the 'a' partition. > > Labels should always be written using the RAW_PART partition ('c' on > i386's). If not, then they must be written using a partition that has > offset 0. If not even that, then the 'a' partition must have offset 0. > Unfortunately, newfs(8) writes labels to the same partition that it > is newfs'ing. I checked the history for this; it appears to have done this for a long time. There is also bogus code in sys/ufs/ufs/ufs_disksubr.c which checks the start of the partition to which the label is being written, and if that is not 0, uses partition 0 ('a') instead. It is this code which is returning EXDEV. > >Partitions are laid on disk in the order that you enter them. The 'a' > >partition is always reserved for the partition you mount on /. If you > > It's not reserved. It's just the default. It's reserved by sysinstall. > >don't enter this partition first, it won't be at the beginning of the > >disk, and any attempt to rewrite the disklabel will fail. > > > >Due to the way that sysinstall interacts with libdisk, this is > >difficult to get "right". We probably need a bandaid which insists > >that if you want to create an 'a' partition you must lay it down first. > > This is easy to fix by changing the (whole) test in writedisklabel() to > `lp->p_partitions[RAW_PART] == 0'. Even that is probably only necessary > to give the right errno (this condition is enforced in several places). > This might wake bugs in other code where partition 0 is magic. Exactly. More to the point, why has this symptom only just recently manifested? -- \\ Sometimes you're ahead, \\ Mike Smith \\ sometimes you're behind. \\ mike@smith.net.au \\ The race is long, and in the \\ msmith@freebsd.org \\ end it's only with yourself. \\ msmith@cdrom.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810170517.WAA00708>