ルートファイルシステムが小さいと予想されますが、usrを「ファイルシステム」と呼ぶのはなぜですか?

ルートファイルシステムが小さいと予想されますが、usrを「ファイルシステム」と呼ぶのはなぜですか?

Linuxのファイルシステムを理解しようとしていますが、まだ理解していない部分があります。これまで私が正しく理解しているのは、ファイルシステムがボリュームのパーティションからファイルを取得するために使用される一連の方法とデータ構造であることです。ファイルシステムはLinuxコマンドでリストできます。df これまではとても良いです。

また、Linuxは合成ファイルシステムをprocsとして生成します。これは、ファイルではなくオブジェクトに対して通常のファイルシステムとして表示されます。 proc ファイルシステムがその例です。フラグを追加すると、dfコマンドを使用して合成ファイルシステムを一覧表示できます-a

今の質問は、/usr/フォルダがファイルシステムと呼ばれる理由です。https://tldp.org/LDP/sag/html/usr-fs.html)?私にとっては、ルートファイルシステムに属するフォルダのようです。それでは、なぜ人々はそれをファイルシステムと呼ぶのでしょうか?

また、人々がルートファイルシステムが小さくなければならないと言うのはなぜですか(https://tldp.org/LDP/sag/html/root-fs.html)?

実際にdf次のコマンドを呼び出すと、次のようになります。

Filesystem     1K-blocks      Used Available Use% Mounted on
udev            32866696         0  32866696   0% /dev
tmpfs            6578976      2484   6576492   1% /run
/dev/nvme0n1p5 959862832 101610168 809424504  12% /
tmpfs           32894876    109020  32785856   1% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
tmpfs           32894876         0  32894876   0% /sys/fs/cgroup
/dev/loop1         56704     56704         0 100% /snap/core18/1885
/dev/loop2        261760    261760         0 100% /snap/gnome-3-34-1804/36
/dev/nvme0n1p1    523248         4    523244   1% /boot/efi
/dev/loop3         63616     63616         0 100% /snap/gtk-common-themes/1506
/dev/loop4         51968     51968         0 100% /snap/snap-store/481
/dev/loop5         31744     31744         0 100% /snap/snapd/9721
/dev/loop6         30720     30720         0 100% /snap/snapd/8542
/dev/loop7        223232    223232         0 100% /snap/gnome-3-34-1804/60
/dev/loop8         51072     51072         0 100% /snap/snap-store/467
tmpfs            6578972        20   6578952   1% /run/user/125
tmpfs            6578972        40   6578932   1% /run/user/1000
/dev/sda1       30702592   2498400  28204192   9% /media/tommaso/USB
/dev/loop9         56704     56704         0 100% /snap/core18/1932

ルートファイルシステムは実際には次のように構成されているようです。すべて私のコンピュータではなぜ小さいのですか?

答え1

基本原則は背景部分。 2000年代半ばから後半まで関連がありましたが、今日はもはや関連がありません。

別々のファイルシステムを作成する理由は、/usrルートファイルシステムを小さく保つためです。ディレクトリ/usrツリーはソフトウェアのインストールに使用されます。

  • インストールされているソフトウェアは頻繁に変更されないため、/usr読み取り専用でインストールできます。ルートファイルシステムは/etc通常頻繁に変更する必要があるため、読み取り専用でマウントすることはできません。読み取り専用に保つ主な利点は、/usr読み取り/書き込みがマウントされている間にシステムがクラッシュした場合に長いファイルシステムチェックを避けることができることです。これは、もはや最新のファイルシステムとは関係ありません。雑誌または、競合から直接回復できる他のメカニズムもあります。

  • 同じシステムにインストールされているソフトウェアは同じであるため、/usr読み取り専用にすることができます。あるいは、ローカルネットワークがある場合は、それを単一のサーバーに保存して別のシステムにインストールすることもできます。ネットワークのルートファイルシステムからの起動はより複雑です(より多くのブートローダとカーネルのサポートに依存し、ネットワークがダウンするとマシンを完全に使用できなくなります)。これはディスクスペースのコストが200ドルだった当時は一般的でしたが、/usrコストは1セントにすぎないため、もはや重要ではありません。

したがって、最近では/usr別々のファイルシステムを持っている/usr/

少なくともLinuxではこれ以上そうではありません。原因は、この/etc/mtabファイルが以前は一般的なファイルでしたが、今では一般的にシンボリックリンクがある/proc/mountsのに十分であることです。しかし、プリンタ/ネットワークが最後に確認された時間のタイムスタンプを含むファイルを更新したいCupsやNetworkManagerなどの新しい犯人が登場しました。/etc/mtab/etc/mtab

答え2

あなたはいくつかの点で廃止された非常に古いマニュアルを読んでいます。

過去には一部の Unix の場合に慣れるは別の/usrマウントポイントであり、残りのファイル(/bin /etc /root /usr /sbin)は正常な起動にのみ必要です。

今日、Linuxディストリビューションはその中にあるすべてを削除し/bin /sbinて移動しています。これは(と一緒に)ルートファイルシステムに属することが非常に適していることを意味します。/lib/usr/{bin,sbin,lib}/usr/etc /root/var

2020年の最新のLinuxの階層は次のとおりです。

/bin     -> /usr/bin
/boot     : a separate FS for storing kernel images and initial ram disks
/boot/efi : an EFI system partition - not specific to Linux
/dev      : tmpfs
/etc
/home
/lib     -> /usr/lib
/lib64   -> /usr/lib64
/media
/mnt
/opt
/proc      : virtual fs
/run       : tmpfs
/sbin     -> /usr/sbin
/sys       : virtual fs
/tmp       : tmpfs
/usr
/var

/したがって、最小限のファイルシステムとファイルシステムが必要です/boot。しかし、誰も別のプレフィックスを別のファイルシステムに置くのを防ぎません。

しかし、次は良い習慣です。

  • /homeディストリビューションを簡単に切り替えることができるため、別のファイルシステムとして使用
  • /var/lib/{mysql|postgres|something else}スピードを上げ、断片化を減らすために別のFSがあるかもしれません
  • 一部の人々は排他的な大規模なアプリケーションをインストールし/optたり、/usr/local別のファイルシステムを保証したりするかもしれません。

それはすべてです。

関連情報