此页面https://help.ubuntu.com/community/mkusb鼓励创建持久的实时可启动 USB。这就是我向我的班级提出的建议,当时我不得不建议他们如何在不影响学校计算机默认操作系统的情况下享受 Ubuntu Linux。所以现在他们可以从他们的 USB 笔式驱动器启动 Ubuntu 18.04。
在教他们如何设置 Apache Web 服务器时,发现对/etc/hosts
文件所做的更改在引导之间没有保留。但是,保留下的配置文件/etc/apache2/sites-enabled
和站点文件。/var/www
这里会发生什么?Mkusb 使用 casper-rw 分区来建立持久性。为什么持久性对一个文件有效而对另一个文件无效?或者/etc/hosts
文件可能被一些应该删除的默认实时 USB 指令重写?
关于持久实时系统的一般性讨论
一些系统设置和一些程序在用于持久性的覆盖系统启动之前启动。这发生在 linux 内核和内核的硬件设备驱动程序上。也许这也是 /etc/hosts 文件正在发生的事情。我在已安装的系统中篡改了该文件,但在持久实时系统中没有篡改,所以我真的不知道是否有一个简单的解决方案。
可能的解决方案
一个明显但不那么简单的解决方案是将 Ubuntu(安装到内部驱动器中)安装到 USB 驱动器中。这样的系统将像任何已安装的系统一样运行。请参阅此链接和其中的链接。
如果您不想要相同的安装系统,应该可以使用OEM 方法设置主安装系统,克隆它,然后在每台计算机上完成安装,使系统具有唯一的用户名和密码、主机名等。
另一种选择可能是[自动]备份
/etc/hosts
到“安全位置”,并在启动时恢复它[也自动]。这可以通过脚本完成,并且可能涉及cron
. 但是应该有一个/etc/hosts
反弹的理由(除非它是一个错误)。也许涉及网络的/etc/hosts
事情发生在启动过程的早期,在覆盖系统激活之前,在这种情况下,这种解决方法将不起作用。另一种选择是尝试由另一个 linux 发行版制作的持久实时系统,以检查
/etc/hosts
重启后是否反弹回默认值。使用 Debian 9.6.0 进行测试
mkusb可以从 Ubuntu 和Debian iso 文件创建持久的实时驱动器。所以我很自然地尝试了一个 Debian 持久实时系统。我有iso文件
这是新的(2019 年 1 月下载)。我制作并测试了一个持久的实时系统,它
/etc/hosts
在重新启动后保留:-)我不知道 Debian persistent live 和你的 Apache web 服务器是否能正常工作,
/etc/hosts
和相应的网络设置按预期工作,并且但我认为 Debian 值得一试。
对于 live/install iso,系统会在挂载持久数据之前启动,因此您可能需要将这些 /etc/hostname 和 /etc/hosts 复制到主目录,编辑它们并在 /etc/rc.local 中添加命令以进行复制他们回到 /etc 并动态设置主机名
实际上很有趣,很多文件是持久的,而主机和主机名不是
重新启动并检查,应该没问题。
有类似的解决方案可以将文件保存在用户特定的目录中,但是通过我的方法,您可以删除 ubuntu 或 mint 用户(在创建新用户并添加到 sudo 组之后),您不必担心丢失主机文件