AHCI
AHCI (advanced host controller interface の略) は SATA ドライブのネイティブな動作モードで、Linux カーネルのバージョン 2.6.19 からサポートされています。
通常 SATA ドライブはデフォルトでレガシーなパラレル ATA として設定されますが、BIOS から AHCI を有効化することで主として2つのメリットがあります: SATA ドライブのホットプラグ (USB ドライブの挙動を模倣) と NCQ (native command queuing) のサポートです。
BIOS から設定
BIOS にアクセスする方法はマザーボードによって異なります。大抵は Del
を使うことでメニューを表示できます。
BIOS のオプションが表示されたら、以下のようなパラメータを探して下さい:
Enable SATA as: IDE/AHCI
または:
SATA: PATA Emulation/Native/Enhanced
AHCI
や Native
を選択して、設定を保存して BIOS から抜けます。名前はマザーボードによって変わってくるので、どのモードが AHCI なのか分からないときはマザーボードのマニュアルを見て下さい。
BIOS の設定を変更・保存した後、Linux は次の起動時に AHCI ドライバーをロードします。dmesg
の出力で確認できます:
SCSI subsystem initialized libata version 3.00 loaded. ahci 0000:00:1f.2: version 3.0 ahci 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19 ahci 0000:00:1f.2: irq 764 for MSI/MSI-X ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3f impl SATA mode ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pmp pio slum part ems ahci 0000:00:1f.2: setting latency timer to 64 scsi0 : ahci scsi1 : ahci scsi2 : ahci scsi3 : ahci scsi4 : ahci scsi5 : ahci
NCQ も以下のような文字列で確認できます:
ata2.00: 625142448 sectors, multi 16: LBA48 NCQ (depth 31/32)
Troubleshooting
It is possible that the AHCI module is not loaded automatically if SATA configuration is switched from IDE to AHCI after installing Arch. In such case, an error message will appear at early boot indicating that the root partition was not found.
If that happens, the failsafe
boot option should still work fine. Once started in failsafe mode, you have to run mkinitcpio to re-generate initramfs images.