AHCI and ZFS: root mount error

Romain Garbage romain.garbage at gmail.com
Sat Jan 16 00:48:19 UTC 2010


2010/1/16, Volodymyr Kostyrko <c.kworr at gmail.com>:
> On Fri, 15 Jan 2010 21:13:39 +0100
> Romain Garbage <romain.garbage at gmail.com> wrote:
>
>> After setting ahci_load="YES" in /boot/loader.conf, I get a root mount
>> error.
>> ahci seems to attach to disk correctly (I get ada0 messages with no error)
>>
>> Without ahci_load="YES", system boots fine, with ata module attaching to
>> disk.
>>
>> I have a full zfs system, set up following wiki instructions:
>> http://wiki.freebsd.org/RootOnZFS/ZFSBootPartition
>> (MBR scheme, ZFS in a FreeBSD slice, together with a swap partition)
>>
>> I'm using a GENERIC kernel, RELENG_8 branch.
>
> I have faced some problems that looks exactly like you say. I haven't
> investigated thoroughly after some quick-hack-repairs machine runs
> flawlessly.
>
> 1. I have moved to RELENG_8 from RELENG_8_0. I don't think this is it but
> zfsloader support was what I was looking for.
>
> 2. I reinitialised zfs partitions again with a boot code. But this time I
> used bs=512 dd option.
>
> 3. I recreated zpool.cache and replaced it on my pool.
>
> Actually I don't know which one helped me, but my bet is for the third step
> and maybe for second.

A weird thing:

I just built and installed a new kernel (RELENG_8, source csuped a few
hours ago), just adding "device ahci" to the config file. I get the
same error, with driver attaching correctly.

Now, adding ahci_load="NO" to /boot/loader.conf and booting the new
custom kernel, it just boots fine, ahci attaching to the device, and
zfs root gets mounted.

dmesg | grep ada

ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <ST9250320AS 0303> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO size 8192bytes)cd0
at ahcich1 bus 0 scbus1 target 0 lun 0
ada0: Command Queueing enabled
ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
ada1 at ahcich2 bus 0 scbus2 target 0 lun 0
ada1: <SAMSUNG HM500JI 2AC101C4> ATA-8 SATA 2.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO size 8192bytes)
ada1: Command Queueing enabled
ada1: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <ST9250320AS 0303> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO size 8192bytes)cd0
at ahcich1 bus 0 scbus1 target 0 lun 0
ada0: Command Queueing enabled
ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
ada1 at ahcich2 bus 0 scbus2 target 0 lun 0
ada1: <SAMSUNG HM500JI 2AC101C4> ATA-8 SATA 2.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO size 8192bytes)
ada1: Command Queueing enabled
ada1: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)

I didn't do anything else, just the line in loader.conf, and the
system just works fine.

Romain


More information about the freebsd-stable mailing list