私のログイン情報(間違ったスクリプト/ etc / profile.d)を圧縮しましたが、私のシステムにSSHで接続できないか、単一のシステムから起動できませんでした。カーネルブートパラメータの末尾に "single"を追加しましたが、正常にブートが続行されました。私も成功せずに「s」を試しました。しかし、「緊急」は動作します。私はRHEL 6.3を実行しています。何が間違っているのかというアイデアはありますか?
ベストアンサー1
/root/.bashrc
その中にあるもの(またはsource
そのファイルのどれか)によって、bashがすぐにシャットダウンされ、コンピュータがデフォルトの実行レベルで起動することが疑われます。この疑惑の詳細については、以下を参照してください。
カーネルが認識しないすべてのカーネルパラメータはinitに渡されます。 ~によると開始パラメータ(7):
カーネルによって取得されず、環境変数として解釈されなかった残りの引数は、通常、init(1)プログラムである1つのプロセスに渡されます。 initプロセスに渡される最も一般的なパラメータは「single」という単語で、すべての一般的なデーモンを起動するのではなく、シングルユーザーモードでコンピュータを起動するように指示します。どのパラメータを受け入れるかについては、システムにインストールされているinit(1)バージョンのマニュアルページを確認してください。
RHEL 6 は起動を実行するため、シングルユーザモードに関連する起動設定ファイルを確認することをお勧めします。
- /etc/init/rc.conf
- /etc/init/rcS.conf
- /etc/init/rcS-sulogin.conf
- /etc/init/rcS-emergency.conf
私のローカルCentos 6.5システムには、/etc/init/rcS-sulogin.conf
次の起動セクションがあります。
script
. /etc/sysconfig/init
plymouth --hide-splash || true
[ -z "$SINGLE" ] && SINGLE=/sbin/sushell
exec $SINGLE
end script
post-stop script
if [ "$RUNLEVEL" = "S" ]; then
[ -f /etc/inittab ] && runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab)
[ -z "$runlevel" ] && runlevel="3"
exec telinit $runlevel
fi
end script
このスクリプトは、システムが起動したシェルがシャットダウンした後にpost-stop
システムをデフォルトの実行レベルに上げます。 $ SUSHELLまたはbash値を開始する簡単なスクリプト。デフォルトでは、bashはログインではなく対話型シェルで始まります。つまり、起動時に読みます。sushell
/sbin/sushell
~/.bashrc
このファイルが誤ってシェルを終了すると、システムは引き続きデフォルトのランレベルで起動します。
Emergencyキーワードは、/sbin/sulogin
rootユーザーのシェル実行試行が失敗した場合(マンページに従って)代替コマンドを呼び出すため、有効です。/bin/sh
最も深刻な災害の場合は、カーネルに直接接続で起動するように指示できますinit=/bin/sh
。ルートとして実行されるシェルから起動します。ファイルシステムを変更する必要がある場合は、ルートデバイスが書き込み用にマウントされるか、起動後にデバイスが再マウントされるように、ブートパラメータもro
変更する必要があります。rw