環境:
FreeBSD下zf重編譯完內核,安裝後重啟,顯示:zfs: failed with error 6,然後就是mountroot>提示了。
這是一種很少見的zfs錯誤代碼,一般2或19居多。
追蹤:
看最後一行,仍然顯示一串guid號,所以懷疑問題仍然出在gpt上面。
在loader.conf裡面加上兩行後仍然不行:
kern.geom.label.gptid.enable="0"
kern.geom.label.disk_ident.enable="0"
加這兩行的原因是安裝的時候,是以adap3為zfs目標,如果沒有這兩行,會把磁盤顯示為guid的格式,導致zfs pool找不到磁盤,從而產生錯誤2。【Linux公社 www.linuxidc.com】
加上下面一行,顯示zfs調試信息,但是由於USB鍵盤不能使用,所以只能看到最後一行,仍然為guid格式。
vfs.zfs.debug="1"
boot_pause="YES"
最後重新過濾了一遍kernel配置,發現有三項被注釋掉了:
options GEOM_PART_GPT # GUID Partition Tables.
#options GEOM_RAID # Soft RAID functionality.
options GEOM_LABEL # Provides labelization
這三項跟guid緊密相聯的,懷疑是跟它們有關,於是先加下面兩行到loader.conf,重啟:
geom_label_load="YES"
geom_part_gpt_load="YES"
竟然順利啟動了!
原因:
在內核中禁用了GEOM相關的選項,導致geom系統不正常工作。
解決:
去掉注意,重新編譯內核:
options GEOM_PART_GPT # GUID Partition Tables.
#options GEOM_RAID # Soft RAID functionality.
options GEOM_LABEL # Provides labelization