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

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

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

私の質問は:マウントされたファイルシステムの最も正確なリストをどのように取得できますか?使用mount、読み取り、/etc/mtabまたはコンテンツのみを使用する必要がありますか/proc/mounts?最も信頼できる結果は何ですか?

答え1

マウントされたファイルシステムの最終リストはにあります/proc/mounts

システムに何らかの形でコンテナがある場合、/proc/mounts現在のコンテナのファイルシステムのみが一覧表示されます。例えば、chroot/proc/mountsマウントポイントがchroot内にあるファイルシステムのみを一覧表示します。 (chrootを脱出する方法があることに注意してください。)

マウントされたファイルシステムのリストもあります/etc/mtab。このリストはmountおよびコマンドによって保持されますumount。これは、これらのコマンドを使用しないと(まれに)操作(インストールまたは削除)が記録されないことを意味します。実際、chrootの/etc/mtabシステム状態とは非常に異なるファイルを頻繁に見つけることができます。また、chroot内で実行されたマウントはchrootに反映されますが、/etc/mtabmainには反映されません/etc/mtab/etc/mtab読み取り専用ファイルシステムで実行された操作もここに書き込まれません。

/etc/mtab場合によっては、最初または追加で参照したい理由は、マウントコマンドラインへのアクセス権があるため、情報をより理解しやすい方法で表示できるためです。たとえば、要求されたマウントオプション(リストとカーネル/proc/mountsも表示)が表示されます。デフォルト)、バインドマウントは 。/proc/mountsmount/etc/mtab

答え2

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

findmnt

を使用して、基本ツリービューからリストビューに切り替える、を使用して-l出力列を-o定義しlsblk、を使用してファイルシステムタイプに基づいて結果をフィルタリングする-tなどの操作を実行できます。

findmnt -loソース、ターゲット、fstype、ラベル、オプション、-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

〜のようにバージョン 2.27JSONパス-Jまたは--jsonスイッチ出力もサポートされています。

findmnt -Jo ソース、ターゲット、タグ、uuid -t ext4
{
   "filesystems": [
      {
         "source": "/dev/nvme0n1p5",
         "target": "/",
         "label": "ARCH",
         "uuid": "f21a53194-b02a-4e92-ad96-fdf9b8bc1db9",
         "children": [
            {
               "source": "/dev/nvme0n1p6",
               "target": "/run/media/data",
               "label": "DATA",
               "uuid": "321e288a-e67c-4b68-8d0b-89720210921f"
            }
         ]
      }
   ]
}

詳細については、そのmanページを読んでfindmnt --help利用可能な列のリストを確認してください。

答え3

おそらく、この質問に対する答えが出てから5年が経過したため、状況が変わった可能性があります。これcat /proc/mountsにより、あなたが気にしない多くの情報が生成されます。今日IMHO、私はこれが究極の解決策であることがわかりました。

df -h --output=source,target

マニュアルページを読むときに実行できるさまざまなオプションがありますが、これはユーザーが行うことです。たとえば、結果をさらにクリーンアップするには、次のように「tmpfs」ファイルタイプを除外できます。

df -hx tmpfs --output=source,target

dfファイルレベルではなくファイルシステムレベルに適用されます。

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

詳細については、次のコマンドを使用してください。

df -hT

ノートインターネット接続が遅い場合は、数分かかることがあります!

インストールされているネットワーク接続がないか、気にしない場合(そしてrootアクセス権がある場合)、より良い方法です。

sudo lsblk -f

答え4

何らかの理由でインストールされたソースにアクセスできなくなった場合(私の場合はドメインパスワードが期限切れになります)、マウントポイントディレクトリが空になり(少なくとも私にとっては)インストールがもう/proc/mount

私は以前の資格情報を使用して自分のドメインアカウントに頻繁に(数秒ごとに)アクセスしようとし、アカウントを頻繁にロックする一部があると思われるので、そのようなインストールを必死に検索しています。それで私はこの問題を最初に見つけました。しかし、これは/proc/mounts私にとって解決策ではありません。

私は次のコマンドを使用してUbuntuサーバーでいくつかのインストールを実行した可能性があることを知っていますが、通常のマウントポイントがインストールされていないようですmount_point_dir

$ mount.cifs <remotetarget> <mount_point_dir>

最後に、syslogはインストール認証に問題があることを確認しました/var/log/syslog。このログには、次のステートメントを含む行がたくさんあります。

CIFS VFS: Free previous auth_key.response
Status code returned 0xc0000234 STATUS_ACCOUNT_LOCKED_OUT

これにより、私の疑いが確認され、/proc/fs/cifsフォルダの下の統計とデバッグデータを表示して追加の確認を得ることができました。

追加情報ここ

実際にターゲットに関する情報を見たことはありませんが、mount_point_dirインストールソースだけを見て問題を解決するのに十分でした。サーバーを再起動するように求められ、その後インストールが消え、アカウントロックの問題がなくなったためです。

関連情報