Issues with ar0(Host Raid) adaptec after upgrade to 8.2

Jeremy Chadwick freebsd at jdc.parodius.com
Tue Feb 1 23:22:12 UTC 2011


On Tue, Feb 01, 2011 at 05:34:18PM -0500, Colin Legendre wrote:
> Hey All,
> 
> I'm having an  odd issue, and the only thing I can imagine is that
> there has been a major change between 8.1 and 8.2.
> 
> Using the 8.1 kernel everything is dandy.  But when I try to use a
> newly compiled kernel from 8.2(GENERIC) I have no luck.  Root will
> not mount.
> 
> Here are relevant kernel messages under 8.1...
> 
> 
> FreeBSD 8.1-RELEASE-p2 #2: Mon Jan 31 19:25:14 EST 2011
> 
> atapci2: <Intel ICH7 SATA300 controller> port
> 0x30d8-0x30df,0x30cc-0x30cf,0x30d0-0x30d7,0x30c8-0x30cb,0x3060-0x307f
> mem 0xc0000400-0xc00007ff irq 19 at device 31.2 on pci0
> atapci2: [ITHREAD]
> atapci2: AHCI called from vendor specific driver
> atapci2: AHCI v1.10 controller with 4 3Gbps ports, PM not supported
> ata4: <ATA channel 0> on atapci2
> ata4: [ITHREAD]
> ata5: <ATA channel 2> on atapci2
> ata5: [ITHREAD]
> ad8: 286168MB <Seagate ST3300622AS 3.AAH> at ata4-master UDMA100 SATA 3Gb/s
> ad10: 286168MB <Seagate ST3300622AS 3.AAH> at ata5-master UDMA100 SATA 3Gb/s
> ar0: 286168MB <Intel MatrixRAID RAID1> status: READY
> ar0: disk0 READY (master) using ad8 at ata4-master
> ar0: disk1 READY (mirror) using ad10 at ata5-master
> GEOM: ad8s1: geometry does not match label (255h,63s != 16h,63s).
> GEOM: ad10s1: geometry does not match label (255h,63s != 16h,63s).
> GEOM: ufsid/4bb50de139c19cf4: geometry does not match label
> (255h,63s != 16h,63s).
> Trying to mount root from ufs:/dev/ar0s1a
> WARNING: ufsid/47f409368a08243c expected rawoffset 0, found 63
> WARNING: ufsid/4bb50de139c19cf4 expected rawoffset 0, found 63
> WARNING: ar0s1a expected rawoffset 0, found 63
> WARNING: ad10s1a expected rawoffset 0, found 63
> WARNING: ad8s1a expected rawoffset 0, found 63
> WARNING: ar0s1 expected rawoffset 0, found 63
> WARNING: ad10s1 expected rawoffset 0, found 63
> WARNING: ad8s1 expected rawoffset 0, found 63
> GEOM: ufsid/4bb50de139c19cf4c: geometry does not match label
> (255h,63s != 16h,63s).
> GEOM: ad10s1a: geometry does not match label (255h,63s != 16h,63s).
> GEOM: ad10s1c: geometry does not match label (255h,63s != 16h,63s).
> GEOM: ad8s1a: geometry does not match label (255h,63s != 16h,63s).
> GEOM: ad8s1c: geometry does not match label (255h,63s != 16h,63s).
> 
> 
> Under 8.2 I don't see...
> 
> --->atapci2: AHCI called from vendor specific driver
> --->atapci2: AHCI v1.10 controller with 4 3Gbps ports, PM not supported
>
> at all, I don't see the drives, nothing   It drops to the
> 'mountroot' prompt and when I do ? the only drive I see is the cd
> drive.
> 
> 
> If I boot back with to 'kernel.old' which is 8.1 Release I have no issues.
> 
> 
> Any ideas?

Get rid of Intel MatrixRAID entirely, use gmirror instead.  FreeBSD's
support for MatrixRAID at this time is sub-par.  See Wikipedia's entry
on it, with regards to FreeBSD:
http://en.wikipedia.org/wiki/Intel_Rapid_Storage_Technology

As for the geometry mismatches you see, these are due to changes in
GEOM.  The easiest way is to simply re-create the partitions (not newfs,
I'm talking about fdisk/gpart) under a 8.2 kernel.  This sounds drastic,
but it's what I recommend.  Others may have other recommendations.

As for the AHCI messages, the AHCI capabilities have changed a bit in
FreeBSD in recent days.  There are two AHCI modules now available for
Intel ICHxx or ESBxx cards: ahci.ko and ataahci.ko.

ahci.ko does AHCI->CAM translation, which also gets you NCQ capability
as well as other things.  Your disks will show up as /dev/adaX (read
closely).  ataahci.ko is the "classic" AHCI you're used to.

I strongly advocate use of ahci.ko.  You can load this via
/boot/loader.conf and it will take precedence over ataahci:

ahci_load="yes"

So, I would say if your disks don't show up when you build 8.2, then
your kernel configuration is incorrect, or you have some brokenness in
/boot/loader.conf.  There are other possibilities as well, for example
I'd be curious to know how you went about upgrading from an 8.1-RELEASE
tag to 8.2-PRERELEASE; this implies you went from tag RELENG_8_1 to
RELENG_8.  When you installed 8.1-RELEASE, did you choose to install
src?  If so, did you "adopt" your source tree?  The below FAQ for cvsup
also applies to csup:
http://www.cvsup.org/faq.html#caniadopt

I would recommend you start clean, and make a backup of your kernel
configuration file first of course:

rm -fr /usr/obj/*
rm -fr /usr/src
rm -fr /usr/sup (if you were using cvsup)
rm -fr /var/db/sup/src-*
csup -h some.sup.server -L2 /usr/share/examples/cvsup/stable-supfile
<rebuild world/kernel here, per instructions in src/Makefile>

-- 
| Jeremy Chadwick                                   jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.               PGP 4BD6C0CB |



More information about the freebsd-stable mailing list