Linuxでfsckコマンドを使用する方法
公開: 2022-01-29 私たちの重要なデータはすべて、ある種のファイルシステムにあり、ファイルシステムの問題は必ず発生します。 Linuxでは、 fsck
コマンドを使用して、ファイルシステムエラーを見つけて修正できます。
ファイルシステムはソフトウェアです
ファイルシステムは、コンピューターの最も重要なコンポーネントの1つです。 ファイルシステムがないと、ドライブが回転する機械式プラッターであろうとソリッドステートドライブであろうと、コンピューターはハードドライブにデータを保存できません。 実際、オペレーティングシステムをハードドライブにインストールする前に、ファイルシステムを作成する必要があります。 オペレーティングシステムファイルを保存するための何かが必要です。したがって、ファイルシステムはインストールプロセス中に作成されます。
ファイルシステムは、ソフトウェアによって作成され、ソフトウェアによって書き込まれ、ソフトウェアによって読み取られます。 ご存知のように、すべての複雑なソフトウェアにはバグがあります。 私たちのデータは私たちにとって非常に重要であるため、ファイルシステムとそれを作成および使用するソフトウェアに大きな信頼を置いています。 何か問題が発生すると、ファイルシステムの一部またはパーティション全体にアクセスできなくなる可能性があります。
最新のジャーナリングファイルシステムは、突然の電源喪失やシステムクラッシュによって引き起こされる可能性のある問題の処理に優れています。 それらは堅牢ですが、無敵ではありません。 内部テーブルがスクランブルされると、各ファイルがドライブのどこにあるか、サイズ、名前、ファイルのアクセス許可が設定されているかどうかがわからなくなる可能性があります。
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
です。
パーティション識別子を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
を使用すると、良いニュースはありません。 サイレントにコマンドプロンプトに戻った場合は、問題ありません。
sudo fsck / dev / sdb1
このファイルシステムはクリーンであると報告されています。 これは、ファイルシステムがエラーや問題がないことを報告していることを意味します。 より詳細なファイルシステムチェックは自動的には実行されません。 fsck
がシェルに返したリターンコードも確認できます。
エコー$?
ゼロの戻り値は、エラーがないことを示します。 可能な戻りコードは次のとおりです。
- 0 :エラーなし
- 1 :ファイルシステムエラーが修正されました
- 2 :システムを再起動する必要があります
- 4 :ファイルシステムエラーが修正されないままになっている
- 8 :操作エラー
- 16 :使用法または構文エラー
- 32 :ユーザーのリクエストによりチェックがキャンセルされました
- 128 :共有ライブラリエラー
ファイルシステムがクリーンであると報告されているにもかかわらず、 -f
(force)オプションを使用して、ファイルシステムチェックを強制的に実行できます。
sudo fsck / dev / sdb1 -f
今回は、チェックの完了に時間がかかりますが、ファイルシステムのより徹底的なテストが実行されます。 私たちのファイルシステムは確かにクリーンで、エラーは報告されていません。 テストの実行中に問題が見つかった場合は、 fsck
に問題を修正させるか、エラーを無視するように求められます。
テストが終了したら、ファイルシステムを再マウントする必要があります。 これを行う最も簡単な方法は、 -a
(すべて)オプションを指定してmount
を使用することです。 これにより、ファイルシステムのリストの「/ etc / fstab」がチェックされ、通常の起動後と同じようにすべてがマウントされていることを確認します。
sudoマウント-a
パーティション上にあるファイルシステムのタイプをfsck
に通知する必要はないことに注意してください。 ユーティリティは、ファイルシステムを調べることによってそれを決定します。 つまり、 ext4
パーティションである/dev/sdb1
で使用したのとまったく同じコマンドを使用して、テストPCのext3
ファイルシステムである/dev/sdc1
でファイルシステムチェックを強制できます。
sudo fsck / dev / sdc1 -f
ファイルシステムの修正に直接飛び込みたくない場合があります。 あなたは跳躍する前に見ることを好むかもしれません。 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」を押します。
「/ etc / fstab」ファイルで定義されている他のパーティションと一緒にルートパーティションがマウントされるという通知が表示されます。
「Tab」キーを押してハイライトを「はい」ボタンに移動し、「Enter」を押します。
fsck
がインタラクティブモードで実行されているのがわかります。 問題がある場合は、 fsck
に修正させるか、無視するように求められます。 ファイルシステムがチェックされると、リカバリメニューが再び表示されます。
「再開」オプションを選択し、「Tab」キーを押してハイライトを「OK」ボタンに移動し、「Enter」を押します。 起動プロセスが再開され、Linuxが起動します。
リカバリモードの起動は一部のドライバに影響を与える可能性があるため、Linuxを起動したらすぐに、もう一度再起動することをお勧めします。 これにより、コンピュータが標準的な方法で動作していることが保証されます。
物事がうまくいかないとき
セーフティネットには理由があります。 fsck
コマンドを理解してください。 いつか怒りに駆られて使う必要が出てきたら、事前に慣れておいてよかったと思います。
Linuxコマンド | ||
ファイル | tar・pv・cat・tac・chmod・grep・diff・sed・ar・man・pushd・popd・fsck・testdisk・seq・fd・pandoc・cd・$ PATH・awk・join・jq・fold・uniq・journalctl・tail・stat・ls・fstab・echo・less・chgrp・chown・rev・look・strings・type・rename・zip・unzip・mount・umount・install・fdisk・mkfs・rm・rmdir・rsync・df・gpg・vi・nano・mkdir・du・ln・patch・convert・rclone・shred・srm | |
プロセス | エイリアス・screen・top・nice・renice・progress・strace・systemd・tmux・chsh・history・at・batch・free・which・dmesg・chfn・usermod・ps・chroot・xargs・tty・pinky・lsof・vmstat・タイムアウト・wall・yes・kill・sleep・sudo・su・time・groupadd・usermod・groups・lshw・shutdown・reboot・halt・poweroff・passwd・lscpu・crontab・date・bg・fg | |
ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw |
関連:開発者と愛好家のための最高のLinuxラップトップ