「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 の分離レベル、ロック、MVCC の紹介

この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...

テーブルを作成するための HTML dl、dt、dd タグとテーブル作成テーブル

ウェブサイトの開発とメンテナンスのコストが削減されるだけでなく、コードもよりセマンティックになります...

js が CSS 属性 (値) のサポートを決定して通知する状況の分析

新しい CSS 機能を使用する場合、その互換性は常に考慮されます。おそらく、その互換性、どのブラウザ...

HTML iframe 使用状況の概要の収集

Iframe 使用状況の詳細な分析<iframe frameborder=0 width=17...

コンテンツの位置をランダムにドラッグするHTMLを実装する2つの方法

テスト: Chrome v80.0.3987.122 は正常です方法は2つあります。通常のラベルの位...

Nginx で Basic Auth ログイン認証を設定する方法

nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...

Alibaba Cloud Server への Web プロジェクトのデプロイについて (5 つの手順)

1.まずAlibaba Cloudのウェブサイトにログインしてアカウントを登録し、サーバータイプを...

CentOS で yum を使用して rabbitmq-server をインストールする方法

RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...

MySQLサーバーが消えたエラーの解決策

PHP で MySQL サーバーが消えた問題1. 背景以前、Codeigniter でコンソール コ...

Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明

1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...

Keepalived を使用して Nginx の自動再起動とデュアルアクティブ ホットスタンバイの高可用性を実現する方法について

目次1. 概要2. Keepalivedを使用してNginxを自動的に再起動する2.1 シェルスクリ...

MySQL グループレプリケーションの設定手順 (推奨)

MySQL-Group-Replication は、MySQL-5.7.17 で開発された新しい機...

aタグのhref属性とonclickイベントの比較

まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗し...

MIME タイプの完全なリスト

MIME タイプとは何ですか? 1. まず、ブラウザがコンテンツを処理する方法を理解する必要がありま...