「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にログイン認証傍受機能を設置するアイデアを詳しく解説

目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...

Firefox で Webdings フォントをサポートする方法

Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

Linuxで中断されたシステムを呼び出す方法

序文低速システム コールとは、決して戻らない可能性があり、プロセスを永久にブロックするシステム コー...

Reactエラー境界コンポーネント処理

React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...

シンプルなウェブページレイアウトの構造と表現原理の共有

構造とパフォーマンスの紹介HTML 構造、CSS 表現、JavaScript 動作。Web ページの...

DOCTYPE 文書型宣言 (Web ページ愛好家必読)

DOCTYPE 宣言 作成するすべてのページの先頭に、ドキュメント宣言が必要です。はい、そうでしょう...

Linux でのデータベースのスケジュールバックアップの実装スクリプト

目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...

MySQLは既存のコンテンツを保持し、後でコンテンツを追加します

このコマンドは、データ テーブル ff_vod を変更し、vod_url フィールドの内容の後に 9...

mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...

MySQL 5.5.27 インストール グラフィック チュートリアル

1. MYSQLのインストール1. ダウンロードしたMySQLインストールファイルmysql-5.5...

MySQLの3値ロジックとNULLの詳細な説明

目次NULLとは何か2種類のNULLなぜ「= NULL」ではなく「IS NULL」と書く必要があるの...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...