この記事のポイント
・シングルユーザーモードはrootで自動ログイン・最小デーモンの障害復旧用モード
・GRUB起動メニューでカーネル行を編集して single もしくは systemd.unit=rescue.target を渡す
・パスワード忘れ復旧・fsck手動実行・破損ファイル修復が主な用途
・CentOS 6 / RHEL 7 / Rocky Linux 9 で起動手順が違うので世代別に押さえる
こんな緊急事態のとき、最後の頼みの綱になるのがシングルユーザーモードです。最小限のデーモンだけを起動し、rootアカウントでパスワードなしにシステムへ入れるレスキューモードで、Linuxサーバー管理者が必ず一度は使う機能です。
この記事では、Linuxをシングルユーザーモードで起動する方法を、CentOS 6世代の操作手順(既存資産)に加え、RHEL 7以降のsystemd時代のrescue.target / emergency.targetの操作も含めて解説します。
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
シングルユーザーモードとは何か(背景・原理)
シングルユーザーモードは、必要最小限のデーモンを起動し、パスワード入力することなくrootアカウントでログインするモードです。主にメンテンスや、障害時の調査に使用するモードになります。
※例ではCentOS6.3を使用しています。
このモードの特徴は3つあります。
・ネットワーク・X Window・大半のサービスが起動しない:余計なプロセスが動かないので、ファイルシステムの修復やパッケージ破損の復旧に向いています
・パスワード入力なしでrootシェルが開く:rootパスワードを忘れたときの最後の救済手段になります
・ローカルコンソール限定:SSHは動かないため、サーバーの物理コンソール(または仮想化ホストの仮想コンソール)からの操作が前提です
このセキュリティ特性のため、本番サーバーではBIOS/GRUBにパスワードを設定して、物理アクセス権のない人がシングルユーザーモードを使えないようにする運用が標準です。
シングルユーザーモードで起動する基本的な使い方(CentOS 6 / GRUB Legacy)
GRUB Legacy(CentOS 6世代)でのシングルユーザーモード起動手順は、起動メニュー画面でカーネル行を編集し、末尾に「single」を追加するだけです。元記事の手順を以下にそのまま残します。1.「Press any key・・・」の画面で「ESC」キーを押下します
2.「CentOS・・・」と表示されるので、そのまま「e」キーを押下します
3.「kernel・・・」で始まる行にカーソルを合わせ、「e」キーを押下します
4. 行末に「single」を追記して、「Enter」キーを押下します
5. 画面が戻るので、ここで「b」キーを押下します
6. コマンドプロンプトが表示されればシングルユーザーモードで起動しています
RHEL 7 / 8 / 9系(systemd時代)でシングルユーザーモードを起動する
RHEL 7以降ではinit→systemdへ移行したため、「single」キーワードの代わりに「systemd.unit=rescue.target」「systemd.unit=emergency.target」を渡す方式に変わりました。GRUB 2のメニュー編集手順は以下です。1. GRUBメニューで対象カーネル行にカーソルを合わせ「e」キーを押す
GRUB 2の起動メニュー表示中にカーソル移動で対象カーネルを選び、「e」キーで編集モードに入ります。CentOS 6のように途中で「ESC」を押す必要はありません。2.「linux16」または「linux」で始まる行末に rescue.target を追記する
編集画面で「linux16」または「linux」で始まる行を探し、行末に systemd.unit=rescue.target を追加します。# RHEL 7 / 8 / 9 / Rocky 9 / AlmaLinux 9 共通の編集例 linux ($root)/vmlinuz-... root=/dev/mapper/rhel-root ro crashkernel=auto rhgb quiet systemd.unit=rescue.target
3. rootパスワード入力後、シングルユーザーシェルへ入る
RHEL 7以降のrescue.targetでは、rootパスワードの入力が求められます。これは2001年初期世代と違うので注意が必要です。Give root password for maintenance (or press Control-D to continue):
シングルユーザーモード操作 早見表
| やりたいこと | コマンド / 手順 |
|---|---|
| CentOS 6でシングルユーザーモード起動 | GRUB編集で kernel 行末に single 追記 |
| RHEL 7以降でレスキューモード起動 | GRUB編集で linux 行末に systemd.unit=rescue.target 追記 |
| RHEL 7以降で緊急モード起動 | GRUB編集で linux 行末に systemd.unit=emergency.target 追記 |
| シングルユーザーモードから通常起動へ復帰 | reboot |
| レスキュー中にルートをrw再マウント | mount -o remount,rw / |
| rootパスワードを変更 | passwd root |
| fsckでファイルシステムをチェック | fsck -y /dev/sda1 |
応用・実務Tips
1. rootパスワードを忘れた時のリセット手順
シングルユーザーモードの最頻出用途がrootパスワードリセットです。RHEL 7以降では以下の手順を取ります。# GRUBで linux 行末に rd.break enforcing=0 を追加してブート # initramfsのemergencyシェルに入る switch_root:/# mount -o remount,rw /sysroot switch_root:/# chroot /sysroot sh-4.4# passwd root 新しいパスワード: 新しいパスワードを再入力してください: passwd: すべての認証トークンが正しく更新できました。 sh-4.4# exit switch_root:/# exit
2. fsckでファイルシステムを手動修復する
壊れたファイルシステムを修復するとき、対象パーティションをアンマウントした状態でfsckを流す必要があります。rootパーティション本体に対しては、シングルユーザーモード+リードオンリーマウントが必須です。# レスキューモードでリードオンリー再マウント → fsck [root@Tiger ~]# mount -o remount,ro / [root@Tiger ~]# fsck -y /dev/sda1 fsck from util-linux 2.37.4 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure ... /dev/sda1: 12345/65536 files (0.1% non-contiguous), 234567/1048576 blocks
3. GRUBにパスワードを設定してシングルユーザーモード乱用を防ぐ
シングルユーザーモードはrootシェルへ無条件で到達できるため、物理アクセス権のある人なら誰でもサーバーを乗っ取れる経路になります。本番サーバーではGRUBパスワードを設定して、起動メニュー編集自体を制限します。# RHEL 7以降のGRUBパスワード設定 [root@Tiger ~]# grub2-setpassword 新しいパスワード: 新しいパスワードを再入力: [root@Tiger ~]# ls /boot/grub2/user.cfg /boot/grub2/user.cfg
「Welcome to emergency mode」が出た時の対処法
予期せぬ起動失敗で勝手にemergency modeへ落ちることがあります。原因の8割はfstabの記述ミスです。Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode. Give root password for maintenance (or press Control-D to continue):
・fstabの誤記:mount -o remount,rw / で書き込み可にしてから vi /etc/fstab で修正
・削除済みディスクUUIDの残存:旧UUIDを fstab から削除
・SELinuxラベル不整合:touch /.autorelabel して再起動でラベル再構築
原因を1つずつ潰してから systemctl default で通常モードに戻します。
本記事のまとめ
Linuxをシングルユーザーモードで起動する手順は、サーバー管理者の必須スキルです。・CentOS 6世代:GRUB Legacyでkernel行末に single 追記
・RHEL 7 / 8 / 9系:GRUB 2でlinux行末に systemd.unit=rescue.target 追記
・rootパスワード復旧:rd.break で initramfs シェルへ入り passwd root
・緊急モード:systemd.unit=emergency.target で最小限のシェルへ
障害復旧の現場では「ssh越しに直そうとして余計に壊す」事故が多いです。シングルユーザーモードで切り離してから慎重に修復する習慣をつけると、本番事故時のダメージを最小化できます。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:rootパスワードを忘れた場合の再設定方法|GRUB2でRHEL9/AlmaLinux/Ubuntu対応
- 前のページへ:Linuxをレスキューモードで起動する
- この記事の属するカテゴリ:Linuxtips・インストール・起動へ戻る

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