再起動で修正できるため、深刻な問題ではありませんが、/proc
、/sys
でファイル(おそらくすべてではありませんが、できるだけ多く)を復元する方法があるかどうか知りたいです。 、/dev/pts
および/dev
。
でマウントされたディレクトリでchroot
ディレクトリを削除するときに、それらを部分的に削除しました
mount -t proc proc [path/to/chroot]/proc
mount -t sysfs sys [path/to/chroot]/sys
mount --bind /dev/[path/to/chroot]/dev
mount -t devpts /dev/path [path/to/chroot]/dev/pts
ubuntu 16.10AMD64で。理解できるファイルの削除が拒否されたため、一部のファイルの削除に失敗しました(エラーメッセージを記録しませんでした)。ソリューションはすべてのDebianベースのシステムに適用されると思います。
chroot
を終了した後、次のようなものが表示されます。
$ ls -bash: /dev/null: Keine Berechtigung
bash: _upvars: `-a2': invalid number specifier
-bash: /dev/null: Keine Berechtigung
bash: _upvars: `-a0': invalid number specifier
オートコンプリート中 Tabls
(LANGUAGE=en
をエクスポートした後)。
/proc
または/sys
からほとんどのファイルを実際に削除することはできません。これらはカーネルへのインターフェイスであり、ディスクに保存されているものではありません。ほとんどのカーネルインターフェイスは、カーネルが提供したいものであり、ユーザーランドの影響を受けることはありません。
例外が発生する可能性があることに注意してください。これは珍しいことですが、ドライバーがカーネルファイルシステムからのファイルの削除に意味を割り当てる可能性があります。これは悪名高い evivarfs の場合であり、通常、UEFIを備えたシステムの/sys/firmware/efi/efivars
の下にマウントされます。そこでファイルを削除すると、ブート構成を削除してコンピューターをブリックする可能性があります。そして systemdはそれを読み取り/書き込みでマウントするために使用されました …
カーネル内のファイルシステム自体を復元するには、それらを再マウントするだけです。実際、これらのファイルのほとんどは単純に削除できず、何かがマウントされている限りマウントポイントを削除できないため、rm -rf /proc /sys
はそれらを削除しませんでした。しかし、どういうわけか/proc
と/sys
が存在しなくなった場合は、ディレクトリを再作成してマウントすることができます。
mkdir /proc /sys
mount -t proc proc /proc
mount -t sys sysfs /sys
もちろん、ルートシェルが必要です。 /proc
と/sys
がなくてもrootとしてログインできる場合がありますが、/dev
がないとログインできない可能性があります。
/dev
に関しては、通常udevによって入力されます。 udevに再入力するように指示できます。
mkdir /dev
mount -t devtmpfs -o mode=0755 udev /dev
mount -t devpts devpts /dev/pts
udevadm trigger