Что такое файловая система на Linux?

Файловая система — это методы и структуры данных, которые операционная система использует для отслеживания файлов на диске или разделе; то есть способ организации файлов на диске.

Операционная система Linux поддерживает несколько типов файловых систем.

Существует множество инструментов, позволяющих найти список файловых систем, доступных в настоящее время в Linux.

Наиболее часто используемый инструмент командной строки — df.

В этом руководстве мы увидим, как составить список файловых систем в Linux с помощью Lfs.

Lfs — это инструмент командной строки для отображения информации о подключенных дисках в вашей системе Linux.

Разработчик Lfs утверждает, что это более лучшая альтернатива команде df -H.

Большая часть информации, предоставляемой lfs, уже предоставляется df.
Однако в lfs есть несколько улучшений, перечисленных ниже:
  • lfs помогает распознать диски, помечая их как «rem» (съемный), «HDD», «SSD».
  • lfs использует только единицы СИ. Вам не нужно открывать справку и проверять правильный аргумент для единиц правильного размера.
  • lfs отображает тип файловой системы.
  • lfs сортирует файловые системы по размеру.
  • В отличие от команды df, lfs отображает вывод в формате столбцов таблицы. Df отображает вывод в формате списка.

Lfs — это программа с открытым исходным кодом, написанная на Rust.

Код находится в свободном доступе на GitHub под лицензией MIT.

Установка Lfs на Linux

В настоящее время Lfs можно установить двумя способами.
  • Используя менеджер пакетов Cargo.
  • Используя предварительно скомпилированный бинарник

1. Установим lfs с помощью Cargo

Сначала установите Rust на свой Linux-сервер, как описано по следующей ссылке:
Установите язык программирования Rust:
Если Rust уже установлен, вам необходимо обновить его до последней версии с помощью следующей команды:
$ rustup update
Затем установите lfs с помощью диспетчера пакетов cargo:
$ cargo install lfs

2. Установим Lfs, используя предварительно скомпилированные двоичные файлы.

Если вы предпочитаете использовать предварительно скомпилированный двоичный файл, скачайте его со страницы выпусков.

$ wget https://github.com/Canop/lfs/releases/download/v0.5.1/lfs_0.5.1.zip
Извлеките его и переместите исполняемый файл в ваш $PATH, например /usr/local/bin/.
$ sudo mv lfs_0.5.1/build/lfs /usr/local/bin/
Обратите внимание, что предварительно скомпилированная версия — не самая последняя версия.
Так что вы можете упустить некоторые функции.

Список файловых систем в Linux с помощью Lfs

Запустите команду lfs без каких-либо параметров, чтобы вывести список файловых систем в вашей системе Linux:

$ lfs

Пример вывода:

┌──┬───┬──────────┬───┬────┬────┬────┬────┬─────┬───────────┐
│id│dev│filesystem│dsk│type│size│used│use%│avail│mount point│
├──┼───┼──────────┼───┼────┼────┼────┼────┼─────┼───────────┤
│31│8:1│/dev/sda1 │HDD│ext4│491G│468G│ 95%│  23G│/          │
└──┴───┴──────────┴───┴────┴────┴────┴────┴─────┴───────────┘
По умолчанию lfs перечисляет только файловые системы, поддерживаемые блочными устройствами, похожими на настоящие диски.
Чтобы показать все файловые системы, используйте флаг -a.
$ lfs -a

Пример вывода:

┌────┬────┬───────────┬───┬───────────────┬────┬────┬────┬─────┬───────────────────────────────┐
│  id│dev │filesystem │dsk│     type      │size│used│use%│avail│mount point                    │
├────┼────┼───────────┼───┼───────────────┼────┼────┼────┼─────┼───────────────────────────────┤
│  31│8:1 │/dev/sda1  │HDD│     ext4      │491G│468G│ 95%│  23G│/                              │
│  33│0:27│tmpfs      │   │     tmpfs     │4.1G│366M│  9%│ 3.8G│/dev/shm                       │
│  35│0:29│tmpfs      │   │     tmpfs     │4.1G│   0│  0%│ 4.1G│/sys/fs/cgroup                 │
│  26│0:6 │udev       │   │   devtmpfs    │4.1G│   0│  0%│ 4.1G│/dev                           │
│  28│0:24│tmpfs      │   │     tmpfs     │825M│1.9M│  0%│ 823M│/run                           │
│1315│0:24│tmpfs      │   │     tmpfs     │825M│1.9M│  0%│ 823M│/run/snapd/ns                  │
│1546│0:54│tmpfs      │   │     tmpfs     │825M│ 53K│  0%│ 825M│/run/user/1000                 │
│ 161│7:4 │/dev/loop4 │HDD│   squashfs    │268M│268M│100%│    0│/snap/gnome-3-34-1804/36       │
│ 143│7:8 │/dev/loop8 │HDD│   squashfs    │252M│252M│100%│    0│/snap/chromium/1328            │
│ 167│7:13│/dev/loop13│HDD│   squashfs    │231M│231M│100%│    0│/snap/multipass/2604           │
│ 176│7:17│/dev/loop17│HDD│   squashfs    │231M│231M│100%│    0│/snap/multipass/2531           │
│ 131│7:1 │/dev/loop1 │HDD│   squashfs    │229M│229M│100%│    0│/snap/gnome-3-34-1804/60       │
│ 146│7:5 │/dev/loop5 │HDD│   squashfs    │171M│171M│100%│    0│/snap/gnome-3-28-1804/145      │
│ 137│7:10│/dev/loop10│HDD│   squashfs    │171M│171M│100%│    0│/snap/chromium/1350            │
│ 164│7:12│/dev/loop12│HDD│   squashfs    │169M│169M│100%│    0│/snap/gnome-3-28-1804/128      │
│ 125│7:6 │/dev/loop6 │HDD│   squashfs    │148M│148M│100%│    0│/snap/gnome-3-26-1604/98       │
│ 128│7:2 │/dev/loop2 │HDD│   squashfs    │148M│148M│100%│    0│/snap/gnome-3-26-1604/100      │
│ 140│7:7 │/dev/loop7 │HDD│   squashfs    │102M│102M│100%│    0│/snap/core/10126               │
│ 173│7:9 │/dev/loop9 │HDD│   squashfs    │102M│102M│100%│    0│/snap/core/9993                │
│ 158│7:11│/dev/loop11│HDD│   squashfs    │ 65M│ 65M│100%│    0│/snap/gtk-common-themes/1506   │
│ 155│7:3 │/dev/loop3 │HDD│   squashfs    │ 58M│ 58M│100%│    0│/snap/core18/1885              │
│ 170│7:15│/dev/loop15│HDD│   squashfs    │ 58M│ 58M│100%│    0│/snap/core18/1880              │
│ 152│7:14│/dev/loop14│HDD│   squashfs    │ 58M│ 58M│100%│    0│/snap/gtk-common-themes/1502   │
│  34│0:28│tmpfs      │   │     tmpfs     │5.2M│4096│  0%│ 5.2M│/run/lock                      │
│ 134│7:0 │/dev/loop0 │HDD│   squashfs    │2.4M│2.4M│100%│    0│/snap/gnome-system-monitor/145 │
│ 149│7:16│/dev/loop16│HDD│   squashfs    │2.4M│2.4M│100%│    0│/snap/gnome-system-monitor/148 │
│  24│0:22│sysfs      │   │     sysfs     │    │    │    │     │/sys                           │
│  25│0:5 │proc       │   │     proc      │    │    │    │     │/proc                          │
│  27│0:23│devpts     │   │    devpts     │    │    │    │     │/dev/pts                       │
│  32│0:7 │securityfs │   │  securityfs   │    │    │    │     │/sys/kernel/security           │
│  36│0:30│cgroup2    │   │    cgroup2    │    │    │    │     │/sys/fs/cgroup/unified         │
│  37│0:31│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/systemd         │
│  38│0:32│pstore     │   │    pstore     │    │    │    │     │/sys/fs/pstore                 │
│  39│0:33│none       │   │      bpf      │    │    │    │     │/sys/fs/bpf                    │
│  40│0:34│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/perf_event      │
│  41│0:35│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/rdma            │
│  42│0:36│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/net_cls,net_prio│
│  43│0:37│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/memory          │
│  44│0:38│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/cpu,cpuacct     │
│  45│0:39│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/devices         │
│  46│0:40│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/cpuset          │
│  47│0:41│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/freezer         │
│  48│0:42│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/hugetlb         │
│  49│0:43│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/pids            │
│  50│0:44│cgroup     │   │    cgroup     │    │    │    │     │/sys/fs/cgroup/blkio           │
│  51│0:45│systemd-1  │   │    autofs     │    │    │    │     │/proc/sys/fs/binfmt_misc       │
│  52│0:20│mqueue     │   │    mqueue     │    │    │    │     │/dev/mqueue                    │
│  53│0:46│hugetlbfs  │   │   hugetlbfs   │    │    │    │     │/dev/hugepages                 │
│  54│0:12│tracefs    │   │    tracefs    │    │    │    │     │/sys/kernel/tracing            │
│  55│0:8 │debugfs    │   │    debugfs    │    │    │    │     │/sys/kernel/debug              │
│ 119│0:47│fusectl    │   │    fusectl    │    │    │    │     │/sys/fs/fuse/connections       │
│ 122│0:21│configfs   │   │   configfs    │    │    │    │     │/sys/kernel/config             │
│ 840│0:4 │nsfs       │   │     nsfs      │    │    │    │     │/run/snapd/ns/multipass.mnt    │
│1574│0:55│gvfsd-fuse │   │fuse.gvfsd-fuse│    │    │    │     │/run/user/1000/gvfs            │
│1202│0:69│binfmt_misc│   │  binfmt_misc  │    │    │    │     │/proc/sys/fs/binfmt_misc       │
└────┴────┴───────────┴───┴───────────────┴────┴────┴────┴─────┴───────────────────────────────┘
Вы также можете получить информацию о файловой системе в формате JSON с флагом -j.
$ lfs -j

Вывод:

[
  {
    "dev": {
      "major": 8,
      "minor": 1
    },
    "disk": {
      "removable": false,
      "rotational": true,
      "type": "HDD"
    },
    "fs": "/dev/sda1",
    "fs-type": "ext4",
    "id": 31,
    "mount-point": "/",
    "stats": {
      "available": "23G",
      "bavail": 5652047,
      "bfree": 11760949,
      "blocks": 119917226,
      "bsize": 4096,
      "size": "491G",
      "used": "468G",
      "used-percent": "95%"
    }
  }
]

Чтобы отобразить подробную информацию обо всех файловых системах в формате JSON, выполните:

$ lfs -a -j

Для получения справки:

$ lfs --help
Usage: lfs [-v] [-a] [-j]

List your filesystems. All units are SI. Source at https://github.com/Canop/lfs

Options:
  -v, --version     print the version
  -a, --all         whether to show all mount points
  -j, --json        output as JSON
  --help            display usage information

Lfs — это небольшая и простая утилита для отображения использования дискового пространства файловой системы.

Попробуйте и дайте нам знать свои мысли об этой утилите в разделе комментариев ниже.

 

Поделитесь статьей:

Добавить комментарий