そんな場面に出くわしたとき、焦ってサーバーを再インストールしようとしていませんか?
実は、RHEL10にはrootパスワードを安全に再設定する方法が2つあります。
どちらも知っておけば、万が一の障害対応でも冷静に動けます。
この記事では、RHEL10でのrootパスワード設定・復旧方法を、実際の手順を交えて解説します。
この記事のポイント
・RHEL10でrootパスワードを復旧する2つの方法を解説
・GRUBから init=/bin/bash を使ったシングルユーザー的な起動手順
・ISOレスキューモードから chroot でパスワード再設定する手順
・SELinuxの .autorelabel が必要な理由と忘れた場合の影響
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
RHEL10のrootパスワード復旧が「従来と少し変わった」理由
RHEL9以前と比べ、RHEL10ではいくつかの起動フローの変更が入っています。特にGRUBの設定やinitプロセスの扱いが厳格になったため、
従来の方法がそのまま使えないケースが出てきました。
また、SELinuxが有効な環境では、パスワード変更後に必ず
touch /.autorelabel を実行してセキュリティラベルを再付与する必要があります。このステップを忘れると、再起動後にSELinuxの強制モードでログインが拒否される場合があります。
以下では2つの方法を順に解説します。
方法1:GRUBから init=/bin/bash で起動する
OSがインストール済みで、ISOメディアがない場合に有効な方法です。サーバーコンソールに物理アクセスできる(またはIPMI/iDRACのリモートコンソールが使える)環境で試してください。
1. GRUBメニューでカーネル行を編集する
サーバーを起動してGRUBメニューが表示されたら、eキーを押して編集モードに入ります。linux から始まる行の末尾に移動し、以下を追記します。init=/bin/bash
2. ファイルシステムを読み書き可能に再マウントする
起動直後は/(ルートファイルシステム)が読み取り専用です。以下のコマンドで読み書き可能な状態に変更します。
mount -o remount,rw /
3. rootパスワードを再設定する
passwd root # 新しいパスワードを2回入力する
「passwd: all authentication tokens updated successfully.」が表示されれば成功です。
4. SELinuxラベルを再付与してから再起動する
SELinuxが有効な環境では、このステップが重要です。touch /.autorelabel exec /sbin/reboot -f
/.autorelabel ファイルを作成することで、次回起動時にSELinuxが全ファイルのセキュリティラベルを自動で再付与します。この処理は初回起動で少し時間がかかりますが、正常な動作です。
方法2:ISOレスキューモードから chroot で復旧する(実際に使用した方法)
筆者がRHEL10のサーバー作業で実際に使ったのはこちらの方法です。GRUBの編集が効かない環境や、OSの起動自体に問題がある場合でも有効な手順です。
1. RHEL10のISOでサーバーをブートする
RHEL10のインストールメディア(ISOイメージ)でサーバーを起動します。起動メニューが表示されたら「Troubleshooting」を選択し、続けて「Rescue a Red Hat Enterprise Linux system」を選びます。
2. レスキューモードでファイルシステムをマウントする
レスキューモードが起動すると、既存のファイルシステムのマウント方法を尋ねるプロンプトが表示されます。「Continue」を選ぶと
/mnt/sysimage に既存のファイルシステムが自動でマウントされます。3. chroot で既存のOSに入る
chroot /mnt/sysimage
chroot コマンドは「ルートディレクトリを一時的に切り替える」操作です。これにより、レスキュー環境のシェルから既存のOSのコマンド群(
passwd を含む)を実行できるようになります。4. rootパスワードを再設定する
passwd root # 新しいパスワードを2回入力する
5. SELinuxラベル再付与を予約して再起動する
touch /.autorelabel exit reboot
exit で chroot 環境を抜け、reboot で再起動します。ISOを取り外すか、ブート順序を変更してハードディスクから起動させてください。
.autorelabel を忘れるとどうなるか
SELinuxが有効な環境(RHEL10のデフォルト)で/.autorelabel を作成せずに再起動した場合、SELinuxのラベルが正しく付与されていない状態になります。
その結果、sshd や PAM による認証処理が正常に動作せず、
正しいパスワードを入力してもログインを拒否されることがあります。
もし .autorelabel なしで再起動してしまった場合は、再度レスキューモードで起動し直し、
chroot /mnt/sysimage の後に restorecon -Rv /etc を実行してラベルを手動で復元するか、SELinuxを一時的にPermissiveモードに変更して対応します。
2つの方法の使い分けまとめ
| 方法 | ISOメディア | OSが起動できる状態 | 適したケース |
|---|---|---|---|
| 方法1(init=/bin/bash) | 不要 | 必要 | GRUBメニューにアクセスできる場合 |
| 方法2(ISOレスキューモード) | 必要 | 不要 | OS起動に問題がある場合・確実に復旧したい場合 |
まとめ
RHEL10のrootパスワード復旧は、状況に応じて2つのアプローチがあります。・方法1:GRUBから
init=/bin/bash を追記して起動 → mount -o remount,rw / → passwd root・方法2:ISOのレスキューモードで起動 →
chroot /mnt/sysimage → passwd rootどちらの方法でも、最後に
touch /.autorelabel を実行してSELinuxのラベル再付与を忘れずに。20年以上Linuxサーバーを運用してきた経験から言うと、
「パスワードを忘れた = 終わり」ではありません。
正しい手順を知っていれば、落ち着いて対処できます。
「障害が起きたとき、冷静に動ける自信がありますか?」
rootパスワードの復旧はトラブルシューティングの基本の一つです。しかし、本当に重要なのはその先。障害対応、セキュリティ設定、ユーザー管理まで、Linuxを安全に運用するには体系的な知識が欠かせません。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます