
実稼働サーバーが起動しないため(非常に重要なサーバー - Rhel 7.2)
リンクに従ってシングルユーザーモードでアクセスしようとします -https://www.tecmint.com/boot-into-single-user-mode-in-centos-7/
VMconsoleを使用してシングルユーザーモードの詳細を入力した後、Linuxは次の場所で停止します。
この段階から本番サーバーを復旧するために何ができるでしょうか?
答え1
インストール メディアを使用して起動し、そこから診断/修正を行ってください。重要なものはすべてバックアップしてください。マシンまたはシステムが壊れていて、移行または最初からの再インストールが必要になる可能性があります。
答え2
GRUB ブート メニューに複数のカーネル バージョンが含まれている場合は、古いバージョンでブートしてみてください。(少なくとも現在のカーネルと OS インストーラーによって使用されるカーネルが常に存在するはずです。後者のバージョン番号は0-rescue-<numbers>
.
古いカーネルで起動が成功した場合、問題は initramfs ファイルの破損または欠落にある可能性があります。/boot
たとえば、カーネル更新パッケージのインストール中にファイルシステムのディスク領域が不足した場合、これはよくあることです。
(各カーネル バージョンには独自の initramfs ファイルがあるため、問題が最新の更新中に発生した場合は、古いカーネルとその initramfs が機能する可能性が高くなります。)
システムが古いカーネルで正常に動作している場合は、次のようなコマンドを使用できます。
mkinitrd /boot/initramfs-3.10.0-327.el7.img 3.10.0-327.el7
新しいカーネルの initramfs ファイルを再作成します。
しかし、古いカーネルでの起動も失敗する場合は、別の問題である可能性があります。その場合は、インストール メディアからレスキュー モード ブートを実行する必要があります。VMware の場合、これは、仮想ハードウェアに仮想 CD-ROM ドライブが含まれていることを確認し、RHEL 7.x インストール メディア (できれば 7.2 以降) の ISO イメージを仮想 CD ドライブに「挿入」し、VM に CD から起動するように指示することを意味します。
インストール メディアの GRUB ブート メニューが表示されたら、「トラブルシューティング」を選択し、「RedHat Linux システムの修復」を選択します。インストール プログラムが読み込まれ、通常のインストールと同様に言語とキーボードの設定を求められますが、その後修復モードに切り替わります。修復する OS インストールの損傷がそれほどひどくない場合は、修復するインストールのディスクを自動的にマウントするように提案されます。その後、必要に応じてさらにトラブルシューティングを行い、修正を適用するために使用できるルート コマンド プロンプトが表示されます。
レスキューブート環境では、実際のルートファイルシステムは にマウントされます/mnt/sysimage
。通常のパス名(/mnt/sysimage をプレフィックスに付けずに)を使用してアクセスできるようにするには、すべて) の場合は、 のコマンドを使用できます。このchroot /mnt/sysimage
コマンドは、レスキュー コマンド プロンプトに入る直前にも提案されます。
コマンドを使用した後はchroot /mnt/sysimage
、インストールされている OS で使用できるシェル コマンドをすべて使用できるようになります。たとえば、カーネルの initramfs ファイルが から見つからない場合は/boot
、上記のように コマンドを使用して再作成できますmkinitrd
。
答え3
私も同様の問題を抱えていました。最新のカーネルは常にパニックを起こしますが、以前のカーネルは問題なく動作していました。幸いにも、ログインして何が起こっているのか確認することができました。
開発者の 1 人が「root」グループを「oot」に変更したため、/boot は ID 1000 (root) によって所有されなくなりました。yum インストールを実行したところ、/boot にカーネルを書き込めないと表示され、これが原因であることがわかりました... シャドウ ファイルを手動で編集し、chown -R アクションを実行した後、新しいカーネルが期待どおりにインストールされました。
TLDR、システム ファイルへの権限をチェックし、誰もルート アカウント情報を壊していないことを確認します。