Linuxでマウントされたファイルシステムの完全かつ正確なリストを取得する方法は?


150

私は通常、mountどのファイルシステムがマウントされているかを確認するために使用します。私はまた、いくつかの間の接続がある知っているmount/etc/mtab私は詳細についてはよく分かりません。/ proc /がマウントされているかどうかを確認する方法を読んだ後、さらに混乱します。

私の質問は次のとおりです。マウントされたファイルシステムの最も正確なリストを取得する方法は?私は使用する必要がありますmount、またはの内容の読み取り/etc/mtab、または内容のを/proc/mounts?最も信頼できる結果は何ですか?


3
あなたもこの質問への受け入れ答えお読みください:unix.stackexchange.com/questions/12040/...
nozimica

私はへのリンク助けることができないの/ etc / mtabには、Linuxには?これは、ここでの回答のどれも与えていない非Linuxの詳細をカバーしているためです。
ウェイジュンジュウ

回答:


141

マウントされたファイルシステムの決定的なリストはにあり/proc/mountsます。

システムに何らかの形式のコンテナがある場合/proc/mounts、現在のコンテナにあるファイルシステムのみをリストします。たとえば、chrootでは/proc/mounts、マウントポイントがchroot内にあるファイルシステムのみをリストします。(chrootから逃れる方法はあります、心。

には、マウントされたファイルシステムのリストもあります/etc/mtab。このリストは、mountおよびumountコマンドによって維持されます。つまり、これらのコマンドを使用しない場合(非常にまれですが)、アクション(マウントまたはアンマウント)は記録されません。実際に/etc/mtabは、システムの状態とは大きく異なるファイルを見つけるのは、ほとんどがchrootです。また、chrootで実行されたマウントは、chrootには反映されます/etc/mtabが、mainには反映されません/etc/mtab/etc/mtab読み取り専用ファイルシステム上で実行されているアクションも記録されません。

/etc/mtab優先して、または追加して相談したい理由/proc/mountsは、mountコマンドラインにアクセスできるため、理解しやすい方法で情報を提示できる場合があるためです。たとえば、あなたは(のに対し、要求されたとしてマウントオプションを見る/proc/mountsリストmountやカーネルのデフォルトとしても)、およびバインドマウントは、そのような中として表示されます/etc/mtab


1
信頼できない場合にmount維持するポイントは何/etc/mtabですか?代わりにmount情報を提供した方が良いと/proc/mounts思いませんか?
ピョートルドブロゴスト

2
@PiotrDobrogost /etc/mtabは、最初に要求されたオプションなど、カーネルが追跡しない情報を記録し、デバイスの重複したエントリとして表示される代わりにそのように表示されるマウントをバインドできます。それにもかかわらず、多くのディストリビューションがに/etc/mtabシンボリックリンクを作成する方向に動いてい/proc/mountsます。
ジル

3
それにもかかわらず、多くのディストリビューションがに/etc/mtabシンボリックリンクを作成する方向に動いてい/proc/mountsます。聞いて良かった-この情報を答えに追加すると、さらに良くなります。カーネルが要求したオプションを追跡することは実現可能で有益だと思いますか?
ピョートルドブロゴスト

2
/ proc / mountsの内容をエスケープ解除する必要があることに注意してください。getmntent(3)ページで説明したように、スペース(\ 040)、タブ(\ 011)、改行(\ 012)、およびバックスラッシュ(\ 134)を特別に処理する必要があります。特にユーザーマウントが有効になっている場合は、これらのパスを操作するときに非常に注意する必要があります。
エリック

2
コマンドfindmntを使用するためのその他の回答も参照してください。これは2010年以降の推奨される方法であり、近い将来マウント名前空間が一般的になる唯一の安全な方法です。
Marki555

68

バージョン2.18(2010年7月)に util-linuxは、現在マウントされているファイルシステムのリストを表示できるツールが含まれています。

findmnt

デフォルトのツリービューからリストビューに切り替え、で-l出力列を定義-o(に類似lsblk)、ファイルシステムタイプに基づいて結果をフィルタリングする-tなど...

findmnt -lo source、target、fstype、label、options、used -t ext4
SOURCE    TARGET      FSTYPE LABEL OPTIONS                           USED
/dev/sda1 /           ext4   ARCH  rw,noatime,discard,data=ordered  17.6G
/dev/sdb2 /media/DATA ext4   DATA  rw,noatime,discard,data=ordered    44M

詳細については、manページをお読みください(findmnt --help利用可能な列のリストを取得するには)


33

たぶん、この質問が答えられてから5年が経過したのは、物事が変化したからでしょう。cat /proc/mountsあなたが気にしない情報の多くを作成します。今日、私見、私はこれが究極の解決策だと思います。

df -h --output=source,target

マニュアルページを読むとき、あなたがすることができるすべての種類のオプションがあります、しかし、これはあなたが何であるかです。たとえば、結果をさらにクリーンアップするには、次のコマンドで「tmpfs」のファイルタイプを除外できます。

df -hx tmpfs --output=source,target

df ファイルレベルではなくファイルシステムレベルで動作します。

上記のコマンドには、ネットワークマウントも含まれます。

もう少し情報を見るには、これを使用してください:

df -hT

低速でマウントされたネットワーク接続では、これには数分かかる場合があります!

マウントされたネットワーク接続を持たないか気にしない場合(そしてルート権限がある場合)、これはさらに良いです:

sudo lsblk -f

ルートである必要はありませんが、一部のフィールド/列(Labelなど)にはnullデータがあります。これは、質問がマウントされているファイルシステムを知りたいという点で問題ない場合があります。
リック

Ubuntu。しかし、ルートを使用せず、ネットワークにマウントされたファイルシステムをリストする「findmnt」を発見しました。答えを編集してその知識を含めることを考えていました。
リック

:-)私はあなたの答えを投票するのに疲れましたが、私は15+の担当者がいるまでできません
リック

1
--outputちなみに、これらのオプションを受け入れないUbuntu 12のようなものを使用しようとしている場合は、findmnt以下のdon_crisstiの答えを確認してください。
マットシャファー

findmntラベルを表示するには、より高い機能(ルートでテスト済み。ルートにはすべての機能があります)が必要なようです。
ctrl-alt-delor

23

ほとんどの場合、mount最も便利な方法です。現在マウントされているファイルシステムの完全かつ正確なリストについては、/proc/mounts(たとえば、cat /proc/mounts)の内容を読む必要があります。

たとえば、/readwriteのマウントが失敗し、フォールバックとしてreadonlyにマウントされた場合/etc/mtabmountコマンドは、マウントされたものを通知するために読み取り、マウントされたものを変更できる場合は書き込み可能)、更新されません/(を含む/etc/mtab)が現在読み取り専用でマウントされていることを反映します。このような状況では、実行mountすると通常、/読み取り書き込みでマウントされたことを(誤って)通知します。

通常の状態(つまり、それを含むファイルシステムに書き込むことができる場合)では/etc/mtab、現在マウントされているファイルシステムのリストが含まれます。これは/etc/fstab、システムの起動時に自動的にマウントされるはずのファイルシステムのリストを含むと混同しないでください。

もちろん、/proc仮想ファイルシステム自体がマウントされていない場合、その中の仮想ファイルを読み取ることはできません/proc/mounts。これは非常にまれです。この状況でmountは、おそらくマウントされているものを見るための最良のオプションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.