昨夜、Ubuntu 16.04ですべてがうまくいきました。今日、私はそれをオンにしようとしましたが、これらのエラーを投げて起動しません:
run-init: /sbin/init: Permission denied
Target filesystem doesn't have requested /sbin/init.
run-init: /sbin/init: Permission denied
run-init: /etc/init: Permission denied
run-init: /bin/init: No such file or directory
/bin/sh: 0: Can't open splash
systemd.unit=rescue.target
をカーネルパラメーターとして追加しようとしました。それも機能しませんでした。この問題を解決するにはどうすればよいですか?
表示されるメッセージを見るとわかるように、最も可能性の高い原因は権限の問題です。また、/sbin/init
と/etc/init
は存在するが、/bin/init
は存在しないようです。
まず、問題を修正するシェルを入手する必要があります。 /bin/sh: 0: Can't open splash
を削除してシェルを取得するには:Ubuntuのみがインストールされている場合(デフォルトではGRUBは表示されません)、システムの起動中に shift GRUBを表示するキー。次に、デフォルトのメニューを押します E。
Linux
で始まる行があります。その行でsplash
パラメーターを削除してから Ctrl+x、これでsh
シェルにドロップされます。必要に応じて、/bin/bash
を実行してbashシェルを取得します。オートコンプリート機能があるため、bash
よりもsh
の方が好きです。
または、splash
パラメーターを削除する代わりに、その行の最後にinit=/bin/bash
を追加してから、 Ctrl+x;今回は、bash
の代わりにsh
にドロップされます。
実行:
ls -lH /sbin/init
次のようなものが生成されるはずです。
-rw-r--r-- 1 root root 1577000 Feb 15 12:20 /sbin/init
ご覧のとおり、権限が台無しになっています。最近のほとんどすべてのシステムで、/sbin/init
はsystemd
へのリンクです。
# ls -l /sbin/init
-rw-r--r-- 1 root root 1577000 Feb 15 12:20 /sbin/init -> /lib/systemd/systemd
確かに、/
(ルート)ファイルシステムはro
状態(読み取り専用)でマウントされ、rw
(読み取りおよび書き込み)に変更できます。
# mount -o remount,rw /
次に、権限を修正します。
# chmod u=rwx,g=rx,o=rx /lib/systemd/systemd
システムを再起動します。