在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

修复无法引导的系统

根据设计,即使在出错时 ZFS 也是强健而稳定的。尽管这样,在访问池时,软件已知问题或某些意外问题可能导致系统发出警告音。在引导过程中,必须打开每个池,这意味着这样的故障将导致系统进入应急重新引导循环。要从此情况中恢复,必须通知 ZFS 不要在启动时查找任何池。

ZFS 在 /etc/zfs/zpool.cache 中维护可用池及其配置的内部高速缓存。此文件的位置和内容是专用的,有可能更改。如果系统变得无法引导,则使用 –m milestone=none 引导选项引导到 none 里程碑。系统启动后,将根文件系统重新挂载为可写入,然后重命名 /etc/zfs/zpool.cache 文件或将其移动到其他位置。这些操作使 ZFS 忘记系统上存在池,从而阻止它尝试访问导致问题的有问题池。然后可以通过发出 svcadm milestone all 命令进入正常系统状态。从备用根引导时,可以使用类似的过程执行修复。

系统启动后,可以尝试使用 zpool import 命令导入池。但是,这样做很可能会导致在引导期间出现的相同错误,因为该命令使用相同机制访问池。如果系统中存在多个池,请执行以下操作:

  • 重命名 zpool.cache 文件或将其移动到其他位置,如上文所述。

  • 使用 fmdump -eV 命令显示报告有致命错误的池,确定哪个池可能有问题。

  • 逐个导入池,跳过有问题的池,如 fmdump 输出中所示。