AHCIで幸せになる

  • FreeBSD 8.2 Release
  • P7H55D-M ProのSATAx6
  • SATA2I4-LPPCI(Sil3124)のSATAx4
  • SATA2I2-PCIe(Sil3132)のSATAx2
  • ZFS(SATA HDDx12)
  • gmirror(SATA HDDx2)

最初は安全重視でBIOSIDEです。ad?でディスクが認識されています。一応作業前に、zpool exportはしておきます。
カーネル再構築しちゃいます。コンフィグに書き加えるのは以下。

# AHCI to CAM
device ahci # AHCI
device ada # ATA Direct Access Device
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device da # Direct Access (disks)
device pass # Passthrough device (direct SCSI access) 
# for Sil3124
device siis

# ATA to CAM
device atacore # Core ATA functionality
device atapci # PCI bus support; only generic chipset support
options ATA_CAM # ATA CAM 

コンフィグから消すのは以下。

# ATA and ATAPI CD/DVD devices
nodevice ata
nodevice atapicd # ATAPI CDROM drives
nooptions ATA_STATIC_ID # Static device numbering
# ATA disks and others
nodevice atadisk # ATA disk drives
nodevice ataraid # ATA RAID drives
nodevice atapifd # ATAPI floppy drives
nodevice atapist # ATAPI tape drives 

ビルド&インストールしてリブートします。

# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL && make installkernel KERNCONF=MYKERNEL && reboot

FreeBSDがブートする前に、BIOSIDE->AHCIの変更をしておきます。
そしてFreeBSDをブート。gmirrorのgm0はad?からada?に変わってもよろしくしてくれます。すごい。

# camcontrol devlist