如何在不同的Linux配置之间切换?

如何在不同的Linux配置之间切换?

我的 Raspberry Pi 3 有几个不同的用例。目前,我将其配置为媒体中心、流音频、黑客目的、办公室工作场所等。所有配置都基于默认的 Raspbian 发行版。

这些配置需要不同的(systemd)服务不同的/etc服务配置文件。例如:我的办公室工作场所,我为网络管理器配置了所需的 WiFi 网络密码,而对于我的黑客站,我想禁用网络管理器并配置旋转 MAC 地址和静态 IP。有时我喜欢我的 Pi 无头,有时我需要 GUI。 ETC。

关键是,根据用途,不仅服务不同,服务配置文件也不同。

我的问题是:如何在同一 Linux 环境中的配置(服务+配置文件)之间“切换”?理想情况下,我想发出一个(终端)命令来切换到另一个“模式”。

已经尝试过:

  • 具有多重引导 grub 的不同分区:花费大量空间/开销。不适合轻松切换。
  • 使用运行级别来区分:不容纳不同的配置文件。
  • 创建我自己的“切换脚本”来停止服务,复制/切换配置文件并(重新)启动服务:很接近,但感觉就像我正在重新发明轮子。

对于“开箱即用”的解决方案有什么建议吗?我无法想象我是第一个或唯一一个有这种需求的人。

答案1

听起来像是在 systemd 中创建目标,并且可能将 /etc/ 存储在 git 中会创建类似于您想要的内容。更改目标,切换 git 分支,您可能希望有一个中间目标,在切换所有内容之前禁用大多数服务。

答案2

类似于安装有类似这样的文件夹的“配置”分区怎么样:

/mnt/config/setup1/etc
/mnt/config/setup2/etc
/mnt/config/setup3/etc
/mnt/config/etc -> /mnt/config/setup1/etc

然后创建一个 systemd 服务,在启动早期将 /mnt/config/etc 复制到 /etc 。将任何不同的内容放置在这些 /mnt/config/.../etc 文件夹中。更新符号链接以更改您的设置并重新启动。

相关内容