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

在Solaris和变体上,它会创build当前/ filesystem的zfs副本,并在那里安装新的内核。 重新启动时,您将获得新的/

在我的情况下,我有一个/scripts目录,所以如果我应该回到以前的内核,那么我的/scripts也会回滚,这对我来说应该独立于内核。

我怎样才能避免从内核升级完成到主机重启之后对文件系统所做的更改呢?

有没有我没有意识到的一个过程,因为即使在内核升级之后你很快就可以重新启动,日志条目很容易被创build出来,这是你永远不会看到的。

您所描述的是引导环境(BE),将在系统升级时自动创build,或者使用beadm命令手动创build。

您可以拥有多个独立的BE,但只有一个BE可以同时处于活动状态。 您也可以分别更新/修改每个BE。 通常情况下,你会这样做testing特定的软件版本或完整的系统升级,但不限于此。

从优点到维护多个引导环境 :

尽pipe一次只能启动一个引导环境,但可以使用beadm mount命令安装不活动的引导环境。 然后,可以使用带有备用根( -R )选项的pkg命令来安装或更新该环境中的特定软件包。

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

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