シングルユーザーモードで起動できません

シングルユーザーモードで起動できません

私のログイン情報(間違ったスクリプト/ 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/suloginrootユーザーのシェル実行試行が失敗した場合(マンページに従って)代替コマンドを呼び出すため、有効です。/bin/sh

最も深刻な災害の場合は、カーネルに直接接続で起動するように指示できますinit=/bin/sh。ルートとして実行されるシェルから起動します。ファイルシステムを変更する必要がある場合は、ルートデバイスが書き込み用にマウントされるか、起動後にデバイスが再マウントされるように、ブートパラメータもro変更する必要があります。rw

おすすめ記事