持久实时 USB 中的 /etc/hosts 文件被覆盖

持久实时 USB 中的 /etc/hosts 文件被覆盖

这一页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 指令重写?

答案1

对于 live/install iso,系统在挂载持久数据之前启动,因此您可能需要将这些 /etc/hostname 和 /etc/hosts 复制到主目录,编辑它们并在 /etc/rc.local 中添加命令以将它们复制回 /etc 并动态设置主机名

这实际上很有趣,很多文件是持久的,而主机和主机名不是

sudo -i
cp /etc/hosts /home/
cp /etc/hostname /home/
  # edit both files and save 
nano /home/hosts
nano /home/hostname
  # make sure they are root
chown root:root /home/hosts
chown root:root /home/hostname

nano /etc/rc.local
  # add those lines before line exit 0
cp /home/hostname /etc/
cp /home/hosts /etc/
hostname $(cat /etc/hostname)
  #save file

在此处输入图片描述

重新启动并检查,应该没问题。

有类似的解决方案将文件保存在用户特定的目录中,但使用我的方法,您可以删除 ubuntu 或 mint 用户(创建新用户并添加到 sudo 组后),而不必担心丢失主机文件

答案2

关于持久实时系统的一般讨论

在启动持久性覆盖系统之前,会设置一些系统设置并启动一些程序。这种情况发生在 Linux 内核和内核的硬件设备驱动程序中。也许这也是 /etc/hosts 文件所发生的情况。我在已安装的系统中篡改过该文件,但在持久性实时系统中没有,所以我真的不知道是否有简单的解决方案。

可能的解决方案

  • 一个显而易见但不那么容易的解决方案是安装 Ubuntu(像安装到内置驱动器一样)安装到 USB 驱动器。此类系统的行为与任何已安装的系统一样。请参阅此链接以及其中的链接。

    如果你不想要完全相同的安装系统,那么应该可以设置一个主安装系统OEM方式,克隆它,然后在每台计算机上完成安装,使系统具有唯一的用户名和密码、主机名等。

  • 另一种选择可能是[自动]备份 /etc/hosts到“安全的地方”,并在启动时恢复它[也是自动的]。这可以通过脚本完成,也许涉及cron。但应该有一个/etc/hosts反弹的理由(除非它是一个错误)。也许涉及网络的事情/etc/hosts发生在启动过程的早期,在覆盖系统被激活之前,在这种情况下,这种解决方法将不起作用。

  • 另一种选择是尝试使用由另一个 Linux 发行版制作的持久实时系统,以检查/etc/hosts重启后是否恢复到默认值。

使用 Debian 9.6.0 进行测试

韓國可以从 Ubuntu 创建持久实时驱动器,并且Debianiso 文件。因此,我自然而然地会尝试使用 Debian 持久实时系统。我有 iso 文件

debian-live-9.6.0-amd64-cinnamon.iso

这是新的(2019 年 1 月下载)。我制作并测试了一个持久的实时系统,它/etc/hosts在重启后仍能保留 :-)

user@debian:~$ cat /etc/hosts
127.0.0.1   localhost debian
192.168.0.4 xw8400
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

user@debian:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.6 (stretch)
Release:    9.6
Codename:   stretch

user@debian:~$ uname -a
Linux debian 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
user@debian:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  9.4M  1.6G   1% /run
/dev/sdb4       2.0G  2.0G     0 100% /lib/live/mount/persistence/sdb4
/dev/loop0      1.9G  1.9G     0 100% /lib/live/mount/rootfs/filesystem.squashfs
tmpfs           7.8G     0  7.8G   0% /lib/live/mount/overlay
/dev/sdb5       8.4G  2.3G  5.8G  28% /lib/live/mount/persistence/sdb5
overlay         8.4G  2.3G  5.8G  28% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs           7.8G  4.0K  7.8G   1% /tmp
tmpfs           1.6G   20K  1.6G   1% /run/user/1000
/dev/sdb1       4.2G   23M  4.2G   1% /media/user/usbdata

user@debian:~$ sudo lsblk -fm
NAME   FSTYPE   LABEL                 UUID                                 MOUNTPOINT                                 NAME     SIZE OWNER GROUP MODE
loop0  squashfs                                                            /lib/live/mount/rootfs/filesystem.squashfs loop0    1.8G root  disk  brw-rw----
sda                                                                                                                   sda    238.5G root  disk  brw-rw----
├─sda1 ext4     root                  2093f8d6-7840-4256-8edc-4db97e865784                                            ├─sda1 232.5G root  disk  brw-rw----
└─sda2 swap     swap                  4b882c9f-4867-4c5c-8eb7-c84ef03f4786                                            └─sda2     6G root  disk  brw-rw----
sdb                                                                                                                   sdb     14.9G root  disk  brw-rw----
├─sdb1 ntfs     usbdata               51B99954568550BA                     /media/user/usbdata                        ├─sdb1   4.2G root  disk  brw-rw----
├─sdb2                                                                                                                ├─sdb2     1M root  disk  brw-rw----
├─sdb3 vfat     usbboot               3FAC-E416                                                                       ├─sdb3   244M root  disk  brw-rw----
├─sdb4 iso9660  d-live 9.6.0 ci amd64 2018-11-10-11-54-14-00               /lib/live/mount/persistence/sdb4           ├─sdb4     2G root  disk  brw-rw----
└─sdb5 ext4     persistence           9d044926-15cd-4e1b-911d-ceb8e7101cf3 /lib/live/mount/persistence/sdb5           └─sdb5   8.5G root  disk  brw-rw----
sr0                                                                                                                   sr0     1024M root  cdrom brw-rw----

我不知道 Debian persistent live 和你的 Apache web 服务器是否能正常工作,

  • /etc/hosts以及相应的网络设置是否按预期工作,并且
  • 如果 Debian 中的其他东西(例如硬件驱动程序)可以与您的计算机配合使用,

但我认为 Debian 值得一试。

相关内容