Linuxオペレーティングシステムでは、ディスクのマウント情報を保存するために /etc/fstab
ファイルが使用されます。 ファイルに設定エラーが含まれている場合、オペレーティングシステムの起動に失敗する可能性があります。 このトピックでは、Linux Elastic Compute Service (ECS) インスタンスの /etc/fstabファイルの設定エラーが原因で発生するシステム起動例外の原因と解決策について説明します。
問題の説明
/etc/fstab
ファイルを変更した後にLinuxインスタンスのオペレーティングシステムを再起動すると、オペレーティングシステムは期待どおりに起動できません。 また、リモート接続ソフトウェアを使用してインスタンスに接続することはできません。 Virtual Network Computing (VNC) を使用してLinuxインスタンスに接続する場合、次の図に示すように、オペレーティングシステムが緊急モードに入る必要があることを確認するメッセージが表示されます。
Alibaba Cloud Linux
CentOS
Ubuntu
原因
ほとんどの場合、上記の問題は、/etc/fstab
ファイルに誤ったファイルシステムまたはパーティション情報が含まれている場合に発生します。 ファイルに誤ったマウント情報が含まれている場合、または不適切な権限設定やデータ損失などのファイルのアクセスエラーが存在する場合、オペレーティングシステムの起動時に例外が発生する可能性があります。 その結果、オペレーティングシステムの起動に失敗する可能性があります。
解決策
このトピックで説明する設定と説明は、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 6、CentOS 7、CentOS 8、Ubuntu 22.04、およびUbuntu 24.04に適用されます。 他のオペレーティングシステムバージョンの構成は異なる場合があります。 詳細については、対応するオペレーティングシステムの公式ドキュメントを参照してください。
以下の操作はリスクの高い操作です。 偶発的な操作はデータ損失を引き起こす可能性があります。 インスタンスのデータセキュリティを確保するために、操作を実行する前にインスタンスのスナップショットを作成するか、RDSログバックアップなどの機能を有効にすることを推奨します。 詳細については「スナップショットの作成」をご参照ください。
インスタンス設定やデータの変更など、リスクを引き起こす可能性のある操作を実行する前に、データのセキュリティを確保するために、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認することを推奨します。
Alibaba Cloud管理コンソールで機密情報へのアクセス権限を付与した場合、またはユーザー名やパスワードなどの機密情報を送信した場合は、できるだけ早い機会に情報を変更することを推奨します。
インスタンスに接続します。
VNCを使用してインスタンスに接続します。 詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
緊急モードに入ります。
説明Linuxインスタンスの
/etc/fstab
ファイルの設定エラーによって引き起こされた起動エラーを修復するには、インスタンスのオペレーティングシステムが緊急モードに入る必要があります。 オペレーティングシステムがすでに緊急モードになっている場合は、この手順をスキップして以降の手順に進みます。次の手順を実行して、オペレーティングシステムのGRand Unified Bootloader (GRUB) 設定を変更し、緊急モードにします。
Alibaba Cloud Linux
インスタンスを再起動します。 GRUBページが表示されたら、Eキーを押して編集モードに入ります。
GRUB設定で、linuxで始まる設定行にカーソルを移動し、
Ctrl + E
を押して設定行の末尾にカーソルを移動し、行の末尾に次の内容を追加します。systemd.unit=emergency.target
設定行の例を次の図に示します。
Ctrl + X
またはF10
キーを押して、オペレーティングシステムを緊急モードに起動します。緊急モードでは、オペレーティングシステムにログオンするように求められたルートユーザーのパスワードを入力します。
CentOS
インスタンスを再起動します。 GRUBページが表示されたら、Eキーを押して編集モードに入ります。
GRUB設定で、linuxで始まる設定行にカーソルを移動し、
Ctrl + E
を押して設定行の末尾にカーソルを移動し、行の末尾に次の内容を追加します。systemd.unit=emergency.target
設定行の例を次の図に示します。
Ctrl + X
またはF10
キーを押して、オペレーティングシステムを緊急モードに起動します。緊急モードでは、オペレーティングシステムにログオンするように求められたルートユーザーのパスワードを入力します。
Ubuntu
インスタンスを再起動します。 GRUBページが表示されたら、Eキーを押して編集モードに入ります。
GRUB設定で、linuxで始まる設定行にカーソルを移動し、
Ctrl + E
を押して設定行の末尾にカーソルを移動し、行の末尾に次の内容を追加します。systemd.unit=emergency.target
設定行の例を次の図に示します。
Ctrl + X
またはF10
キーを押して、オペレーティングシステムを緊急モードに起動します。緊急モードでは、オペレーティングシステムにログオンするように求められたルートユーザーのパスワードを入力します。
設定エラーを修正します。
次のコマンドを実行して、読み書きするルートパーティションのマウントモードを変更します。
mount / -o remount,rw
blkid
コマンドを実行して、ECSインスタンス上のディスクパーティションとファイルシステムを表示します。 次の図は、ECSインスタンスのデータディスクパーティションが/dev/xvdb1
であり、パーティションのファイルシステムタイプがExt4であることを示しています。次のコマンドを実行して、
/etc/fstab
ファイルを開きます。vim /etc/fstab
コマンド出力のディスクパーティションとファイルシステムの情報が、前の手順で返された情報と一致しているかどうかを確認します。
(オプション) 構成エラーが存在する場合は、エラーを含む構成行にカーソルを移動し、
[I
] キーを押して挿入モードに入り、正しい構成をその行に書き込みます。 次のサンプルコードは、正しい設定の例を示しています。/dev/xvdb1 /mydata ext4 defaults,nofail 0 0
説明デバイスをマウントするときに
nofail
パラメーターを追加できます。 これにより、インスタンスの起動時にデバイスが存在しない場合、インスタンスはデバイスを無視して例外を防ぎます。Escキーを押して挿入モードを終了し、
:wq
と入力し、enterキーを押してファイルを保存して閉じます。
修復結果を確認します。
次のコマンドを実行して、
/etc/fstab
ファイルに設定エラーが含まれているかどうかを確認します。mount -a
上記のコマンドを実行した後にエラーメッセージが報告されない場合、ファイルに構成エラーは含まれません。
オペレーティングシステムを再起動します。
次のコマンドを実行して、オペレーティングシステムを再起動します。 再起動が完了したら、オペレーティングシステムにログオンできます。
reboot
関連ドキュメント
Linuxインスタンスにディスクをマウントする方法については、「Linuxインスタンスのデータディスクの初期化」をご参照ください。