ウェブサイト検索

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


Linuxのfindmntコマンドを使って、ファイルシステムのマウントポイントに関するすべてを発見しましょう。これは、非常に簡単な構文のオールインワンツールです。使用方法をお見せします。

マウントポイント

Linuxのファイルシステムは大きな木の構造です。Linuxをインストールしたときに選択したオプションによって、コンピュータ内の異なるハードドライブには異なるファイルシステムが存在する場合があります。もしあなたが使用する場合

snap

パッケージには、あなたのシステムにsquashfsの擬似ファイルシステムが含まれるでしょう。USBメモリストックなどのデバイスは、特にWindowsコンピュータでも使用する場合、さまざまなファイルシステムを持っています。

ファイルシステムの種類に関係なく、すべてはマウントと呼ばれるプロセスでファイルシステムツリーに接ぎ木されなければなりません。マウントは、動作しているシステムを取得するための重要なステップです。私たちはハードドライブのようなデバイスをマウントすることを考えがちですが、実際にマウントされているのはそのデバイス上のファイルシステムです。そして、これらのさまざまなファイルシステムにアクセスできなければ、コンピュータは起動しないか、アプリケーションやデータにアクセスできなくなる可能性があります。

ファイルシステムはマウントポイントにマウントされます。これらは単なる空のディレクトリです。ファイルシステムがマウントされると、そのディレクトリに入ることでそのファイルシステムに入ることができます。これにより大きな柔軟性が得られます。ファイルシステムツリーのルートは、「

/

ただし、特定の状況に最も適した場所に他のファイルシステムをマウントすることもできます。

その柔軟性は、特にあなたの関与なしに自動的に作成されたマウントポイントを含め、すべての異なるマウントポイントを追跡するのが難しいことを意味します。Linuxは、マウントポイントの設定と状態を確認するためのさまざまなコマンドラインツールを提供しています。それらの中で、findmntが最も使いやすく、独自のトリックもいくつかあります。

findmntコマンド

私たちが確認したUbuntu、Manjaro、Fedoraのビルドには、すでにfindmntコマンドがインストールされていました。もしあなたのLinuxコンピュータにインストールされていない場合は、ディストリビューションのパッケージマネージャを使用して簡単に見つけることができます。

ファイルシステムをマウントするために使用するコマンドラインツールは次のように呼ばれます

mount

ブート時にマウントされるファイルシステムは、"/etc/fstab" ファイルで定義されています。使用することができます。

mount

あなたの「/etc/fstab」ファイルに設定されているすべてのマウントポイントのダンプを取得するコマンド。

mount

出力は詳細ですが、密なテキストの壁にフォーマットされています。

少し努力すれば、それを通り抜けることができますし、grepのようなユーティリティを使って興味のある部分を抜き出すことができます。findmntの出力ははるかにアクセスしやすいです。

findmnt

対照的に、findmntのデフォルト出力は表形式で、マウントポイントの階層を示すツリーが含まれています。

列は次のとおりです:

  • ターゲット: ファイルシステムにおけるマウントポイントの位置
  • ソース: ファイルシステムを含むソースデバイス。これはループバックデバイスのような擬似デバイスである可能性があることに注意してください。
  • Fstype: ファイルシステムの種類。
  • オプション: コマンドラインの mount コマンドや「/etc/fstab」ファイルでファイルシステムをマウントするために使用したオプション。

ツリーなしで出力を見るには、-l(リスト)オプションを使用してください。

findmnt -l

列は同じですが、マウントポイントの階層はインデントされたツリーとして表示されていません。

特定のファイルシステムタイプの選択

「-t(タイプ)オプションにより、findmnt は、要求されたファイルシステムタイプのみを含むレポートを制限します。例えば、ext4 ファイルシステムのみを表示するには、次のようにします:

findmnt -t exta

単に squashfs ファイルシステムのみを表示するには、次のように入力します:

findmnt -t squashfs

コマンドラインで指定したタイプ以外のすべてを表示するために選択を反転させるには、-i(反転)オプションを使用します。

findmnt -t squashfs -i

squashfsファイルシステムは報告されていません。

-t(タイプ)オプションを使用すると、カンマで区切られたファイルシステムタイプのリストを使用できます。それらの間にスペースを入れないでください。ファイルシステムタイプの間にはホワイトスペースは許可されていません。

findmnt -t squashfs,proc,ext4

データソースの選択

デフォルトでは、findmntは「/etc/fstab」、「/etc/mtab」、および「/proc/self/mountinfo」から情報を取得します。

  • /etc/fstab: これは設定されたマウントの詳細を保持するファイルです。これらはブート時に実行されます。
  • /etc/mtab: このファイルは現在マウントされているマウントの詳細を保持しています。
  • /proc/self/mountinfo: これはカーネルに対して、あなたのシステムのマウントに関する最も権威のある情報を問い合わせます。

特定のソースを使用するように findmnt に指示することができます。オプションは次のとおりです:

  • ---fstab または -s: 「/etc/fstab」だけを見てください。
  • ---mtab または -m: 「/etc/mtab」のみを参照してください。
  • ---kernel or -k: "/proc/self/mountinfo" のみを調べる。

私たちは、vfatファイルシステムを探すときに、これがどのような違いを生むのかを見ることができます。まず、-s(fstab)オプションを使用します。これにより、"/boot/efi"にマウントされた1つのvfatファイルシステムが見つかります。

findmnt -s -t vfat

再試行します。そして今回は -k (カーネル)オプションを使用します。

findmnt -k -t vfat

この報告は4つのエントリについてです。一つはvfatファイルシステムで、-sオプションが見つけたものと同じです。他の3つは、2つのUSBメモリスティックが接続されたために発生したアドホックマウントです。-sオプションは、それらが「/etc/fstab」ファイルに設定されていないため、見つけられませんでした。

1つのUSBメモリースティックが「/dev/sdc1」として接続されており、これはデバイスsdcの最初のパーティションです。もう1つのメモリースティックには2つのパーティションがあり、これらは「/dev/sdb1」と「/dev/sdb2」としてマウントされています。

マウントポイントによる選択

マウントポイントが分かっていれば、それをfindmntに渡して設定やその他の詳細を確認できます。

findmnt /media/dave/PINK
findmnt /media/dave/WHITEUSB

これらの2つのUSBメモリースティックはvfatファイルシステムを持っており、"/dev/sdb2"および"/dev/sdc1"としてマウントされています。

findmntでポーリングモードを使用する

findmntの最もクールな機能の一つは、ポーリング機能です。USBデバイスにイメージを書き込むことは、定期的に行うことになるかもしれません。正しいドライブを特定することは当然重要です。間違ったデバイスを上書きしたくありません。findmntを使えば、取り外し可能なドライブがどのデバイスに接続されているかを簡単に確認できます。

これを行う方法は2つあります。findmntに対して、新しいマウントをミリ秒単位で一定期間監視するよう依頼することができます。その期間中に発生したすべてのマウントが報告されます。これは--timeoutオプションを使用します。

2番目の方法は、findmntに新しいマウントを検出するまで待機するように指示します。これは--first-onlyオプションを使用します。新しいマウントが発生するまでどれだけ時間がかかっても待つことになりますが、最初に発生したマウントについてのみ報告します。--timeoutオプションは、指定されたポーリング期間内に発生するすべての新しいマウントについて報告します。

このコマンドはfindmntに新しいマウントを30秒間監視するよう指示します。

findmnt -p --timeout 30000

その期間中に単一のUSBメモリースティックが接続されており、報告され、findmntは残りの30秒間監視を続けています。

このコマンドはfindmntに、新しいマウントポイントが作成されるまで新しいマウントを監視するように指示します。

findmnt -p --first-only

新しいデバイスが接続されると、新しいマウントポイントについて報告し、その後コマンドプロンプトに戻ります。

失敗を避ける簡単な方法

間違ったデバイスを上書きすることは常に災害です。findmnt コマンドを使用すると、プラグインしたばかりのデバイスを正確に特定することが容易になり、上書きプロセスをさらに安全にします。

簡単で安全なのは、ウィンウィンと言い換えることができます。

関連記事: