i386/121124: FreeBSD 6.3 installation deletes MBR partition
Dan Strick
dan_strick at sbcglobal.net
Fri Feb 29 02:10:03 UTC 2008
The following reply was made to PR i386/121124; it has been noted by GNATS.
From: Dan Strick <dan_strick at sbcglobal.net>
To: volker at vwsoft.com
Cc: bug-followup at FreeBSD.org, dan at mist.nodomain
Subject: Re: i386/121124: FreeBSD 6.3 installation deletes MBR partition
Date: Thu, 28 Feb 2008 17:42:26 -0800 (PST)
> From volker at vwsoft.com Thu Feb 28 16:58:12 2008
> To: bug-followup at FreeBSD.org, dan_strick at sbcglobal.net
> Subject: Re: i386/121124: FreeBSD 6.3 installation deletes MBR partition
>
> Dan,
>
> unfortunately your partition table seems to be seriously broken if the
> information you've posted is correct.
>
> slice 1 starts at 63, has a size of 8209152
> slice 2 starts at 8209214, size 1
> slice 3 starts at 8209215, size 8225280
> slice 4 starts at 16434495, size 143637165
>
> If you're manually calculating the start sectors, you'll see there's an
> overlap, which is deadly while installing an OS.
>
> Your partition table should look similar like:
> slice 1 start at 63, size 8209152
> slice 2 start at 8209215, size 1
> slice 3 start at 8209216, size 8225280
> slice 4 start at 16434496
>
> That could have been the reason why the partition editor gave you a warning.
>
> I'm wondering if the maintainers can see if there's chance to complain
> clearly about a broken partition table before writing a new mbr?
>
> But I suggest to backup all your data, repartition your disk and install
> everything.
>
Slice 2 is a dummy partition created for historical reasons. Once upon
a time there was a real slice 2. I needed more space in slices 1 and 3
so I reassigned the first half of slice 2 to slice 1 and the second half
of slice 2 to slice 3. I made slice 2 unused (partition table entry all
zeros). Then I reinstalled windows XP in slice 1. Windows XP renumbered
the slices, moving the unused slice to the end of the partition table.
My bootable FreeBSD slice became slice 2 and of course would not boot
that way and if it could have booted, it would not be able to find the
important file systems that had been in slice 4 and were now in slice 3.
So I booted the FreeBSD installation disk and fixed the partition table,
this time defining a non-empty partition in slice 2. There is nothing
wrong with having slice 2 overlap slice one as long as you don't actually
use slice 2.
My best guess is that sysinstall checked the MBR partition table for
sanity and decided to "fix" the overlap by arbitrarily deleting one of
the overlapping partitions. That was the wrong thing to do since none
of the overlapping partitions was involved in the FreeBSD installation.
What other operating systems do with their slices is their business.
Generating a warning message was plausible. Making gratuitous changes
to the partition table was not.
I believe it is common sense for an MBR partition table editor to change
only those partitions that it is explicitly told to modify. Sysinstall
was not told to modify either of the overlapping slices and should have
left them strictly alone.
Dan Strick
More information about the freebsd-i386
mailing list