FreeBSD下zfs: failed with error 6错误如何解决?


    环境:
    重编译完内核,安装后重启,显示: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。
    加上下面一行,显示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