AHCI
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
選擇 AHCI
或 Native
, 保存並退出 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 鏡像。