Oracle Solaris ZFS 管理指南

修复无法引导的系统

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

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

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