Apparent regression in extended/logical partition handling

Doug Barton dougb at
Thu Aug 26 22:35:40 UTC 2010


FreeBSD 9-current can't "see" logical drives inside an extended 
partition unless all space is assigned to a logical volume, and all 
logical volumes are formatted with a file system. 7.3-RELEASE does not 
have this problem.

So I got a new HD, and wanted to put Windows, a fat 32 data partition, 2 
FreeBSDs, and Linux on it. After much juggling, cursing, etc. I finally 
hit upon a solution. Windows and FreeBSDs in primary partitions, and 
fat32-data and Linux in an extended partition. Voila!

My first pass at this configuration had the 3 primary partitions first, 
but the linux (ubuntu gnome to be specific) "Disk Utility" tool was 
showing all the freebsd-style partitions (ad[12]s[a-f]) as linux-style 
partitions (sdaN) under the extended dos-style partition, which not only 
looked odd, but other tools on the linux desktop (such as Nautilus) were 
confused by this. So I looked on line and found a how-to that said this 
is caused by having the extended partition last, and the confusion can 
be avoided if I put the extended partition 2nd, and the 2 FreeBSD 
partitions after it. So I did that, and unfortunately it did not help 
Nautilus be any less confused. However, it did lead to what I think is a 
regression in -current.

Specifically what I did was to boot Windows XP, delete all the 
partitions other than the XP partition (first primary dos-style 
partition) and then create a dos-style extended partition, and a logical 
drive inside of it, leaving room for linux in that same extended 
partition. Since I want that data volume to be fat32, and it is too 
large for windows to do it, I next installed FreeBSD 9-current, in a 
dos-style primary partition. I got it installed fine, but when I booted 
into FreeBSD 9 to format the logical volume it could not see it. fdisk 
showed the right information about the extended partition, but in /dev 
instead of seeing no ad0s2 and seeing ad0s5 like I expected instead 
there was no ad0s5 and there were ad0s2 entries that mirrored the ad0s3 
that FreeBSD 9 was installed on. IOW, I had ad0s3 and ad0s3[a-f] as 
expected, but I had the same for ad0s2 even though they were obviously 
not valid.

"Well that's odd" I thought, but undaunted I proceeded to install 
FreeBSD 7.3-RELEASE in the last dos-style primary partition. When I 
booted it I could see the expected set of entries in /dev, and was 
finally able to newfs the fat32 volume. After confirming that Windows 
can see the fat32 volume I proceeded to boot FreeBSD 9 again. Still no 
joy. So then I proceeded with the Linux install (using up the last of 
the space inside the extended partition) and now FreeBSD 9 has the 
expected entries in /dev, and I can mount the fat32 volume. Haven't 
tried mounting the Linux volumes yet, although the right number of 
entries are there in /dev. So this appears to be an actual bug/regression.

FYI, after getting everything installed and working I did not nuke it 
all again to see if moving the extended partition last fixed the issue 
for FreeBSD 9, but I sort of vaguely recall that when I did the install 
the first time (with extended at the end) I couldn't see it in FreeBSD 9 
either; but didn't dwell on it.

One side note, I was taught "back in the day" that dos-style extended 
partitions always had to be at the end of the disk. Before trying the 
configuration I have I searched quite a few places to find a reference 
to that rule and couldn't find one. Perhaps this is something that's 
actually improved in the PC world in the last 25 years? :)



	Improve the effectiveness of your Internet presence with
	a domain name makeover!

	Computers are useless. They can only give you answers.
			-- Pablo Picasso

More information about the freebsd-current mailing list