В этой лекции рассматриваются основные особенности файловой системы 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 необходимо настроить сервер-источник на раздачу соответствующего поддерева, а на приёмнике указать правило монтирования сетевой ФС.