web-dev-qa-db-ja.com

/ etc / hostsファイルが永続的なライブUSBで上書きされる

このページ https://help.ubuntu.com/community/mkusb は、永続的なライブブータブルUSBの作成を推奨しています。それが私がクラスに提案したことであり、学校のコンピューターのデフォルトOSを妨げることなく、Ubuntu Linuxを楽しむ方法を提案しなければならなかったときです。これで、USBペンドライブからUbuntu 18.04を起動できるようになりました。

Apache Webサーバーのセットアップ方法を彼らに教えたところ、/etc/hostsファイルに加えられた変更がブート間で保持されないことが発見されました。ただし、/etc/Apache2/sites-enabledの下の構成ファイルと/var/wwwの下のサイトファイルは保持されます。

ここで何が起こっているのでしょうか? Mkusbは、永続性を確立するためにcasper-rwパーティションを使用しています。なぜ永続化が1つのファイルで機能し、別のファイルでは機能しないのですか?または、/etc/hostsファイルが、削除する必要があるデフォルトのライブUSB命令によって書き直された可能性がありますか?

1
Passiday

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

enter image description here

再起動して確認してください。問題はありません。

ユーザー固有のディレクトリにファイルを保持する同様のソリューションがありますが、私のアプローチでは、ubuntuまたはmintユーザーを削除でき(新しいユーザーを作成してSudoグループに追加した後)、ホストファイルを失うことを心配する必要はありません

1
Pawel Cioch

永続的なライブシステムに関する一般的な議論

一部のシステム設定がセットアップされ、一部のプログラムは、永続化のためのオーバーレイシステムが開始する前に開始されます。これは、Linuxカーネルとカーネルのハードウェアデバイスドライバーで発生します。たぶん、これは/ etc/hostsファイルに起こっていることでもあります。インストールされているシステムではそのファイルを改ざんしましたが、永続的なライブシステムでは改ざんしていないため、問題の簡単な解決策があるかどうかはわかりません。

可能な解決策

  • 明らかだが、それほど簡単ではない解決策は、USBドライブにUbuntuをインストールする(内蔵ドライブにインストールするように)ことです。このようなシステムは、インストールされているシステムと同じように動作します。 this link とそれからのリンクを参照してください。

    同一のインストール済みシステムが必要ない場合は、 OEMメソッド を使用してマスターインストール済みシステムをセットアップし、それを複製して、各コンピューターでインストールを完了し、ユーザー名でシステムを一意にすることができます。およびパスワード、ホスト名など.

  • [自動]backup/etc/hostsを '安全な場所'にして、起動時にrestoreすることもできます。 [また自動的に]。これはスクリプトで行うことができ、おそらくcronが関係します。しかし、それがバグでない限り、/etc/hostsが跳ね返る理由があるはずです。たぶん、ネットワークと/etc/hostsに関係することが、オーバーレイプロセスがアクティブになる前のブートプロセスの早い段階で発生する可能性があります。その場合、この回避策は機能しません。

  • さらに別の方法は、再起動後に/etc/hostsがデフォルトに戻るかどうかを確認するために、別のLinuxディストリビューションから作成された永続的なライブシステムを試すことです。

Debian 9.6.0でテストする

mkusb は、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パーシスタントライブとApache Webサーバーで問題なく機能するかどうかはわかりませんが、

  • /etc/hostsおよび対応するネットワーク設定が意図したとおりに機能する場合、および
  • debianの他の機能、たとえばハードウェアドライバーがコンピューターで機能する場合

しかし、Debianを試してみる価値はあると思います。

1
sudodus