AHCI

出自 Arch Linux 中文维基

AHCI, Advanced Host Controller Interface 的縮寫,意思是 高級主機控制器接口, 這是一種SATA設備特有的工作模式.通常AHCI需要通過BIOS來開啟或關閉,通過BIOS啟用AHCI有兩大好處:熱插拔SATA驅動器(模擬USB驅動器的行為)和NCQ。該特性在 Linux kernel 2.6.19 以後開始提供支持,現在的 Arch 內核會自動加載 ahci 模塊.

設置BIOS[編輯 | 編輯原始碼]

進入BIOS的方法因主板的不同而不通; 通常, 在啟動計算機時按Del 就可以進入BIOS,筆記本可能是F2

進入BIOS之後, 找到跟下面類似的選項:

Enable SATA as: IDE/AHCI

或者:

SATA: PATA Emulation/Native/Enhanced

選擇 AHCINative, 保存並退出 BIOS. 如果你沒有找到對應的選項請參考主板説明書,因為選項的名字可能不一樣。

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

and for NCQ:

ata2.00: 625142448 sectors, multi 16: LBA48 NCQ (depth 31/32)

問題解決[編輯 | 編輯原始碼]

如果安裝 Arch 後 STAT 配置從 IDE 變為 AHCI, AHCI 模塊可能無法正確加載。啟動時會出現找不到根分區的錯誤提示。

這時,應該可以用 failsafe 啟動選項進行啟動,啟動後請執行 mkinitcpio 重新生成 initramfs 鏡像。

參閱[編輯 | 編輯原始碼]