Solaris 区域移除和转换

And*_*dyM 2 solaris solaris-zones

我有一个 Solaris 服务器,上面有两个区域。我需要删除一个区域并将剩余的区域更改为服务器的主操作系统。

做这个的最好方式是什么?

我正在考虑备份需要保留的区域,在服务器上重新安装操作系统,然后从备份的区域恢复文件。有没有更简单的方法?

Tim*_*edy 5

我想不出一个简单的方法来解决这个问题。但是,您需要非常小心,因为本地区域不同于全局区域。您不想只在全局区域上恢复本地区域的整个目录结构。这可能会产生意想不到的后果。


一些问题来指导你:

1、本地域是全根域,还是稀疏根域?

如果该区域是稀疏根区域,则它继承了 /usr 和 /sbin 等目录。您可以通过查看/etc/zones/<zonename>.xml.

2. 有什么特别的原因要让local zone变成global zone?

您是否安装了特定的应用程序?用户配置?是否有理由不能将本地区域保留为本地区域?

3. 您的服务器是 ZFS 根系统还是 UFS 根系统?

如果是 UFS,是否有足够的可用磁盘空间让您使用 Live Upgrade?


如果它是一个稀疏的根区,你可能很幸运。由于稀疏根区域从全局继承所有“特定于 Solaris”的文件系统,因此所有软件包和补丁数据库将同步,然后您实际上只查看从本地区域到本地区域的自定义数据之间的差异全球区。诸如主目录、/etc/passwd、/etc/shadow 等内容。

这是我将如何做到的。我的例子不会很冗长,因为在野外发现的单个系统、选项和变量几乎涉及太多的考虑因素。相反,它们只是基于我自己使用 ZFS root 的系统的经验。您应该能够通过一些简单的手册页阅读将这些示例转换为特定于您自己需要的语法。

1 - 创建一个新的引导环境。

例如: lucreate -n s10-2011-11-23

  • YMMV 取决于您的系统是 UFS 还是 ZFS,以及您的区域是作为本地文件系统的一部分安装还是安装在它们自己的单独 zpool 中。

2 - 挂载新的引导环境

例如: lumount s10-2011-11-23

  • 这将安装新的引导环境 /.alt.s10-2011-11-23

3 - 同步你想要的文件系统

例如,如果您只需要本地区域的 /opt 和 /export/home:

rsync -avHP /<zonepath>/root/opt/ /.alt.s10-2011-11-23/opt/
rsync -avHP /<zonepath>/root/export/home/ /.alt.s10-2011-11-23/export/home/
Run Code Online (Sandbox Code Playgroud)
  • *这是您将任何数据从区域路径复制到全局区域文件系统的机会。

4 - 卸载新的引导环境

例如: luumount s10-2011-11-23

    • 这将卸载/.alt.s10-2011-11-23目录。您需要执行此操作以在下一步中激活新的引导环境。

5 - 激活新的引导环境

例如: luactivate s10-2011-11-23

  • 复制并保存在此处打印的警告。您可能需要它们来恢复

6 - 重新启动到新的启动环境

例如: init 6

  • *现在新的引导环境已创建,与您想要的内容同步并处于活动状态。现在您只需要重新启动即可。您不能使用该reboot命令来执行此操作。您必须使用initshutdown命令。我建议只使用init 6.

使用实时升级的好处是,您始终可以按照您在第 5 步中复制和保存的步骤重新启动到之前的启动环境。

这意味着如果某些东西不起作用或出现严重错误,您至少可以在进行任何更改之前恢复到系统状态。

我们在修补或更改系统时总是使用实时升级,只是为了便于回滚。