这一页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 值得一试。