Show Table of Contents
25.10. ブート中のターミナルメニューの編集
ブート時にメニューエントリーを修正し、カーネルに引数を渡すことができます。これは、メニューエントリーエディターインターフェースを使って行い、このインターフェースはブートローダーメニュー内で選択したメニューエントリーで e キーを押すと開始されます。Esc キーはすべての変更を破棄し、標準メニューインターフェースを再度読み込みます。c キーは、コマンドラインインターフェースを読み込みます。
コマンドラインインターフェースは最も基本的な GRUB インターフェースですが、制御を一番多く付与するものでもあります。コマンドラインでは、関連する GRUB コマンドの入力が可能で、それに続けて Enter キーを押すとそのコマンドが実行されます。このインターフェースには、コンテキストをベースにした Tab キー自動入力や行頭に移動する Ctrl+a、行末に移動する Ctrl+e など、shell と同様の高度な機能が搭載されています。さらに、矢印、Home、End、および Delete のキーは bash シェルでの機能と同様に作動します。
25.10.1. レスキューモードでの起動
レスキューモードは、便利なシングルユーザー環境を提供し、通常の起動プロセスを完了できない状況においてシステムの修復を可能にします。レスキューモードでは、システムはすべてのローカルファイルシステムのマウントといくつかの重要なシステムサービスの開始を試みますが、ネットワークインターフェースのアクティブ化や、システムに同時に他のユーザーによるログインを許可したりすることはしません。Red Hat Enterprise Linux 7 では、レスキューモードはシングルユーザーモードと同等であり、
root パスワードを必要とします。
- ブート中にレスキューモードに入るには、GRUB 2 ブート画面で e キーを押して編集を行います。
- 64 ビット IBM Power シリーズの場合は
linux行、x86-64 BIOS ベースシステムの場合はlinux16行、または UEFI システムの場合はlinuxefi行の最後に以下のパラメーターを追加します。systemd.unit=rescue.target
Ctrl+a か Ctrl+e を押して行の最初または最後に移動します。システムによっては、Home と End が機能するものもあります。1、s、およびsingleという同等のパラメーターをカーネルに渡すことも可能であることに注意してください。 - Ctrl+x を押して追加したパラメーターでシステムを起動します。
25.10.2. 緊急モードでのブート
緊急モードは、可能な限り最小限の環境を提供し、システムがレスキューモードに入れない状態でもシステムの修復を可能にします。緊急モードでは、システムは
root ファイルシステムを読み取り専用でマウントし、他のローカルファイルシステムのマウントは試みません。また、ネットワークインターフェースのアクティブ化も行わず、限定的な必須サービスのみを起動します。Red Hat Enterprise Linux 7 では、緊急モードに root パスワードを必要とします。
- 緊急モードに入るには、GRUB 2 ブート画面で e キーを押して編集を行います。
- 64 ビット IBM Power シリーズの場合は
linux行、x86-64 BIOS ベースシステムの場合はlinux16行、または UEFI システムの場合はlinuxefi行の最後に以下のパラメーターを追加します。systemd.unit=emergency.target
Ctrl+a か Ctrl+e を押して行の最初または最後に移動します。システムによっては、Home と End が機能するものもあります。emergencyおよび-bという同等のパラメーターをカーネルに渡すことも可能であることに注意してください。 - Ctrl+x を押して追加したパラメーターでシステムを起動します。
25.10.3. デバッグシェルのブート
systemd デバッグシェルは、起動プロセスの初期に systemd 関連のブート問題を診断するために使用できるシェルを提供します。デバッグシェルでは、systemctl list-jobs や systemctl list-units などの systemctl コマンドを使用してブート問題の原因を調べることができます。また、ログメッセージの数を増やすために、debug オプションをカーネルコマンド行に追加することもできます。systemd において、カーネルコマンドオプション debug は systemd.log_level=debug のショートカットになりました。
手順25.4 デバッグシェルコマンドの追加
このためにのみデバッグシェルをアクティブ化するには、以下の手順を実行します。
- GRUB 2 ブート画面で、編集するメニューエントリーにカーソルを移動し、編集のために e キーを押します。
- 64 ビット IBM Power シリーズの場合は
linux行、x86-64 BIOS ベースシステムの場合はlinux16行、または UEFI システムの場合はlinuxefi行の最後に以下のパラメーターを追加します。systemd.debug-shell
オプションで、debugオプションを追加します。Ctrl+a か Ctrl+e を押して行の最初または最後に移動します。システムによっては、Home と End が機能するものもあります。 - Ctrl+x を押して追加したパラメーターでシステムを起動します。
必要な場合は、
systemctl enable debug-shell コマンドで有効にして、デバッグシェルがブート時に常に起動されるよう設定できます。また、grubby ツールを使用して GRUB 2 メニューのカーネルコマンドラインへの変更を永続的に行うこともできます。grubby の詳細については、「grubby ツールを使用した GRUB 2 メニューの永続的な変更」 を参照してください。
警告
デバッグシェルを使用するには認証が必要ないため、デバッグシェルを永続的に有効にすることにはセキュリティー上のリスクがあります。デバッグシェルはデバッグセッションが終了したときに無効にしてください。
手順25.5 デバッグシェルへの接続
ブートプロセス中に、
systemd-debug-generator により TTY9 にデバッグシェルが設定されます。
- Ctrl+Alt+F9 を押してデバッグシェルに接続します。仮想マシンを使用している場合は、このキーの組み合わせを送信するには、仮想化アプリケーションからのサポートが必要です。たとえば、Virtual Machine Manager を使用している場合は、メニューから → を選択します。
- デバッグシェルには認証が必要ないため、次のようなプロンプトが TTY9 に表示されるはずです:
[root@localhost /]# - 必要な場合は、デバッグシェルにいることを確認するために、以下のようにコマンドを入力します。
/]#
systemctl status $$● debug-shell.service - Early root shell on /dev/tty9 FOR DEBUGGING ONLY Loaded: loaded (/usr/lib/systemd/system/debug-shell.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2015-08-05 11:01:48 EDT; 2min ago Docs: man:sushell(8) Main PID: 450 (bash) CGroup: /system.slice/debug-shell.service ├─ 450 /bin/bash └─1791 systemctl status 450 - デフォルトのシェルに戻るには、ブートが成功した場合に Ctrl+Alt+F1 を押します。
起動に関する問題を診断するために、特定の
systemd ユニットは、カーネルコマンドラインで systemd.mask=unit_name を 1 つ以上追加することにより、マスクできます。ブートプロセス中に追加のプロセスを起動するには、systemd.wants=unit_name をカーネルコマンドラインに追加します。systemd-debug-generator(8) man ページでは、これらのオプションについて説明しています。
25.10.4. root パスワードの変更およびリセット
root パスワードのセットアップは、Red Hat Enterprise Linux 7 のインストールで必須です。root パスワードを忘れたり、失ったりした場合は、そのパスワードをリセットできます。ただし、wheel グループのメンバーであるユーザーは以下のように root パスワードを変更できます。
~]$ sudo passwd root
GRUB 2 でのパスワードの再設定は、Red Hat Enterprise Linux 6 での GRUB のようなシングルユーザモードでの実行はなされません。
single-user モードおよび emergency モードでの操作には、root パスワードが必要となっています。
root パスワードをリセットする 2 つの手順を以下に示します。
- 手順25.6「インストールディスクを使用した root パスワードのリセット」 では、GRUB メニューを編集せずにシェルプロンプトにアクセスする方法について説明しています。この方法は 2 番目の手順よりも短く、推奨される方法でもあります。ブートディスクまたは通常の Red Hat Enterprise Linux 7 インストールディスクを使用できます。
- 手順25.7「rd.break を使用した root パスワードのリセット」 では、制御が
initramfsからsystemdに渡される前にrd.breakを使用してブートプロセスを中断する方法について説明しています。この方法の欠点は、手順が多いことです。GRUB メニューを編集し、時間がかかる可能性がある SELinux ファイルの再ラベル行うか、SELinux 強制モードを変更してブート完了時に/etc/shadow/の SELinux セキュリティーコンテキストを復元する必要があります。
手順25.6 インストールディスクを使用した root パスワードのリセット
- システムを起動し、BIOS 情報が表示されたときに、ブートメニューのオプションを選択して、インストールディスクからのブートを選択します。
- を選択します。
- を選択します。
- デフォルトオプションである を選択します。暗号化されたファイルシステムが見つかった場合は、この時点で、パスフレーズを入力するよう求められます。
- シェルプロンプトが表示されるまで OK を押して、表示された情報を承認します。
- 以下のようにファイルシステム
rootを変更します。sh-4.2#
chroot /mnt/sysimage passwdコマンドを入力し、コマンドラインに表示される指示にしたがってrootパスワードを変更します。- 時間がかかるディスクの SELinux の再ラベルを防ぐために
autorelableファイルを削除します。sh-4.2#
rm -f /.autorelabel exitコマンドを入力してchroot環境を終了します。exitコマンドを再び実行して初期化を再開し、システム起動を完了します。
手順25.7 rd.break を使用した root パスワードのリセット
- システムを起動し、GRUB 2 ブート画面で e キーを押して編集を行います。
linux16行またはlinuxefi行 (UEFI システムの場合) の最後またはその付近からrhgbパラメーターとquietパラメーターを削除します。Ctrl+a か Ctrl+e を押して行の最初または最後に移動します。システムによっては、Home と End が機能するものもあります。重要
システムメッセージを有効にするには、rhgbとquietのパラメーターを削除する必要があります。- 64 ビット IBM Power シリーズの場合は
linux行、x86-64 BIOS ベースシステムの場合はlinux16行、または UEFI システムの場合はlinuxefi行の最後に以下のパラメーターを追加します。rd.break enforcing=0
enforcing=0オプションを追加すると、時間がかかる SELinux の再ラベルプロセスを省略できます。initramfsは Linux kernel に制御が渡される前に停止するため、rootファイルシステムで作業を行えます。initramfsプロンプトは、Linux 行で指定された最後のコンソールに表示されます。 - Ctrl+x を押して変更したパラメーターでシステムを起動します。暗号化されたファイルシステムの場合は、この時点でパスワードが必要です。ただし、パスワードプロンプトはロギングメッセージに隠れて表示されないことがあります。プロンプトを表示するには、Backspace キーを押します。ロギングメッセージを無視して、キーをリリースし、暗号化されたファイルシステムのパスワードを入力します。
initramfsswitch_rootプロンプトが表示されます。 - ファイルシステムが
/sysroot/で読み取り専用でマウントされます。ファイルシステムが書き込み可能になっていないと、パスワードの変更はできません。ファイルシステムを書き込み可能で再マウントします。switch_root:/#
mount -o remount,rw /sysroot - 書き込みが有効な状態でファイルシステムが再マウントされます。以下のようにファイルシステムの
rootを変更します。switch_root:/#
プロンプトがchroot /sysrootsh-4.2#に変わります。 passwdコマンドを入力し、コマンドラインに表示される指示にしたがってrootパスワードを変更します。システムが書き込み可能でないと、passwd ツールは以下のエラーメッセージを表示して失敗します。Authentication token manipulation error
- パスワードファイルを更新すると、間違った SELinux セキュリティーコンテキストのファイルになります。次回のシステムのブート時にすべてのファイルを再ラベルするには、以下のコマンドを入力します。
sh-4.2#
また、手順 3 でtouch /.autorelabelenforcing=0オプションを指定した場合は、大きいディスクを再ラベルするのにかかる時間を節約するために、この手順を省略できます。 - ファイルシステムを読み取り専用で再マウントします。
sh-4.2#
mount -o remount,ro / exitコマンドを入力してchroot環境を終了します。exitコマンドを再び実行して初期化を再開し、システム起動を完了します。暗号化されたファイルシステムの場合は、この時点でパスワードまたはパスフレーズが必要です。ただし、パスワードプロンプトはロギングメッセージに隠れて表示されないことがあります。プロンプトを表示するには、Backspace キーを押したままにします。ロギングメッセージを無視して、キーをリリースし、暗号化されたファイルシステムのパスワードを入力します。注記
SELinux の再ラベルプロセスには長い時間がかかることがあることに注意してください。このプロセスが完了すると、システムが自動的に再起動されます。- 手順 3 で
enforcing=0オプションを追加し、手順 8 でtouch /.autorelabelコマンドを省略した場合は、以下のコマンドを入力して/etc/shadowファイルの SELinux セキュリティーコンテキストを復元します。~]#
以下のコマンドを入力して、SELinux ポリシーの強制を再び有効にし、ポリシーの強制が有効になっていることを確認します。restorecon /etc/shadow~]#
setenforce 1~]#getenforceEnforcing

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.