13.8. 执行镜像模式系统的工厂重置
要将系统恢复到其原始状态,请将 /var 和 /etc 重置为容器镜像的状态,并撤销对系统的任何修改,您可以对现有 bootc 系统执行非破坏性工厂重置。当您执行工厂重置时,您的系统将重启到全新的状态。在这个状态中,/etc 目录仅包含来自容器镜像的配置,/var 目录为空,这意味着您丢失了来自以前系统的所有用户数据或状态。
对镜像模式系统执行工厂重置作为技术预览提供。红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些预览可让用户早期访问将来的产品功能,让用户在开发过程中测试并提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅红帽客户门户网站中的 技术预览功能支持范围 以了解有关技术预览功能的支持范围。
先决条件
- 您有一个可引导的容器系统。
- 您可以访问容器 registry 中要重置的容器镜像。
您可能丢失用户 Anaconda 或其他工具,如 cloud-init,添加了。任何安装程序(如 bootc-image-builder 工具和 Anaconda)都会在 bootc install reset 命令删除的镜像之上添加状态。
流程
执行工厂重置。根据您的目标,运行以下命令之一:
要重置为当前正在运行的同一镜像:
$ sudo bootc install reset --experimental要重置并切换到其他镜像:
$ sudo bootc install reset --experimental --target-imgref quay.io/example/myimage:latest要重置并立即重启:
$ sudo bootc install reset --experimental --apply添加自定义内核参数:
$ sudo bootc install reset --experimental --karg=console=ttyS0,115200n8要跳过继承 root 文件系统内核参数:
$ sudo bootc install reset --experimental --no-root-kargs重新引导到新部署后,您仍然可以通过检查
/sysroot/ostree/deploy/<old-stateroot>/中的文件来访问旧系统的数据。注意执行工厂重置并重新引导至新的 stateroot 后,您仍会在磁盘上保留
/sysroot/ostree/deploy/ <old-stateroot> / 的旧 stateroot。如果需要,您可以访问之前系统中的文件。如需了解更多详细信息,请参阅 清理旧 stateroot。