Linuxでfsckコマンドを使用する方法

公開: 2022-01-29
バイナリコードが書き込まれたハードディスクドライブ。
Pixza Studio / Shutterstock

私たちの重要なデータはすべて、ある種のファイルシステムにあり、ファイルシステムの問題は必ず発生します。 Linuxでは、 fsckコマンドを使用して、ファイルシステムエラーを見つけて修正できます。

ファイルシステムはソフトウェアです

ファイルシステムは、コンピューターの最も重要なコンポーネントの1つです。 ファイルシステムがないと、ドライブが回転する機械式プラッターであろうとソリッドステートドライブであろうと、コンピューターはハードドライブにデータを保存できません。 実際、オペレーティングシステムをハードドライブにインストールする前に、ファイルシステムを作成する必要があります。 オペレーティングシステムファイルを保存するための何かが必要です。したがって、ファイルシステムはインストールプロセス中に作成されます。

初心者のための10の基本的なLinuxコマンド
初心者向けの関連する10の基本的なLinuxコマンド

ファイルシステムは、ソフトウェアによって作成され、ソフトウェアによって書き込まれ、ソフトウェアによって読み取られます。 ご存知のように、すべての複雑なソフトウェアにはバグがあります。 私たちのデータは私たちにとって非常に重要であるため、ファイルシステムとそれを作成および使用するソフトウェアに大きな信頼を置いています。 何か問題が発生すると、ファイルシステムの一部またはパーティション全体にアクセスできなくなる可能性があります。

最新のジャーナリングファイルシステムは、突然の電源喪失やシステムクラッシュによって引き起こされる可能性のある問題の処理に優れています。 それらは堅牢ですが、無敵ではありません。 内部テーブルがスクランブルされると、各ファイルがドライブのどこにあるか、サイズ、名前、ファイルのアクセス許可が設定されているかどうかがわからなくなる可能性があります。

fsckコマンドを使用すると、ファイルシステムが正常であることを確認できます。 問題が見つかった場合は、通常、問題を修正することもできます。

飛行前チェックを行う

fsckを使用するには、sudo権限が必要です。 ファイルシステムに変更を加えることができるコマンドは、慎重に扱い、自分が何をしているかを知っている人に限定する必要があります。

広告

パイロットは航空機に飛び込んだり、起動したり、淡いブルーの向こうに飛び立ったりすることはありません。 彼らは飛行前チェックを行います。 それ以外の方法で行うには、危機に瀕していることが多すぎます。 それは開発するのに良い習慣です。 fsckを使用する前に、正しいドライブで使用することを確認する必要があります。 したがって、 fsckで何かを行う前に、少し偵察を行います。

fdiskから始めて、 lessにパイプします。 特定のパーティションに関する情報は求めていません。 -l (list)オプションを使用すると、 fdiskは、「/ proc / partitions」ファイル(存在する場合)で検出したすべてのデバイスのパーティションテーブルを一覧表示します。

 sudo fdisk -l | 以下

/dev/sda/dev/sdbのエントリを確認できます。 ファイルをスクロールして、コンピューターに存在する可能性のある他のエントリを確認できます。

ターミナルウィンドウで出力を観察します

/ dev / sdaのパーティションは、 /dev/sda1/dev/sda2 、および/dev/sda3 /dev/sdaとしてリストされます。 したがって、最初のドライブには3つのパーティションがあります。 partedコマンドを使用すると、もう少し情報を確認できます。 'print'オプションを使用して、ターミナルウィンドウにパーティションテーブルを表示します。

 sudo parted / dev / sda'print ' 

パーティションテーブルに関する情報を取得する

今回は、各パーティションのファイルシステムの種類など、いくつかの追加情報を取得します。

 モデル:ATA VBOX HARDDISK(scsi) 
ディスク/ dev / sda:34.4GB 
セクターサイズ(論理/物理):512B / 512B 
パーティションテーブル:gpt 
ディスクフラグ:

番号開始終了サイズファイルシステム名フラグ 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540MB 538MB fat32 EFIシステムパーティションブート、esp 
3 540MB 34.4GB 33.8GB ext4
広告

このテストコンピュータには3台のドライブがあります。 これらは、他の2つのドライブ/dev/sdb/dev/sdcの結果です。 これらのファイルシステムには「名前」フィールドがないことに注意してください。

 sudo parted / dev / sdb'print '
 モデル:ATA VBOX HARDDISK(scsi) 
ディスク/ dev / sdb:21.5GB 
セクターサイズ(論理/物理):512B / 512B 
パーティションテーブル:msdos 
ディスクフラグ:

番号開始終了サイズタイプファイルシステムフラグ 
1 1049kB 21.5GB21.5GBプライマリext4
 sudo parted / dev / sdc'print '
 モデル:ATA VBOX HARDDISK(scsi) 
ディスク/ dev / sdc:21.5GB 
セクターサイズ(論理/物理):512B / 512B 
パーティションテーブル:msdos 
ディスクフラグ:

番号開始終了サイズタイプファイルシステムフラグ
1 1049kB 21.5GB21.5GBプライマリext3

2番目と3番目のドライブはたまたま同じサイズで、それぞれに1つのパーティションがあります。 ただし、2番目のドライブのファイルシステムはext4であり、3番目のドライブのファイルシステムは古いext3です。

Linuxターミナルからストレージデバイスをマウントおよびアンマウントする方法
Linuxターミナルからストレージデバイスをマウントおよびアンマウントする方法

パーティション識別子をfsckに渡し、そのパーティションのファイルシステムをチェックします。 ただし、マウントされたファイルシステムでfsckを実行することはできません。 ドライブをアンマウントする必要があります。 そのためには、パーティション、つまりファイルシステムがマウントされているマウントポイントを知る必要があります。

dfコマンドを使用して簡単に見つけることができます。

 df / dev / sdb1
 df / dev / sdc1 

fsckコマンドの使用

必要な情報はすべて揃っています。 最初に行うことは、チェックするファイルシステムをアンマウントすることです。 /dev/sdbの最初の(そして唯一の)パーティションである/dev/sdb1のファイルシステムで作業します。 これはext4ファイルシステムであり、「/ run / mount / dave / sata2」にマウントされていることを先に見ました。

umountコマンドを使用します。 「umount」には「n」がないことに注意してください。

 sudo umount / run / mount / dave / sata2 

umountコマンドを使用して、ファイルシステムをアンマウントします。

広告

umountを使用すると、良いニュースはありません。 サイレントにコマンドプロンプトに戻った場合は、問題ありません。

 sudo fsck / dev / sdb1 

fsckコマンドを使用して、ファイルシステムのステータスを確認します。

このファイルシステムはクリーンであると報告されています。 これは、ファイルシステムがエラーや問題がないことを報告していることを意味します。 より詳細なファイルシステムチェックは自動的には実行されません。 fsckがシェルに返したリターンコードも確認できます。

 エコー$? 

ゼロの戻り値は、エラーがないことを示します。 可能な戻りコードは次のとおりです。

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

ファイルシステムがクリーンであると報告されているにもかかわらず、 -f (force)オプションを使用して、ファイルシステムチェックを強制的に実行できます。

 sudo fsck / dev / sdb1 -f 

fsckコマンドのforceオプションを使用してファイルシステムチェックを強制します

今回は、チェックの完了に時間がかかりますが、ファイルシステムのより徹底的なテストが実行されます。 私たちのファイルシステムは確かにクリーンで、エラーは報告されていません。 テストの実行中に問題が見つかった場合は、 fsckに問題を修正させるか、エラーを無視するように求められます。

テストが終了したら、ファイルシステムを再マウントする必要があります。 これを行う最も簡単な方法は、 -a (すべて)オプションを指定してmountを使用することです。 これにより、ファイルシステムのリストの「/ etc / fstab」がチェックされ、通常の起動後と同じようにすべてがマウントされていることを確認します。

 sudoマウント-a 

mountコマンドを使用してファイルシステムを再マウントします

どのLinuxファイルシステムを使用する必要がありますか?
関連どのLinuxファイルシステムを使用する必要がありますか?

パーティション上にあるファイルシステムのタイプをfsckに通知する必要はないことに注意してください。 ユーティリティは、ファイルシステムを調べることによってそれを決定します。 つまり、 ext4パーティションである/dev/sdb1で使用したのとまったく同じコマンドを使用して、テストPCのext3ファイルシステムである/dev/sdc1でファイルシステムチェックを強制できます。

 sudo fsck / dev / sdc1 -f 

fsckコマンドを使用して、ファイルシステムチェックを強制します

広告

ファイルシステムの修正に直接飛び込みたくない場合があります。 あなたは跳躍する前に見ることを好むかもしれません。 fsckに何も修正せず、ターミナルウィンドウに問題を報告するように依頼できます。 -N (ドライラン)オプションはまさにそれを行います:

 sudo fsck -N / dev / sdb1 

ファイルシステムを修復する前に、ドライランを実行してください

それとは逆に、 fsckにエラーが見つかった場合にプロンプ​​トを表示せずに、先に進んで修正するように指示します。 これを行うには、 -y (プロンプトなし)オプションを使用します。

 sudo fsck -y / dev / sdb1

ルートパーティションでのfsckの使用

マウントされたパーティションでfsckを使用することはできませんが、コンピューターを起動するには、ルートパーティションをマウントする必要があります。 では、ルートパーティションでfsckを実行するにはどうすればよいでしょうか。 答えは、ブートプロセスを中断し、 fsckをリカバリモードで実行することです。

コンピュータの起動中に、「Shift」キーを押したままにします。 タイミングが合っていれば、Linuxを起動することはできません。 起動プロセスは白黒メニューで停止します。 この記事で使用したテストマシンはUbuntuを実行していましたが、外観は異なる場合がありますが、他のディストリビューションにも同じタイプのメニューがあります。 スクリーンショットで「Ubuntu」と表示されている場合は、ディストリビューションの名前が表示されます。

詳細オプションメニュー項目が選択されたリカバリメニュー

「上矢印」キーと「下矢印」キーを使用してハイライトバーを移動し、「Ubuntuの詳細オプション」メニュー項目が選択されるようにします。 「Enter」を押して次の画面に移動します。

「リカバリモード」メニュー項目が選択されたリカバリメニュー

広告

「(リカバリモード)」で終わるオプションを選択します。 この例では、「Ubuntu、Linux 5.11.0-20-generic(リカバリモード)」です。 「Enter」キーを押します。

リカバリメニューが表示されます。 「fsckすべてのファイルシステムをチェック」を選択し、「Tab」キーを押してハイライトを「OK」ボタンに移動します。 「Enter」を押します。

fsckが選択されたリカバリメニュー

「/ etc / fstab」ファイルで定義されている他のパーティションと一緒にルートパーティションがマウントされるという通知が表示されます。

インタラクティブモードでfsckを開始するには、[はい]を選択します

「Tab」キーを押してハイライトを「はい」ボタンに移動し、「Enter」を押します。

fsckがインタラクティブモードで実行されているのがわかります。 問題がある場合は、 fsckに修正させるか、無視するように求められます。 ファイルシステムがチェックされると、リカバリメニューが再び表示されます。

「再開」オプションを選択し、「Tab」キーを押してハイライトを「OK」ボタンに移動し、「Enter」を押します。 起動プロセスが再開され、Linuxが起動します。

広告

リカバリモードの起動は一部のドライバに影響を与える可能性があるため、Linuxを起動したらすぐに、もう一度再起動することをお勧めします。 これにより、コンピュータが標準的な方法で動作していることが保証されます。

物事がうまくいかないとき

セーフティネットには理由があります。 fsckコマンドを理解してください。 いつか怒りに駆られて使う必要が出てきたら、事前に慣れておいてよかったと思います。

関連:開発者と愛好家のための最高のLinuxラップトップ