Date: Mon, 04 Nov 1996 17:07:02 +0000 From: Matt Thomas <matt@lkg.dec.com> To: Karl Denninger <karl@mcs.net> Cc: hackers@freebsd.org Subject: Re: Blargh - BSDI disk labels Message-ID: <199611041707.RAA03867@whydos.lkg.dec.com> In-Reply-To: Your message of "Fri, 01 Nov 1996 18:00:51 CST." <199611020000.SAA14917@Jupiter.Mcs.Net>
next in thread | previous in thread | raw e-mail | index | archive | help
> > Blargh folks. > > FreeBSD doesn't understand BSDI disk labels. Like at all. > > There's no fix for this, is there? Here's a patch I made for 2.1.0 so I could mount my BSD/OS labels. It's ugly but it works... --- /sys/kern/subr_diskslice.c Tue May 30 08:05:51 1995 +++ ./subr_diskslice.c Mon Nov 4 17:03:58 1996 @@ -748,17 +748,27 @@ } if (pp->p_offset != start) { if (sname != NULL) { - printf( -"%s: rejecting BSD label: raw partition offset != slice offset\n", - sname); + if (sp->ds_type == 159 /* BSD/OS */ && pp->p_offset == 0) { + printf( +"%s: BSD/OS BSD label: restricting to diskslice\n", sname); + pp->p_offset += start; + pp->p_size -= start; + if (pp->p_size > sp->ds_size) + pp->p_size = sp->ds_size; + } else { + printf( +"%s: rejecting BSD label: raw partition offset (%d) != slice offset (%d)\n", + sname, pp->p_offset, start); + } slice_info(sname, sp); partition_info(sname, RAW_PART, pp); } - return ("fixlabel: raw partition offset != slice offset"); + if (pp->p_offset != start) + return ("fixlabel: raw partition offset != slice offset"); } if (pp->p_size != sp->ds_size) { if (sname != NULL) { - printf("%s: raw partition size != slice size\n", sname); + printf("%s: raw partition size (%d) != slice size (%d)\n", sname, pp->p_size, sp->ds_size); slice_info(sname, sp); partition_info(sname, RAW_PART, pp); } @@ -783,8 +793,8 @@ || pp->p_offset + pp->p_size < pp->p_offset) { if (sname != NULL) { printf( -"%s: rejecting partition in BSD label: it isn't entirely within the slice\n", - sname); +"%s: rejecting partition %c in BSD label: it isn't entirely within the slice\n", + sname, 'a' + part); if (!warned) { slice_info(sname, sp); warned = TRUE; -- Matt Thomas Internet: matt@3am-software.com 3am Software Foundry WWW URL: http://www.3am-software.com/bio/matt.html Westford, MA Disclaimer: I disavow all knowledge of this message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611041707.RAA03867>