「fsck」を使用して Linux のファイルシステムエラーを修正する方法

「fsck」を使用して Linux のファイルシステムエラーを修正する方法

序文

ファイル システムは、データの保存方法と復元方法を整理する役割を担います。 いずれにせよ、時間の経過とともにファイル システムが破損し、その一部にアクセスできなくなる可能性があります。 ファイル システムにこのような不整合が見られる場合、整合性を検証することをお勧めします。

これは、fsck (ファイル システム整合性チェック) と呼ばれるシステム ユーティリティを使用して実行できます。 このチェックは起動時に自動的に行うことも、手動で実行することもできます。

この記事では、ディスク エラーの修復に役立つ fsck ユーティリティとその使用方法について説明します。

Linux で fsck を使用する場合

fsck を実行するシナリオはさまざまです。 以下にいくつか例を挙げます。

  • システムが起動できません。
  • システム上のファイルが破損しています (通常は入出力エラーが表示されます)。
  • 接続されたドライブ(フラッシュドライブ/SD カードを含む)は正常に動作しません。

利用可能なfsckオプション

Fsck コマンドを実行するには、スーパーユーザー権限または root を使用する必要があります。 さまざまなパラメータを使用できます。 それらの使用法は具体的な状況によって異なります。 以下に、より重要なオプションをいくつか示します。

  • -A – すべてのファイルシステムをチェックするために使用されます。 このリストは /etc/fstab から取得されます。
  • -C – 進行状況バーを表示します。
  • -l - チェック中に他のプログラムがパーティションを使用できないようにデバイスをロックします。
  • -M - マウントされたファイルシステムをチェックしません。
  • -N - 実行される内容のみを表示します。実際の変更は行われません。
  • -P - ルートを含むファイルシステムを並列にチェックする場合。
  • -R - ルートファイルシステムをチェックしません。 これは「 -A 」にのみ適用されます。
  • -r - チェック対象の各デバイスの統計情報を提供します。
  • -T – ヘッダーを表示しません。
  • -t - チェックするファイルシステムのタイプを指定します。 タイプはコンマ区切りのリストにすることができます。
  • -V - 進行中の操作の説明を提供します。

fsck を実行して Linux ファイルシステムのエラーを修復する方法

fsck を実行するには、チェックするパーティションがマウントされていないことを確認する必要があります。 この記事では、/mnt にマウントされた 2 番目のドライブ /dev/sdb を使用します。

パーティションがマウントされているときに fsck を実行しようとするとどうなりますか。

# /dev/sdb を fsck する

マウントされたパーティションでfsckを実行する

これを回避するには、パーティションのマウント解除を使用します。

# /dev/sdb をアンマウントする

その後、fsck を安全に実行できます。

# /dev/sdb を fsck する

Linux パーティションで fsck を実行する

fsck 終了コードを理解する

fsck を実行すると終了コードが返されます。 これらのコードは、次のコマンドを実行すると、fsck のマニュアル ページで確認できます。

# 男fsck 
0 エラーなし 
1 ファイルシステムエラーが修正されました 
2 システムを再起動する必要があります 
4 ファイルシステムエラーが修正されない 
8 操作エラー 
16 使用法または構文エラー 
32 ユーザーの要求によりチェックがキャンセルされました 
128 共有ライブラリエラー

Linux ファイルシステムエラーを修正する

ファイル システム上で複数のエラーが見つかる場合もあります。 この場合、 fsck が自動的にエラーを修正するようにする必要があります。 これは次の方法で実行できます。

# fsck -y /dev/sdb

-y フラグは、エラーを修正するために fsck からのすべてのプロンプトに自動的に「はい」と答えます。

同様に、すべてのファイルシステムで同じ操作を実行できます (ルートなし)。

$ fsck -AR -y

Linux ルート パーティションで fsck を実行する方法

場合によっては、システムのルート パーティションで fsck を実行する必要があります。 パーティションがマウントされている間は fsck を実行できないため、次のいずれかのオプションを試すことができます。

  • システム起動時に fsck を強制する
  • レスキューモードでfsckを実行する

両方のシナリオを検討します。

システム起動時に fsck を強制する

これは比較的簡単に実行できます。必要なのは、システムのルート パーティションに forcefsck というファイルを作成することだけです。 次のコマンドを使用します。

# タッチ /forcefsck

その後、システムの再起動を強制またはスケジュールすることができます。 次回の起動時に fsck が実行されます。 ダウンタイムが重要な場合は、システム上に使用済みの inode が多数あると fsck に余分な時間がかかる可能性があるため、慎重に計画することをお勧めします。

システムが起動したら、ファイルがまだ存在するかどうかを確認します。

# ls /forcefsck

もしそうなら、システムの起動時に毎回 fsck が表示されないように、これを削除することをお勧めします。

レスキューモードでfsckを実行する

レスキュー モードで fsck を実行するには、さらにいくつかの手順が必要です。 まず、システムを再起動する準備をします。 MySQL/MariaDB などの重要なサービスを停止してから入力します。

# 再起動

起動中に Shift キーを押したままにすると、GRUB メニューが表示されます。 詳細オプションを選択します。

Grub アドバンス オプション

次に、リカバリモードを選択します。

Linuxリカバリモードを選択

次のメニューで「fsck」を選択します。

fsckユーティリティを選択

/ ファイルシステムを再マウントするかどうかを尋ねられます。 はいを選択します。

ルートファイルシステムを確認する

次のような画面が表示されるはずです。

fsckファイルシステムチェックを実行する

その後、「再開」を選択すると、通常の起動を再開できます。

通常起動を選択

結論は

このチュートリアルでは、fsck を使用してさまざまな Linux ファイル システムで整合性チェックを実行する方法を学習しました。 fsck についてご質問がある場合は、お気軽に下のコメント セクションに投稿してください。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux での Python のアップグレードと pip のインストールの詳細な説明
  • Linux シェル ディレクトリ内のファイルを検索するために、if と組み合わせた for ループを使用する方法
  • Linuxで現在のスクリプトの実際のパスを取得する方法
  • Linux 仮想メモリ設定のチュートリアルと実践
  • Linux テキスト検索コマンド find の詳細な使用方法
  • Linuxのsortコマンドの複数のパラメータを理解するための1つの質問
  • Linux 編集の開始、停止、再起動の Springboot jar パッケージ スクリプトの例
  • Linuxはjoin -a1を使用して2つのファイルを結合します
  • Linux でファイルを削除するときに「操作は許可されていません」というプロンプトが表示される場合の対処方法
  • Linux での透過的巨大ページの使用と無効化の概要

<<:  require loaderの実装原理の深い理解

>>:  MySQL 8.0.3 RCがリリースされようとしています。変更点を見てみましょう。

推薦する

Vueは州、都市、地区のカスケード選択を実現します

最近、省、市、地区のカスケード選択効果を実装する必要があります。省、市、地区のデータはすべてローカル...

Docker に ElasticSearch をインストールする方法を 1 つの記事で解説

目次序文1. Dockerをインストールする2. ElasticSearchをインストールする3. ...

MySQL 8.0はJSONを扱えるようになりました

目次1. 概要2. JSON基本ツール3. JSONパス式4. JSONを検索して変更する序文:長い...

Excel ファイルを MySQL データベースにインポートする方法

この記事では、ExcelファイルをMySQLデータベースにインポートする方法を参考までに紹介します。...

Linux仮想メモリについての簡単な説明

目次起源仮想メモリページングとページテーブルメモリのアドレス指定と割り当て関数プロセスメモリ管理デー...

システムエラー 1067 を解決するための MySQL データベース グリーン バージョンのインストール チュートリアル

ソフトウェアのグリーンバージョンとインストールバージョンの違いは何ですか?通常、ファイルのインストー...

SQLのさまざまな結合サマリーの詳細な説明

SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...

iframe src 割り当ての問題 (サーバー側)

今日この問題に遭遇しました。サーバー側でiframeのsrc値を再割り当てし、iframeにIDを追...

Squid を使用して http および https 用のプロキシ サーバーを構築する方法

nginx を導入した際に、フォワードプロキシの設定も nginx を使っていました。しかし、htt...

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...

React 入門レベルの詳細なメモ

目次1. Reactの基本的な理解1. はじめに2. Reactの特徴3. Reactが効率的な理由...

Vueはユーザー名が使用可能かどうかの検証を実装します

この記事では、ユーザー名が使用可能かどうかを確認するためのVueの具体的なコードを例として紹介します...

Vue3 における computed の新しい使用例のまとめ

vue3 での computed の使い方。vue3 は vue2 のオプション API と互換性が...