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

公開: 2022-06-16
開いているラップトップの上に浮かんでいるドキュメント管理システムの図
NicoElNino / Shutterstock.com

Linuxのfindmntコマンドを使用して、ファイルシステムのマウントポイントに関するすべてを検出します。 これは、構文が非常に簡単なオールインワンツールです。 使い方をご紹介します。

マウントポイント

Linuxファイルシステムは大きなツリーです。 Linuxをインストールしたときに行った選択に応じて、コンピューター内のハードドライブごとにファイルシステムが異なる場合があります。 snapパッケージを使用する場合は、システムにもsquashfs疑似ファイルシステムがあります。 USBメモリスティックなどのデバイスには、特にWindowsコンピュータでも使用する場合、さまざまなファイルシステムが搭載されています。

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

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

ファイルシステムはマウントポイントにマウントされます。 これらは単なる空のディレクトリです。 ファイルシステムがマウントされたら、そのディレクトリに入るとそのファイルシステムに移動します。 それは大きな柔軟性を与えます。 ファイルシステムツリーのルートは「 / 」にマウントする必要がありますが、特定の状況で最も意味のある場所であればどこでも他のファイルシステムをマウントできます。

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

findmntコマンド

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

広告

ファイルシステムのマウントに使用するコマンドラインツールは、 mountと呼ばれます。 起動時にマウントされるファイルシステムは、「/ etc/fstab」ファイルで定義されます。 mountコマンドを使用して、「/ etc/fstab」ファイルで構成されているすべてのマウントポイントのダンプを取得できます。

 マウント

マウントコマンド

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

マウントコマンドからの情報の生のダンプ

少しの努力で、それを通り抜けるか、 grepなどのユーティリティを介してパイプして、興味のあるビットをウィンクアウトすることができますfindmntからの出力ははるかにアクセスしやすくなっています。

 findmnt 

findmntコマンド

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

findmntからの表形式の出力

列は次のとおりです。

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

ツリーなしで出力を表示するには、 -l (リスト)オプションを使用します。

 findmnt -l 

-llistオプションを指定したfindmntコマンド

広告

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

findmntプレーンリスト出力

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

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

 findmnt -t exta 

findmntを使用したext4ファイルシステムのマウントポイントの検査

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

 findmnt-tスカッシュフ

findmntを使用したsquashfsファイルシステムのマウントポイントの検査

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

 findmnt -t squashfs -i 

-iinvertオプションを使用したsquashfsマウントポイントの除外

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

squashfsファイルシステムを無視したfindmntからの出力

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

 findmnt -t squashfs、proc、ext4 

findmntを使用して3種類のファイルシステムマウントポイントを一度に選択する

データソースの選択

デフォルトでは、 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または-k :「/ proc / self/mountinfo」のみを調べます。
広告

vfatファイルシステムを探すと、これによって違いが生じることがわかります。 まず、 -s (fstab)オプションを使用します。 これにより、「/ boot/efi」にマウントされた1つのvfatファイルシステムが見つかります。

 findmnt -s -t vfat 

findmntを使用して/etc/fstabでvfatファイルシステムのマウントを検索する

もう一度やり直しますが、今回は-k (カーネル)オプションを使用します。

 findmnt -k -t vfat 

findmntを使用して/proc/ self/mountでvfatファイルシステムのマウントを検索する

Linuxでfstabファイルを作成する方法
Linuxでfstabファイルを作成する方法

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

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

関連: Linux fstabファイルとは何ですか?どのように機能しますか?

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

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

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

findmntを使用した名前によるマウントポイントの検査

広告

これらの2つのUSBメモリスティックにはvfatファイルシステムがあり、「/ dev/sdb2」および「/dev/sdc1」としてマウントされていることがわかります。

findmntでのポーリングモードの使用

おそらく、 findmntの最もクールな機能は、ポーリング機能です。 USBデバイスに画像を書き込むことは、定期的に行っていることです。 もちろん、正しいドライブを特定することは重要です。 間違ったデバイスを上書きしたくない。 findmntを使用すると、リムーバブルドライブが接続されているデバイスを簡単に確認できます。

LinuxでISOファイルをUSBドライブに書き込む方法
LinuxでISOファイルをUSBドライブに書き込む方法

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

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

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

 findmnt -p --timeout 30000 

新しいマウントポイントのfindmntモニターを30秒間作成する

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

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

 findmnt -p --first-only 

findmntで次の新しいマウントポイントを待っています

広告

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

ファウルアップを回避する簡単な方法

間違ったデバイスを上書きすることは常に災害です。 findmntコマンドを使用すると、接続したばかりのデバイスを簡単に確実に識別できるため、上書きプロセスがはるかに安全になります。

簡単で安全なことは、勝利を勝ち取るという別の言い方です。

関連: Windowsで空き領域を安全に上書きする方法