View on GitHub

Linux Practic Usage

Practical materials for learning Linux

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

Быстрый поиск


Основные особенности файловой системы Linux

Файловая система — это некоторая система организации хранения данных на носителях, обеспечивающая доступность и некоторые гарантии для сохраняемых данных. В Linux файловая система (далее ФС) представляется в виде единого дерева директорий, каждая из которых формально отвечает за хранение своего вида данных (формализм здесь упомянут не случайно; вообще говоря, никто не запретит вам перестроить порядок хранения. Однако на базе того, где хранятся те или иные файлы (например, исполняемые), строится работа сторонних приложений. Переустройство ФС будет требовать от вас такого же переустройства всех завязаных на работе с ФС утилит, а это почти наверное все существующие утилиты). Фактически единого дерева директорий на носителях может и не быть: данные могут лежать в разных разделах диска, разных дисках, разных сетевых ресурсах. ФС создаёт удобную древовидную абстракцию, позволяющую работать с распределёнными данными как с единым хранилищем.

Объекты файловой системы это, как ни странно, файлы. Однако здесь этот термин используется в более общем смысле, именно как «элемент ФС», а не как «документ, в который написали и пототм прочитали». Файловая система обеспечивает доступ к данным оперативной памяти, к данным исполняемых процессов, параметрам ядра ОС. У всех этих объектов можно выделить «файловый интерфейс»: чтение-запись параметров привычным нам способом, получение и задание мета-информации и так далее.

Перед погружением в структуру файловой системы рассмотрим ещё одну возможность работы с файлами: построение ссылок на объекты. Рассмотрим какой-нибудь объект ФС, для простоты возьмём обычный текстовый файл с календарем и посмотрим на метаданные файла с помощью утилиты stat:

[papillon_rouge@BaseALT-Papillon ~]$ cal > calend
[papillon_rouge@BaseALT-Papillon ~]$ cat calend
      July 2026
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

[papillon_rouge@BaseALT-Papillon ~]$ stat calend
  File: calend
  Size: 168             Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257654     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:33:36.964289977 +0300
Modify: 2026-07-10 11:33:25.635246026 +0300
Change: 2026-07-10 11:33:25.635246026 +0300
 Birth: 2026-07-10 11:33:25.632246015 +0300
[papillon_rouge@BaseALT-Papillon ~]$

В метаданных представлены два типа данных. Первый — связанные с конкретным объектом ФС: его размер; количество занимаемых блоков памяти ФС; номер индексного дескриптора, в котором вся данная информация хранится (Inode); данные о времени создания-изменения.

Также к данным объекта ФС относится параметр Links — количество жестких ссылок. Ссылки — это непосредственно то, с чем мы взаимодействуем для доступа к объектам ФС. У ссылки есть своё имя, владелец (и группа владельца) и права доступа к объекту. Ссылки играют важную роль: по ним определяется доступность объекта, а, следовательно, и его существование в ФС. При наличии хотя бы одной жесткой ссылки объект формально доступен (до него можно дотянуться из интерфейса ФС), при обнулении счётчика объект удаляется из ФС.

Такой формализм кажется избыточным, однако сильно упрощает реализацию. При удалении чего-то данные этого объекта никак не затираются (если, конечно, явно не запросить такого действия у компьютера. Однако длиться это будет столько же, сколько эти данные к вам устанавливались), просто в индексном дескрипторе, отвечающем за соответствующий файл все блоки помечаются свободными. ФС будет распределять их для создания других объектов (а если ещё не успела это сделать, данные можно восстановить). Обратный эффект аналогичен: при создании ссылки данные не дублируются, а просто начинают ссылаться на один и тот же индексный дескриптор, возможно, из разных мест дерева ФС.

Для создания ссылок используется утилита ln. Создадим с её помощью ссылку, затем через одну изменим файл, а через другую на него посмотрим.

[papillon_rouge@BaseALT-Papillon ~]$ stat calend
  File: calend
  Size: 168             Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257654     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:33:36.964289977 +0300
Modify: 2026-07-10 11:33:25.635246026 +0300
Change: 2026-07-10 11:33:25.635246026 +0300
 Birth: 2026-07-10 11:33:25.632246015 +0300
[papillon_rouge@BaseALT-Papillon ~]$ ln calend other_calend
[papillon_rouge@BaseALT-Papillon ~]$ stat calend
  File: calend
  Size: 168             Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257654     Links: 2
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:33:36.964289977 +0300
Modify: 2026-07-10 11:33:25.635246026 +0300
Change: 2026-07-10 11:34:08.948414057 +0300
 Birth: 2026-07-10 11:33:25.632246015 +0300
[papillon_rouge@BaseALT-Papillon ~]$ stat other_calend
  File: other_calend
  Size: 168             Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257654     Links: 2
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:33:36.964289977 +0300
Modify: 2026-07-10 11:33:25.635246026 +0300
Change: 2026-07-10 11:34:08.948414057 +0300
 Birth: 2026-07-10 11:33:25.632246015 +0300
[papillon_rouge@BaseALT-Papillon ~]$
[papillon_rouge@BaseALT-Papillon ~]$ cat other_calend
      July 2026
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

[papillon_rouge@BaseALT-Papillon ~]$ vim calend
[papillon_rouge@BaseALT-Papillon ~]$ # Поменяли строку с днями недели
[papillon_rouge@BaseALT-Papillon ~]$
[papillon_rouge@BaseALT-Papillon ~]$ cat other_calend
      July 2026
Вс Пн Вт Ср Чт Пт Сб
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

[papillon_rouge@BaseALT-Papillon ~]$ stat other_calend
  File: other_calend
  Size: 182             Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257654     Links: 2
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:36:52.963050376 +0300
Modify: 2026-07-10 11:36:35.063980937 +0300
Change: 2026-07-10 11:36:35.074980980 +0300
 Birth: 2026-07-10 11:33:25.632246015 +0300
[papillon_rouge@BaseALT-Papillon ~]$

Ссылки на один и тот же индексный дескриптор называются жесткими ссылками. Про их свойства мы и говорили выше. Однако также можно сделать ссылку не на объект, а на другую ссылку. Такие ссылки называются символическими. Они являются отдельным объектом ФС (свой Inode, свои параметры), а единственное данное, которое они хранят — имя ссылки, на которую обращены. Сама ссылка может меняться, менять содержимое, символическая ссылка будет цепляться ко всему, что обладает тем же именем.

Для создания символической ссылки используется ln с ключом -s. Для просмотра метаданных объекта-ссылки также используется stat, но при использовании флага -L вся цепочка ссылок (а их, очевидно, может быть не одна: можно сделать ссылку на сслыку на ссылку на ссылку…) разворачивается до первого полного объекта.

[papillon_rouge@BaseALT-Papillon ~]$ ln -s calend link_calend
[papillon_rouge@BaseALT-Papillon ~]$ cat link_calend
      July 2026
Вс Пн Вт Ср Чт Пт Сб
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

[papillon_rouge@BaseALT-Papillon ~]$ stat link_calend
  File: link_calend -> calend
  Size: 6               Blocks: 8          IO Block: 4096   symbolic link
Device: 0,50    Inode: 2257873     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:43:17.271541023 +0300
Modify: 2026-07-10 11:43:14.497530308 +0300
Change: 2026-07-10 11:43:14.497530308 +0300
 Birth: 2026-07-10 11:43:14.497530308 +0300
[papillon_rouge@BaseALT-Papillon ~]$ stat -L link_calend
  File: link_calend
  Size: 182             Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257654     Links: 2
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:36:52.963050376 +0300
Modify: 2026-07-10 11:36:35.063980937 +0300
Change: 2026-07-10 11:36:35.074980980 +0300
 Birth: 2026-07-10 11:33:25.632246015 +0300
[papillon_rouge@BaseALT-Papillon ~]$
[papillon_rouge@BaseALT-Papillon ~]$ rm calend
rm: remove regular file 'calend'? y
[papillon_rouge@BaseALT-Papillon ~]$ stat link_calend
  File: link_calend -> calend
  Size: 6               Blocks: 8          IO Block: 4096   symbolic link
Device: 0,50    Inode: 2257873     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:43:17.271541023 +0300
Modify: 2026-07-10 11:43:14.497530308 +0300
Change: 2026-07-10 11:43:14.497530308 +0300
 Birth: 2026-07-10 11:43:14.497530308 +0300
[papillon_rouge@BaseALT-Papillon ~]$ stat -L link_calend
stat: cannot statx 'link_calend': No such file or directory
[papillon_rouge@BaseALT-Papillon ~]$
[papillon_rouge@BaseALT-Papillon ~]$ date > calend
[papillon_rouge@BaseALT-Papillon ~]$ stat -L link_calend
  File: link_calend
  Size: 32              Blocks: 8          IO Block: 4096   regular file
Device: 0,50    Inode: 2257896     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/papillon_rouge)   Gid: ( 1000/papillon_rouge)
Access: 2026-07-10 11:44:26.078806792 +0300
Modify: 2026-07-10 11:44:26.091806843 +0300
Change: 2026-07-10 11:44:26.091806843 +0300
 Birth: 2026-07-10 11:44:26.078806792 +0300
[papillon_rouge@BaseALT-Papillon ~]$ cat link_calend
Fri Jul 10 11:44:26 AM MSK 2026
[papillon_rouge@BaseALT-Papillon ~]$

Структура файловой системы Linux

Организация файловой системы Linux подчиняется стандарту Filesystem Hierarchy Standard (FHS), который определяет назначение и содержимое основных директорий. Этот стандарт обеспечивает единообразную структуру размещения файлов независимо от дистрибутива. Корневая директория / обеспечивает доступ ко всем другим директориям.

Директории /bin и /sbin содержат исполняемые файлы утилит. Принято в /sbin хранить утилиты, связанные с системными действиями и настройками, просто исполняемые файлы приложений — в /bin. Для работы приложений также необходимы динамические библиотеки (про отличие статических и динамических библиотек можно прочитать тут), поэтому наряду с директориями исполняемых файлов находятся /lib, /lib64 и аналогичные — хранилища динамических библиотек, необходимых для работы системных программ.

При ручной установке утилит было принято использовать специальную директорию /usr. В ней описана вторичная иерархия утилит и библиотек. Структура этой директории отражает иерархию корневой файловой системы, но содержит менее критичные для начальной загрузки компоненты. Историческое разделение между корневой ФС и /usr со временем исчезло: в частности, в ALT Linux большинство приложений и библиотек хранятся в /usr, а директории /bin, /sbin и /lib в корне файловой системы превратились в символические ссылки на соответствующие подкаталоги /usr для обратной совместимости. Внутри /usr также выделяется третий уровень вложенности — директория /usr/local со своей иерархией. Туда принято устанавливать пользовательские общедоступные приложения, которые могут конфликтовать с текущими системными библиотеками.

Для установки сторонних пакетов и приложений, которые нужно сделать доступными всей системе, но максимально избежать конфликтов с системными библиотеками и инструментами, предназначена директория /opt. Это позволяет сохранить независимость специализированных приложений от базовой системы.

Директория /home предназначена для хранения домашних директорий пользователей, каждый из которых содержит персональные настройки приложений и данные конкретного пользователя. Отдельно от остальных пользователей находится /root — домашняя директория суперпользователя (root), которая изолирована в целях безопасности и управления системой, без общего доступа для обычных пользователей.

Загрузочные файлы, необходимые для инициализации системы и загрузчика ядра, размещаются в директории /boot.

Для представления физических устройств используется директория /dev. Это виртуальная файловая система, управляемая специальными службами обработки физических устройств (в ALT Linux это systemd-udevd), где динамически обновляются записи об устройствах по мере их подключения и отключения.

Аналогичным образом директория /proc представляет собой виртуальную файловую систему, предоставляющую интерфейс к внутренним программным структурам данных ядра. Через эту директорию можно получить информацию о работающих процессах, параметрах памяти, загрузке процессора и других аспектах работы системы. Директория /sys также описывает программные структуры, но сосредоточена на системных параметрах оборудования и подсистемах ядра.

Текущее состояние системы и информация о работающих процессах хранится в директории /run, которая часто размещается в оперативной памяти (tmpfs). В такой же ФС оперативной памяти в директории /tmp размещены временные файлы, создаваемые приложениями и системой во время работы. Следует помнить, что данные в этой директории не гарантируют сохранность между перезагрузками системы.

Изменяемые данные, которые накапливаются во время работы системы, размещаются в /var. Сюда входит почта пользователей, кеш приложений, логи системы, информация об установленных пакетах и другая служебная информация.

Для монтирования внешних файловых систем используются директории /media и /mnt. Директория /media обычно служит для автоматического монтирования съёмных носителей, таких как USB-диски и оптические диски, тогда как /mnt используется для ручного монтирования дополнительных разделов или сетевых ресурсов.

Наконец, директория /srv предназначена для данных сервисов, предоставляемых для внешнего доступа, или служит местом их надлежащего размещения.

Возможности монтировнаия файловых систем

Процесс монтирования ФС встречается при работе постоянно: система сама производит подключения некоторых областей оперативной памяти в качестве временных ФС, подключение любых внешних дисков осуществляется путём монтирования их ФС к общей ФС для доступа к данным. Для просмотра уже смотрированных ФС используется утилита findmnt

[papillon_rouge@BaseALT-Papillon ~]$ findmnt
TARGET                        SOURCE        FSTYPE      OPTIONS
/                             /dev/nvme0n1p3[/@]
                                            btrfs       rw,relatime,ssd,discard=async,space_cache=v2,subvolid=256,subvol=/@
├─/proc                       proc          proc        rw,nosuid,noexec,relatime,gid=19
│ └─/proc/sys/fs/binfmt_misc  systemd-1     autofs      rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=378
├─/dev                        udevfs        devtmpfs    rw,relatime,size=7872300k,nr_inodes=1968075,mode=755,inode64
│ ├─/dev/shm                  tmpfs         tmpfs       rw,nosuid,nodev,inode64
│ ├─/dev/pts                  devpts        devpts      rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666
│ ├─/dev/mqueue               mqueue        mqueue      rw,nosuid,nodev,noexec,relatime
│ └─/dev/hugepages            hugetlbfs     hugetlbfs   rw,nosuid,nodev,relatime,pagesize=2M
├─/run                        runfs         tmpfs       rw,relatime,mode=755,inode64
│ ├─/run/credentials/systemd-journald.service
│ │                           tmpfs         tmpfs       ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=70
│ ├─/run/credentials/systemd-resolved.service
│ │                           tmpfs         tmpfs       ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=70
│ ├─/run/credentials/systemd-networkd.service
│ │                           tmpfs         tmpfs       ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=70
│ └─/run/user/1000            tmpfs         tmpfs       rw,nosuid,nodev,relatime,size=1600632k,nr_inodes=400158,mode=700,uid=1000,gid
│   └─/run/user/1000/doc      portal        fuse.portal rw,nosuid,nodev,relatime,user_id=1000,group_id=1000
├─/sys                        sysfs         sysfs       rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security      securityfs    securityfs  rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/selinux           selinuxfs     selinuxfs   rw,nosuid,noexec,relatime
│ ├─/sys/fs/cgroup            cgroup2       cgroup2     rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot
│ ├─/sys/fs/pstore            none          pstore      rw,nosuid,nodev,noexec,relatime
│ ├─/sys/firmware/efi/efivars efivarfs      efivarfs    rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/bpf               bpf           bpf         rw,nosuid,nodev,noexec,relatime,mode=700
│ ├─/sys/kernel/config        configfs      configfs    rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/debug         debugfs       debugfs     rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/tracing       tracefs       tracefs     rw,nosuid,nodev,noexec,relatime
│ └─/sys/fs/fuse/connections  fusectl       fusectl     rw,nosuid,nodev,noexec,relatime
├─/home                       /dev/nvme0n1p3[/@home]
│                                           btrfs       rw,nosuid,relatime,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@hom
├─/boot/efi                   /dev/nvme0n1p1
│                                           vfat        rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=866,iocharset=utf
├─/tmp/.private/root/.mount_hiddifEkJION
│                             Hiddify-Linux-x64-AppImage.AppImage
│                                           fuse.Hiddif ro,nosuid,nodev,relatime,user_id=0,group_id=0
├─/mnt/auto                   /etc/auto.tab autofs      rw,relatime,fd=6,pgrp=3734,timeout=5,minproto=5,maxproto=5,indirect,pipe_ino=
├─/mnt/net                    /etc/auto.avahi
│                                           autofs      rw,relatime,fd=9,pgrp=3734,timeout=120,minproto=5,maxproto=5,indirect,pipe_in
└─/mnt/samba                  /etc/auto.smb autofs      rw,relatime,fd=12,pgrp=3734,timeout=34567,minproto=5,maxproto=5,indirect,pipe
[papillon_rouge@BaseALT-Papillon ~]$

Некоторые из них монтируются самой системой в момент инициализации. За такую предустановку отвечает файл /etc/fstab

[papillon_rouge@BaseALT-Papillon ~]$ cat /etc/fstab
proc            /proc                   proc    nosuid,noexec,gid=proc                          0 0
devpts          /dev/pts                devpts  nosuid,noexec,gid=tty,mode=620,ptmxmode=0666    0 0
#tmpfs          /tmp                    tmpfs   nosuid                                          0 0
UUID=378969b0-0376-4a5b-8c34-d4f9ef97eae7       /       btrfs   relatime,subvol=/@      0       2
UUID=96A9-D292  /boot/efi       vfat    umask=0,quiet,showexec,iocharset=utf8,codepage=866      1       2
UUID=378969b0-0376-4a5b-8c34-d4f9ef97eae7       /home   btrfs   nosuid,relatime,subvol=/@home   0       2
UUID=32d7db08-b2f0-4f5f-9465-ae598d68e3ba       swap    swap    defaults        0       0
[papillon_rouge@BaseALT-Papillon ~]$

Некоторые (например, указанная здесь samba) монтируются соответствующими приложениями и сервисами. Для ручного монтирования ФС используется парная утилита mount/umount. Для её использования потребуются права администратора.

Разберём подробно самый распространённый кейс для применения mount — монтирование USB-носителя. После подключения флешки в устройство используем lsblk — утилиту, которая покажет подключенные физические носители:

[root@BaseALT-Papillon ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    1   3.8G  0 disk
├─sda1        8:1    1   500M  0 part
├─sda2        8:2    1   253M  0 part
├─sda3        8:3    1   2.3G  0 part
└─sda4        8:4    1 720.2M  0 part
nvme0n1     259:0    0 476.9G  0 disk
├─nvme0n1p1 259:1    0   511M  0 part /boot/efi
├─nvme0n1p2 259:2    0    16G  0 part [SWAP]
└─nvme0n1p3 259:3    0 460.4G  0 part /home
                                      /
[root@BaseALT-Papillon ~]#

Наш основной диск уже примонтирован, соответственно, оставшийся диск это подключенный носитель. В нём много разделов, для понимания, какой раздел основной, сделаем запрос утилитой fdisk, взяв информацию только про данный носитель с помощью grep:

[root@BaseALT-Papillon ~]# fdisk -l | grep "sda"
Disk /dev/sda: 3.75 GiB, 4026531840 bytes, 7864320 sectors
/dev/sda1  *       2048 1026047 1024000   500M  6 FAT16
/dev/sda2       2500960 3019103  518144   253M ef EFI (FAT-12/16/32)
/dev/sda3       3020800 7864319 4843520   2.3G 83 Linux
/dev/sda4       1026048 2500959 1474912 720.2M 83 Linux
[root@BaseALT-Papillon ~]#

Основной раздел, в котором хранится информация обо всей ФС на флешке — EFI-раздел, монтировать будем его. Создаём точку монтирования (директорию), после чего выполняем монтирование. ФС носителя крепится на указанное место и доступна из нашей системы. Для демонтирования ФС используем umount.

[root@BaseALT-Papillon ~]# mkdir /media/usb
[root@BaseALT-Papillon ~]# tree /media/usb
/media/usb

0 directories, 0 files
[root@BaseALT-Papillon ~]# mount /dev/sda2 /media/usb
[root@BaseALT-Papillon ~]# tree /media/usb
/media/usb
├── boot
├── dev
├── etc
│   └── pacman.d
…
├── proc
├── run
├── sys
├── tmp
└── var
    ├── cache
    │   └── pacman
    │       └── pkg
    │           ├── acl-2.3.2-2-x86_64.pkg.tar.zst
…
    │           └── zstd-1.5.7-3-x86_64.pkg.tar.zst.sig
    ├── lib
    │   └── pacman
    │       ├── local
    │       │   └── ALPM_DB_VERSION
    │       └── sync
    │           ├── core.db
    │           └── extra.db
    └── log
        └── pacman.log

21 directories, 294 files
[root@BaseALT-Papillon ~]# umount /media/usb
[root@BaseALT-Papillon ~]# tree /media/usb
/media/usb

0 directories, 0 files
[root@BaseALT-Papillon ~]#

Кроме монтирования внешних ФС также возможно повторное монтирование уже добавленных поддеревьев аналогично жёстким ссылкам для файлов. Для этого используется ключ --bind.

[root@BaseALT-Papillon ~]# mkdir /home/Someone
[root@BaseALT-Papillon ~]# cat > /home/Someone/hello
Hello, i have already mounted
[root@BaseALT-Papillon ~]# mount --bind /home/Someone/ /mnt/
[root@BaseALT-Papillon ~]# tree /home/Someone/
/home/Someone/
└── hello

1 directory, 1 file
[root@BaseALT-Papillon ~]# tree /mnt
/mnt
└── hello

1 directory, 1 file
[root@BaseALT-Papillon ~]# cat /mnt/hello
Hello, i have already mounted
[root@BaseALT-Papillon ~]#

Возможно монтировать образы файловых систем напрямую из ISO:

[root@BaseALT-Papillon ~]# mkdir /mnt/iso
[root@BaseALT-Papillon ~]# mount -o loop Downloads/
31-4414-Janowski-sk-new.pdf                     manjaro-kde-26.0.4-minimal-260327-linux618.iso
congavoid.pdf                                   PrikStat.pdf
Default (Linux).sublime-keymap                  protocolsIPv6-jeos-x86_64.ova
dnd-backend.zip                                 ventoy-1.1.12/
hypr.lua                                        ventoy-1.1.12-linux.tar.gz
main.tex                                        Асинхронные возможности Python.pdf
Malchevskii_Balashov_Monetec.pdf                ВМК/
Malchevskii_Balashov_Monetec.zip
[root@BaseALT-Papillon ~]# mount -o loop Downloads/manjaro-kde-26.0.4-minimal-260327-linux618.iso /mnt/iso/
mount: /mnt/iso: WARNING: source write-protected, mounted read-only.
[root@BaseALT-Papillon ~]# tree /mnt/iso/
/mnt/iso/
├── boot
│   ├── amd_ucode.img
│   ├── amd_ucode.LICENSE
│   ├── grub
│   │   ├── defaults.cfg
…
│   └── vmlinuz-x86_64
├── boot.catalog
├── efi
│   └── boot
│       └── bootx64.efi
├── efi.img
└── manjaro
    └── x86_64
        ├── desktopfs.md5
        ├── desktopfs.sfs
        ├── livefs.md5
        ├── livefs.sfs
        ├── mhwdfs.md5
        ├── mhwdfs.sfs
        ├── rootfs.md5
        └── rootfs.sfs

14 directories, 853 files
[root@BaseALT-Papillon ~]#

Кроме обычных ФС можно также создавать временные ФС в оперативной памяти, как это делает система для, например, /run. Зрительно её подключение заметить невозможно, однако файлы в такой ФС будут храниться на выделенном месте в опреативной памяти, а не выгружаться на основной носитель.

[root@BaseALT-Papillon ~]# mkdir /mnt/ramdisk
[root@BaseALT-Papillon ~]# mount -t tmpfs -o size=100M tmpfs /mnt/ramdisk
[root@BaseALT-Papillon ~]# tree /mnt/ramdisk/
/mnt/ramdisk/

0 directories, 0 files
[root@BaseALT-Papillon ~]#

Последним важным видом монтирования является монтирование сетевых файловых систем (NFS). Для монтирования NFS необходимо настроить сервер-источник на раздачу соответствующего поддерева, а на приёмнике указать правило монтирования сетевой ФС.