SUSE Linux Enterprise で Btrfs 読み取り専用ファイルシステムのエラーを修正する

SUSE Linux Enterprise Server (SLES) でファイルを保存したりサービスを更新しようとした際に、Linux から「読み取り専用ファイルシステム」というメッセージが表示されることがあります。このメッセージは、マウントが意図的に読み取り専用に設定されている、読み取り専用の Snapper スナップショットで起動した、または Btrfs が問題を検出してボリュームを保護するために書き込みを受け付けなくなった、といった原因が考えられます。これらの原因によって対処方法が異なります。まず、どのファイルシステムとマウントが関係しているかを特定してください。カーネルログを確認し、重要なデータを保護する前に、強制的に再マウントしたり、修復コマンドを実行したりしないでください。

エラーの意味

Btrfsは、多くの標準インストールでSLESルートファイルシステムとしてデフォルトで使用されているコピーオンライト方式のLinuxファイルシステムです。Btrfsサブボリュームは、ファイルシステムの独立してマウント可能な部分です。スナップショットは、変更されていないデータブロックを共有するサブボリュームの特定時点のコピーです。SnapperとSLESブートメニューは、スナップショットを使用してシステム変更から復旧できます。スナップショットから起動すると、含まれる部分が意図的に読み取り専用でマウントされます。また、Btrfsは、特定の構造エラーを検出した後、それ以上の書き込みを避けるために読み取り専用モードに切り替えることができます。SUSEは、SLES 15 SP7 Snapperガイドでスナップショットの動作について説明しています。Btrfsプロジェクトは、ツリーチェッカーのドキュメントで、ファイルシステムの構造チェックによってボリュームを読み取り専用モードに切り替えて、それ以上の損傷を防ぐことができると説明しています。メニューのラベルと利用可能な復旧オプションは、SLESサービスパックとストレージレイアウトによって異なる場合があります。

権限の問題は異なります。「権限が拒否されました」は通常、所有権またはアクセス制御を示します。「読み取り専用ファイルシステム」(多くの場合 と表示されますEROFS)は、ファイルシステムまたはサブボリュームの状態を示します。 でファイル権限を変更しても、chmod読み取り専用のマウントが書き込み可能になるわけではありません。

何かを変える前に

これが本番サーバー、データベースボリューム、または重要なデータの唯一のコピーである場合は、システム管理者に連絡してバックアップを確認してから復旧を試みてください。システムがまだ読み取り可能な場合は、障害が発生しているデバイスに負荷をかけずにできるのであれば、最も重要なファイルを別の正常なストレージにコピーしてください。Btrfsでは、重大なエラーが発生した後、最近のメタデータの変更がメモリ上にのみ保持される場合があります。マウント解除や再起動を行うと、コミットされていない変更が失われる可能性があります。ログにI/Oエラー、デバイスの消失、または繰り返しのリセットが記録されている場合は、書き込みの復元よりもストレージの健全性とデータ保護を優先してください。

ルーチン的な最初のステップとして実行しないでくださいbtrfs check --repair。Btrfsプロジェクトは、修復モードは損傷を引き起こす可能性があり、あらゆる種類の破損を修復できるわけではないと警告しています。また、読み書き可能な再マウントを繰り返し強制しないでください。カーネルが何らかの理由でファイルシステムを保護している場合、すぐに失敗する可能性があります。

ステップ1:影響を受けるマウントを特定する

書き込みに失敗したパスを使用してください。たとえば、サービスが に書き込みできない場合は/srv/app、ルートファイルシステムに問題があると想定するのではなく、そのパスを調べてください。

findmnt -T /srv/app -o TARGET,SOURCE,FSTYPE,OPTIONS

影響を受けるファイルまたはディレクトリに置き換えてください/srv/app。出力で Btrfs ソース、マウント ターゲット、およびオプション または を確認してくださいro。rwターゲットは/、 、別のデータ マウント、またはサブボリュームである可能性があります。続行する前に、ソースとターゲットを記録してください。コマンドが別のファイルシステム タイプを報告する場合、そのパスには Btrfs 固有の手順は適用されません。

ファイルシステムが読み取り専用になった理由については、現在の起動時のカーネルメッセージを確認してください。

sudo journalctl -k -b --no-pager | grep -iE 'btrfs|I/O error|read-only|readonly'

Btrfsエラーや「強制読み取り専用」メッセージ、チェックサムエラーやツリーエラー、デバイスI/O障害、デバイスの切断などを確認してください。ログ行は手がかりであり、完全な診断ではありません。ストレージまたはハードウェアのサポートチームにとってログが役立つ可能性があるため、再起動する前に関連するメッセージとタイムスタンプを保存してください。

ステップ2:意図的に作成された読み取り専用スナップショットを確認する

GRUB の起動可能なスナップショットからサーバーが起動された場合、そのスナップショットに含まれるファイルは設計上、読み取り専用になります。これは以前のシステム状態を確認するためのリカバリ環境であり、自動的に永続的に復元されたシステムではありません。スナップショットの起動が誤って行われた場合は、管理者にブートエントリを確認してから再起動し、通常のデフォルトの SLES エントリを選択してください。SUSE は、スナップショットを起動すると、含まれるファイルシステムの一部が読み取り専用でマウントされることを文書化しており、SLES 15 SP7 Snapper リカバリ ガイドで、別途ロールバック手順について説明しています。

親ファイルシステムが読み書き可能でマウントされている場合でも、特定のスナップショットは読み取り専用になることがあります。意図的にスナップショットを操作する場合は、変更せずに内容を確認してください。

sudo btrfs property get -t subvol /path/to/subvolume ro

パスをサブボリュームのマウントパスに置き換えてください。 の結果は、ro=trueサブボリュームのプロパティが読み取り専用であることを確認します。このフラグについては、Btrfs プロパティのリファレンスを参照してください。Snapper で管理または受信したバックアップ スナップショットを単純に読み書き可能に切り替えないでください。読み取り専用ステータスは、ロールバックまたは増分バックアップの前提条件の一部である可能性があります。意図したタスクの場合は、サポートされている Snapper ワークフローを使用するか、書き込み可能なサブボリュームを別途作成してください。

ステップ3:マウント構成とストレージの状態を確認する

findmntレポートroとログに Btrfs エラーや I/O エラーが表示されない場合は、 の該当するマウント エントリを確認してください/etc/fstab。マウントは、リカバリ、アプライアンス イメージ、またはデータ保護ポリシーのために意図的に読み取り専用に構成されている可能性があります。サービス所有者に意図した状態を確認してからのみ構成を変更してください。また、システムがトランザクション展開または読み取り専用ルート展開を使用しているかどうかも確認してください。SLES のトランザクション更新ガイドには、このような構成とそのメンテナンス ワークフローが記載されています。エントリが明示的に書き込み可能であり、デバイスが正常で、パスが読み取り専用のスナップショットでない場合は、管理者は一時的な再マウントを試みることができます。

sudo mount -o remount,rw /mountpoint

/mountpointで示される正確なターゲットに置き換えてくださいfindmnt。これは破損の診断や修復を行うものではありません。失敗した場合、エラーが返された場合、またはカーネルログにストレージの問題が表示された場合は、より多くのオプションで再試行するのではなく、処理を停止して復旧計画に進んでください。

容量の問題の可能性については、Btrfsの割り当てとデバイスの状態を確認してください。

sudo btrfs filesystem usage /mountpoint
sudo btrfs filesystem show /mountpoint

SUSE は、Btrfs ではデータとメタデータが別々に割り当てられるため、通常のディスク空き容量サマリーは誤解を招く可能性があると指摘しています。Snapper スナップショットもかなりの容量を保持する可能性があります。ただし、「デバイスに空き容量がありません」というメッセージは、Btrfs の読み取り専用エラーとは異なります。アプリケーションが実際に受信したメッセージを確認してください。仮説を検証するためだけにスナップショットを削除しないでください。まず、スナップショットの内容を確認し、該当する保持ポリシーに従ってください。詳細については、SLES 15 SP7 ファイルシステムのトラブルシューティング ガイドを参照してください。

ステップ4:ファイルシステムの復旧が必要かどうかを判断する

カーネルログに Btrfs エラーが表示された場合、デバイスが見つからない場合、または再マウントが拒否された場合は、修復作業の前にログを保存し、検証済みのバックアップまたはストレージレベルのスナップショットを作成してください。非ルートデータボリュームの場合は、メンテナンス期間を計画し、オフラインチェックの前にアンマウントしてください。ルートファイルシステムの場合は、SUSE インストールメディアまたはレスキューメディアを使用し、SLES のリリースとエラーシグネチャに応じた手順に従ってください。デバイス名を推測しないでください。Btrfs ファイルシステムは複数のデバイスにまたがる可能性があるため、まずすべてのメンバーと正しいマウントまたはデバイス識別子を確認してください。

SUSEのSLES 15 SP7管理ガイドには、マウントできないルートBtrfsパーティションに関する専用のセクションがあります。そこでは、その起動失敗に対する復旧オプションについて説明しています。これらの手順は、マウントされたすべての読み取り専用ファイルシステムのログをクリアする必要があるという意味ではありません。btrfs -rescueの上流マニュアルでは、これはマウント中の特定のログ再生失敗に対応するものであり、最後にコミットされたトランザクション以降の変更を破棄する可能性があると説明されていますbtrfs rescue zero-log。記録されたエラーがドキュメントに記載されているケースと一致し、復旧計画にデータ損失の可能性が考慮されている場合にのみ使用してください。

btrfs checkデフォルトでは、マウントされていないファイルシステム上で読み取り専用で実行されます。初期評価の際は、この状態を維持し、出力結果をSUSEサポートまたはBtrfsスペシャリストと共有してください。btrfs -checkの公式マニュアルでは、経験豊富なユーザーまたは開発者の助言なしに使用しないよう明確に警告しています--repair。マウントされた、変更中のファイルシステム上でオフラインチェッカーを実行しないでください。

ステップ5:復旧状況を確認する

原因が修正されたら、復旧計画で指示された場合にのみ再起動してください。その後、findmnt -T /path -o TARGET,SOURCE,FSTYPE,OPTIONS再度使用して、意図したマウントが読み書き可能であることを確認してください。カーネルログで、BtrfsまたはI/Oエラーが新たに発生していないか確認してください。最後に、影響を受けたサービスまたはアプリケーションが正常に動作し、バックアップが引き続き利用可能であることを確認してください。再マウントが成功しただけでは、ストレージが正常であるとは言えません。

ファイルシステムが読み取り専用モードに戻ったり、デバイスが切断されたり、エラーが継続したりする場合は、書き込みを停止し、保存されたログ、findmnt出力、Btrfsデバイスリスト、SLESサービスパックレベル、およびストレージコントローラの詳細を添えてエスカレーションしてください。これらの情報は、意図的なスナップショットやマウントオプションと、メディア、接続、ドライバ、またはファイルシステムの損傷を区別するのに役立ち、保護的な読み取り専用状態がより大きな復旧問題に発展するのを防ぎます。

コメントを残す

Pardus XFCE vs. GNOME:公平なメモリベンチマークでわかることとわからないこと

Pardus XFCE vs. GNOME:公平なメモリベンチマークでわかることとわからないこと

Pardus XFCEとGNOMEのメモリ使用量を公平に比較​​します。公式の25.2ソースコードで確認できる内容、利用可能なRAMの測定方法、そしてどちらのエディションがあなたのPCに適しているかをご覧ください。

HamoniKR OSレビュー:韓国の国家Linuxは企業向けに準備万端か?

HamoniKR OSレビュー:韓国の国家Linuxは企業向けに準備万端か?

ビジネス向けデスクトップOSであるHamoniKR OS 8 Paektuの実践的なレビュー。Ubuntu 24.04をベースとしている点、2034年までのアップデート保証、韓国のワークフロー、企業向けパイロットテストなどを網羅しています。

Harmonica OS (HamoniKR) で忘れてしまったルートパスワードをリセットする方法

Harmonica OS (HamoniKR) で忘れてしまったルートパスワードをリセットする方法

GRUBリカバリモードを使用して、HamoniKR OSで忘れてしまった管理者パスワードまたはrootパスワードをリセットする方法を、検証済みのコマンド、トラブルシューティングのヒント、および暗号化に関する注意点とともに解説します。

HamoniKR OSでユーザー設定をバックアップおよび復元する方法

HamoniKR OSでユーザー設定をバックアップおよび復元する方法

HamoniKRのユーザー設定を外部ドライブにバックアップする方法、アーカイブを検証する方法、選択したデスクトップおよびアプリの設定を安全に復元する方法を学びましょう。

SUSE Enterprise ServerでLUKSを使用して暗号化ボリュームを設定する方法

SUSE Enterprise ServerでLUKSを使用して暗号化ボリュームを設定する方法

SUSE Linux Enterprise Server 上で LUKS 暗号化ボリュームを作成、ロック解除、フォーマット、マウント、および永続化する方法を学びましょう。安全チェックと復旧のヒントも含まれています。

SUSE Linux Enterprise で Btrfs 読み取り専用ファイルシステムのエラーを修正する

SUSE Linux Enterprise で Btrfs 読み取り専用ファイルシステムのエラーを修正する

SUSE Linux Enterprise 上の Btrfs 読み取り専用ファイルシステムを安全に診断します。変更を加える前に、マウントオプション、Snapper スナップショット、カーネルログ、ストレージの状態、およびリカバリ制限を確認してください。

AutoYaST を設定して SLES 15 を自動展開する方法

AutoYaST を設定して SLES 15 を自動展開する方法

AutoYaST を使用して SLES 15 のインストールを自動化します。XML プロファイルの作成と検証、安全な配信、テストシステムの起動、および展開結果の検証が可能です。

Ubuntu 24.04 LTSでHDMIオーディオ出力が欠落する問題を解決する:ステップバイステップガイド

Ubuntu 24.04 LTSでHDMIオーディオ出力が欠落する問題を解決する:ステップバイステップガイド

Ubuntu 24.04 LTS で失われた HDMI オーディオを復元するには、ディスプレイの接続を確認し、正しいサウンド出力を選択し、PipeWire を検査し、ハードウェア検出を確認します。

SUSE Linux Enterprise 15 でネットワークボンディングを設定する方法

SUSE Linux Enterprise 15 でネットワークボンディングを設定する方法

wickedファイルとifcfgファイルを使用して、SLES 15のネットワークボンディングを設定します。ボンディングモードを選択し、ボンディングをアクティブ化して、フェイルオーバーとリンクの状態を確認します。

Ubuntu 24.04でBluetoothヘッドセットのマイクが動作しない問題を解決する

Ubuntu 24.04でBluetoothヘッドセットのマイクが動作しない問題を解決する

Ubuntu 24.04 で Bluetooth ヘッドセットのマイクを復元するには、入力デバイス、HSP/HFP プロファイル、アプリ設定、PipeWire サービス、Bluetooth パッケージ、およびペアリングを確認します。