「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がリリースされようとしています。変更点を見てみましょう。

推薦する

MySQL データベース シェル import_table データ インポート

目次MySQL Shell import_table データのインポート1. import_tabl...

IE8 と Chrome でテーブルの幅を修正する方法

IE8 や Chrome で上記の設定を使用すると、画面の最大幅に合わせて表示が統一され、各列の幅は...

Mysql5.7.14 インストールと設定方法操作グラフィックチュートリアル(パスワード問題解決)

この記事は主に、以前のインストール方法を使用して MySQL 5.7.14 をインストールするときに...

JavaScriptはマウスの動きに追従するボックスを実装します

この記事では、マウスの動きを追跡するためのJavaScriptの具体的なコードを参考までに紹介します...

MySQL カーソルの原理と使用例の分析

この記事では、例を使用して MySQL カーソルの原理と使用方法を説明します。ご参考までに、詳細は以...

MySQL データベースの最適化に関する 9 つのヒント

目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...

JavaScript Domはカルーセルの原理と例を実装します

カルーセルを作りたい場合、まずその原理を理解する必要があります。画像を右から左にスライドさせるにはど...

MySQL学習エンジンの詳細な説明、説明、権限

エンジン導入InnodbエンジンInnodb エンジンは、データベース ACID トランザクションを...

MySQL の大文字と小文字の区別に関する注意

目次MySQLの大文字と小文字の区別はパラメータによって制御されますMySQLの大文字と小文字の区別...

js QRコードスキャンログインの原理についての簡単な説明

目次QRコードログインの真髄QRコードを理解するシステム認証メカニズムQRコードをスキャンしてログイ...

少なくともn日間連続してログインしているユーザーに対するSQLクエリ

MySQL ツールを使用して、3 日間連続する例を見てみましょう。 1. SQL テーブルを作成しま...

JavaScript による Web ページ カルーセルの超詳細な実装

目次HTML ページの作成js部分の機能を実装する1. 左ボタンと右ボタン2. 小さな円を動的に生成...

Centos7.x での Nginx のインストール、SSL 設定、一般的なコマンドの詳細な説明

1. インストールyumを使用してインストールする ##yum nginx を自動的にインストールす...

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

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

クラウドサーバーパゴダパネルの詳細なインストール手順

目次0x01. パゴダパネルをインストールする0x02. サーバーポートを開く0x03. ブラウザを...