内核升级时如何避免丢失根文件系统的更改?

内核升级时如何避免丢失根文件系统的更改?

在 Solaris 及其变体上,它会对当前文件系统进行 zfs 克隆/,并在那里安装新内核。重新启动时,您将获得新的/

就我而言,我有一个/scripts目录,因此如果我需要返回到以前的内核,那么我的目录/scripts也会回滚,对我来说,这应该与我所在的内核无关。

问题

我该如何避免失败从内核升级完成到主机重新启动期间对文件系统所做的更改?

是否存在我不知道的程序,因为即使您在内核升级后非常快速地重新启动,也很容易产生您永远看不到的日志条目。

答案1

您所描述的是启动环境(BE),它将在系统升级时自动创建或使用命令手动创建beadm

您可以拥有多个独立的 BE,但一次只能有一个处于活动状态。您还可以单独更新/修改每个 BE。通常,您会这样做来测试特定的软件版本或完整的系统升级,但不限于此。

维护多个引导环境的优势

虽然一次只能有一个引导环境处于活动状态,但您可以使用该beadm mount命令挂载非活动引导环境。然后,您可以使用pkg带有备用根 ( -R) 选项的命令在该环境上安装或更新特定软件包。

我刚刚试过,beadm mount BeName会将 BeName 挂载到 下的临时目录中/tmp,该目录是可写的。您可以编写一个简单的脚本来将新文件或更改的文件同步/复制到旧 BE,反之亦然。

文档还指出,可以对 BE 进行快照(使用beadm create BeName@snapshotNamedescription),如果您想跟踪两个时间点之间发生的差异(使用zfs diff),这可能会有所帮助。

相关内容