can't mount root during freebsd-update 7.0 -> 8.1 on amd64

joost at joost at
Tue Dec 7 18:09:57 UTC 2010

> 2010/12/5  <joost at>:
>> Hi
>> I'm trying to upgrade a amd64 box from 7.0-RELEASE to 8.1-RELEASE with
>> freebsd-update. After the first reboot the 8.1R GENERIC kernel loads
>> (I'm
>> using a custom kernel, so at this point the generic kernel is loaded
>> manually)
>> It then claims it can't mount /
> GEOM_PART becomes the default slicer
> Status: Committed to -CURRENT
> Will appear in 8.0: sure
> Author: Marcel Moolenaar & others
> Web: commit message
> GEOM_PART (gpart) is a new GEOM partition class (slicer) and utility
> that rolls up support for many partitioning formats (MBR, BSD, GPT
> etc.) into a single code base.
> NOTE: Caveat when upgrading! GEOM_PART might interpret existing
> partition tables (especially if many operating systems are present -
> multi boot) differently than the previous classes. Your devices might
> get renamed.
> NOTE: Some old utilities like bsdlabel may not work if the kernel
> doesn't include GEOM_BSD and other old slicer classes. In other words,
> bsdlabel et al don't work with GEOM_PART.
> Maybe you're encountering this trouble right now. what I would advise
> you is using labels. Please do the following :
> tunefs -L root /dev/ad4a
> tunefs -L var /dev/ad4e (assuming it's e on your system ?)
> and for usr, tmp, etc ...
>>From a fixit environment. then edit your /etc/fstab and place
> /dev/ufs/root /dev/ufs/var instead of hardcoding the device node.

Adding labels to the partitions doesn't help. I've tried both UFS and GEOM
labels. You did point me in the right direction though.

If I load geom_mbr my partitions show up and all is well. I think it was
actually the slice that wasn't recognized.

geom_part should have recognized the mbr, right? I've scanned
g_part_mbr_probe() and all the checks it does should succeed. DOSMAGIC is
there. The first byte of each row in the partition table is either 0x80 of
0x00. geom_part seems to do first match when probing. is there a way for
me to find out which geom_part_* module is staking a claim on my mbr?

I'm assuming I'm not the first person to try 8.x on amd64 with an mbr on a
disk so there must be something 'special' with this system...


More information about the freebsd-questions mailing list