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

推薦する

Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...

ウェブ クラスターの Docker Stack 展開方法の手順

Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を...

カスタムポップアップボックスを実装するためのJavaScriptシングルトンモード

この記事では、カスタムポップアップボックスを実装するためのJavaScriptシングルトンモードの具...

Ubuntu 18.04 に phpMyAdmin をインストールするための詳細なチュートリアル

Ubuntu 18.04 上の Apache で動作するように phpMyAdmin をインストール...

Dreamweaver で Zen コーディングを使用する方法

前回の記事「Zen Coding: HTML/CSS コードを素早く記述する方法」を公開した後、一部...

CSS で垂直方向の中央揃えを実装するいくつかの方法の概要

フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...

CSS を使用して小さな画像をプルダウンし、大きな画像と情報を表示する方法

今日は、Taobao、JD.comなどのショッピングモールでよく使われている、小さな画像の上にマウス...

2012年のベストWebデザイン作品レビュー[パート1]

新年の初めに、友人の健康と2013年が素晴らしい年となることを心からお祈りいたします。この記事では、...

Mybatis mysqlの削除操作では、最初のデータメソッドのみを削除できます。

バグ図のように、削除文とパラメータをデータベースにコピーして実行し、2つのデータを削除しようとしたの...

js 配列 fill() 充填メソッド

目次1. fill() 構文2. fill() の使用3. まとめ序文:配列の初期化方法についてはよ...

Dockerレジストリイメージ同期の実装アイデア

はじめに以前は、Docker イメージは Azure のコンテナー レジストリに保存されていました。...

MySQL における INSERT INTO SET の利点

MySQL データベースにデータを挿入します。以前はよく使われていた INSERT INTO テーブ...

MySQL はどのようにしてデータの整合性を確保するのでしょうか?

オンライン ビジネスにとってデータの一貫性と整合性が重要であることは明らかです。データが失われないよ...

Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)

その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...

MySQLデータ復旧のさまざまな方法の概要

目次1. はじめに2. 直接回復2.1 mysqldumpバックアップの完全リカバリ2.2 xtra...