web-dev-qa-db-ja.com

シングルユーザーモードでubuntuを正しくシャットダウンする方法は?

私はたくさん検索しましたが、多くの人がこの問題に遭遇したことがわかりました。 vmlinuz行の最後にrwinit =/bin/bashを追加することで、UBUNTU 10.04 LTSのシングルユーザーモードに入ることができますが、shutdownまたはrebootと入力すると、それができないと表示されます。次に、「/ sbin/init 0」を実行すると、upstartのsockに接続できないと表示されました。

私の推測では、/ sbin/initを/ bin/bashに置き換え、init(またはupstart)がないため、シャットダウンを実行できません。

誰かが出口に入ると言ったのに気づきました、そして私は通常のブートの次の段階に入る必要がありますそれを試しました、そして私のVMWareのubuntuシステムはスタックし、少なくとも点滅し続けるCAPLOCKライトの意味で奇妙に動作します..(CPU占有率もスコアリング)

どんなご指導も大歓迎です、よろしくお願いします〜

==== UPDATED ===== init =/usr/bashの代わりにsingleを試しましたが、マルチユーザーモードになりました。

4
allan ruin

シェルの横にinitまたは他のプロセスがない場合、シャットダウンするものはほとんどありません。実際、唯一重要なことはファイルシステムです。同期してから、ディスク上のすべてのファイルシステムをアンマウントするか、読み取り専用として再マウントします(たとえば、rootfsなど、アンマウントできない場合)。

sync
umount /home
mount -o remount,ro /

この後、プラグを抜いた方がよいでしょう。


あなたが試すことができるもう一つのこと(しかし私はしていません)は元のinitを開始することです。 pid1シェル以外のプロセスが実行されていないことを確認してから、ルートディレクトリに移動してexecinit

cd /
sync
exec /sbin/init

execは現在のプロセスを指定されたプロセスに置き換えるため、この方法で開始すると、/ sbin/initはシェルから特別なpid1を取得します。

ただし、pid 1が終了すると、カーネルはすぐにパニックになります。そのため、これを行う前に、少なくともファイルシステムをsyncしてください。

カーネルがパニックになると、メッセージを出力し、キーボードのLEDの点滅を開始し、その他すべてを停止します。通常はCPUにアイドル状態を維持するように指示するループも停止します。これがおそらく、CapsLockの狂気と仮想マシンによる高いCPU使用率の原因です。

あなたの「誰か」は正しかった–realシングルユーザーモードで、exit willと入力する通常マルチユーザーに切り替えるか、少なくともクリーンリブートします。しかしながら、 init=/bin/bashnotこのモードを開始します;カーネルとbashシェル以外は、何も起動しません。 実際のシングルユーザーモードに到達するには、カーネルコマンドラインにsingleを追加する必要があります。 (時々 1またはsは機能しますが、すべてのディストリビューションがランレベルを使用するわけではありません。)Ubuntuでは、これは「リカバリモード」と呼ばれていました。

3
user1686