File systems (Українська)

З
Wikipedia
:
Файлова система - спосіб організації даних, який використовується операційною системою для збереження інформації у вигляді файлів на носіях інформації. Також цим поняттям позначають сукупність файлів та директорій, які розміщуються на логічному або фізичному пристрої. Створення файлової системи відбувається в процесі форматування.
Типи файлових систем
Дивіться
filesystems(5)
для загального огляду, і
порівняння файлових систем
(англійська) для детального порівняння функцій. Файлові системи, що підтримуються ядром, перелічені в
/proc/filesystems
.
Файлові системи In-tree та FUSE
Файлова система
Команда створення
Утиліти користувацького простору
Archiso
[1]
Документація до ядра
[2]
Нотатки
Btrfs
mkfs.btrfs(8)
btrfs-progs
Так
btrfs.html
Статус стабільності
VFAT
mkfs.fat(8)
dosfstools
Так
vfat.html
файлова система
Windows 9x
exFAT
mkfs.exfat(8)
exfatprogs
Так
Нативна файлова система в Linux 5.4.
[3]
mkexfatfs(8)
exfat-utils
Ні
Не застосовується (На основі FUSE)
F2FS
mkfs.f2fs(8)
f2fs-tools
Так
f2fs.html
Пристрої на основі Flash
ext3
mke2fs(8)
e2fsprogs
Так
ext3.html
ext4
mke2fs(8)
e2fsprogs
Так
ext4.html
HFS
mkfs.hfsplus(8)
hfsprogs
AUR
Ні
hfs.html
Файлова система
класичного Mac OS
HFS+
mkfs.hfsplus(8)
hfsprogs
AUR
Ні
hfsplus.html
Файлова система
macOS
(8–10.12)
JFS
mkfs.jfs(8)
jfsutils
Так
jfs.html
NILFS2
mkfs.nilfs2(8)
nilfs-utils
Так
nilfs2.html
RAW flash пристрої, наприклад SD card
NTFS
Ні
ntfs.html
[
мертве посилання
2024-07-30 ⓘ]
Файлова система
Windows NT
. Вбудований драйвер ядра має дуже обмежену підтримку запису.
офіційно підтримувані ядра
не побудовані з
CONFIG_NTFS_FS
тому цей драйвер недоступний.
mkfs.ntfs(8)
ntfs-3g
Так
Не застосовується (На основі FUSE)
Драйвер FUSE з розширеними можливостями.
ReiserFS
mkfs.reiserfs(8)
[
мертве посилання
2025-05-13]
reiserfsprogs
AUR
Так
UDF
mkfs.udf(8)
udftools
Так
udf.html
XFS
mkfs.xfs(8)
xfsprogs
Так
xfs.html
xfs-delayed-logging-design.html
[
мертве посилання
2024-03-03 ⓘ]
xfs-self-describing-metadata.html
[
мертве посилання
2024-03-03 ⓘ]
Out-of-tree файлові системи
Файлова система
Команда створення
Патчсет ядра
Утиліти користувацького простору
Нотатки
APFS
mkapfs(8)
linux-apfs-rw-dkms-git
AUR
apfsprogs-git
AUR
Файлова система
macOS
(10.13 і вище). Лише для читання, експериментальний.
Bcachefs
bcachefs(8)
linux-bcachefs-git
AUR
bcachefs-tools-git
AUR
NTFS3
ntfs3-dkms
AUR
[
пакет відсутній
: package not found]
питання щодо Paragon NTFS3
Reiser4
mkfs.reiser4(8)
reiser4progs
AUR
ZFS
zfs-linux
AUR
,
zfs-dkms
AUR
zfs-utils
AUR
OpenZFS
порт
Журналювання
Усі вищезазначені файлові системи, за винятком exFAT, ext2, FAT16/32, Reiser4 (необов’язково), Btrfs та ZFS, використовують
журналювання
(англійська). Ведення журналу забезпечує стійкість до несправностей, реєструючи зміни, перш ніж вони будуть передані у файлову систему. У випадку збою системи або збою живлення такі файлові системи швидше повертаються в Інтернет і рідше пошкоджуються. Ведення журналу відбувається у виділеній області файлової системи.
Не всі методи ведення журналу однакові. Ext3 та ext4 пропонують ведення журналу даних у режимі даних, який реєструє як дані, так і метадані, а також можливість реєструвати лише зміни метаданих. Ведення журналу в режимі даних передбачає обмеження швидкості і за замовчуванням не вмикається. У тому ж ключі Reiser4 пропонує так звані
"моделі транзакцій"
які не тільки змінюють функції, які ця файлова система надає, але і в режимі ведення журналу. Вона використовує різні техніки ведення журналу: спеціальна модель, яка називається
мандрівними журналами
, що позбавляє від необхідності писати на диск двічі,
запис будь-де
- підхід копіювання водночас зі записом (переважно еквівалентний за замовчуванням btrfs, але з принципово іншим дизайном "дерева") та комбінований підхід, що називається
гібридним
, який евристично чергується між двома попередніми.
Примітка
Reiser4 забезпечує майже еквівалент поведінки журналу ext4 за замовчуванням (лише метадані) із використанням плагіна
node41
, який також містить метадані та вбудовані контрольні суми, за бажанням поєднуючись із поведінкою мандрівних журналів, яку ця файлова система забезпечує залежно від якої моделі транзакції було обрано під час монтування.
Інші файлові системи забезпечують ведення журналу в упорядкованому режимі, який реєструє лише метадані. Хоча всі журнали повертають файлову систему до дійсного стану після збою, журнал у режимі даних пропонує найбільший захист від втрати даних. Однак у продуктивності системи є один мінус, оскільки ведення журналу в режимі даних виконує дві операції запису: спочатку в журнал, а потім на диск (чого Reiser4 уникає за допомогою функції "мандрівних журналів"). При виборі типу файлової системи слід враховувати компроміс між швидкістю системи та безпекою даних. Reiser4 є єдиною файловою системою, яка за задумом працює з повною атомністю, а також забезпечує контрольні суми як для метаданих, так і для вбудованих даних (операції виконуються повністю, або вони повністю не пошкоджують або не руйнують дані внаслідок половинних операцій) і тому набагато менш схильний до втрати даних, ніж інші файлові системи, такі як
Btrfs
.
Файлові системи, засновані на копіюванні водночас зі записом (також відомі як запис будь-де), такі як Reiser4, Btrfs та ZFS, не мають потреби використовувати традиційний журнал для захисту метаданих, оскільки вони ніколи не оновлюються на місці. Незважаючи на те, що Btrfs все ще має журналоподібне дерево журналів, воно використовується лише для прискорення fdatasync/fsync.
Файлові системи засновані на FUSE
Дивіться
FUSE
.
Файлові системи, які не зберігають дані самі
eCryptfs
— The Enterprise Cryptographic Filesystem - це пакет програмного забезпечення для шифрування дисків для Linux. Він реалізований як рівень шифрування на рівні файлової системи, сумісний з POSIX, маючи на меті запропонувати функціональність, подібну до функцій GnuPG на рівні операційної системи.
https://ecryptfs.org
||
ecryptfs-utils
mergerfs
— файлова система об'єднання на основі FUSE.
https://github.com/trapexit/mergerfs
||
mergerfs
AUR
mhddfs
— Файлова система FUSE для декількома дисків, об’єднана файлова система на основі FUSE.
http://mhddfs.uvw.ru
||
mhddfs
AUR
overlayfs
— OverlayFS - це служба файлової системи для Linux, яка реалізує об'єднання для інших файлових систем.
https://docs.kernel.org/filesystems/overlayfs.html
||
linux
Unionfs
— Unionfs - це служба файлової системи для Linux, FreeBSD та NetBSD, яка реалізує з'єднання для інших файлових систем.
https://unionfs.filesystems.org/
||
not packaged?
search in AUR
unionfs-fuse
— Реалізація Unionfs в просторі користувача.
https://github.com/rpodgorny/unionfs-fuse
||
unionfs-fuse
AUR
Файлові системи лише для читання
EROFS
— Enhanced Read-Only File System - це легка файлова система, призначена лише для читання.
https://docs.kernel.org/filesystems/erofs.html
||
erofs-utils
SquashFS
— SquashFS - це стисла файлова система лише для читання. SquashFS стискає файли, вузли та каталоги й підтримує розміри блоків до 1 МБ для більшої стиснення.
https://github.com/plougher/squashfs-tools
||
squashfs-tools
Розподілені файлові системи
Ceph
— Уніфікована розподілена система зберігання, розроблена для чудової продуктивності, надійності та масштабованості.
https://ceph.com/
||
ceph
AUR
Glusterfs
— Кластерна файлова система, здатна масштабувати до кількох петабайт.
https://www.gluster.org/
||
glusterfs
IPFS
—  Гіпермедіа-протокол однорангової мережі, робить Інтернет швидшим, безпечнішим та відкритішим. Цілі IPFS замінюють HTTP та створюють кращу мережу для всіх нас. Використовує блоки для зберігання частин файлу, кожен вузол мережі зберігає лише той вміст, який його цікавить, забезпечує дедуплікацію, розподіл, масштабовану систему, обмежену лише користувачами. (в даний час в альфа-версії)
https://ipfs.io/
||
kubo
MooseFS
— MooseFS - це відмовостійка, високодоступна та високопродуктивна масштабована мережева розподілена файлова система.
https://moosefs.com
||
moosefs
OpenAFS
— Реалізація розподіленої файлової системи з відкритим кодом AFS.
https://www.openafs.org
||
openafs
AUR
OrangeFS
— OrangeFS - це масштабована мережева файлова система, розроблена для паралельного прозорого доступу до мультисерверного дискового сховища. Оптимізована підтримка MPI-IO для паралельних та розподілених додатків. Спрощує використання паралельного сховища не тільки для клієнтів Linux, але і Windows, Hadoop та WebDAV. Сумісний з POSIX. Є частиною ядра Linux з версії 4.6.
https://www.orangefs.org/
||
not packaged?
search in AUR
Sheepdog
— Розподілена система зберігання об'єктів для служб обсягу та контейнерів та інтелектуально управляє дисками та вузлами.
https://sheepdog.github.io/sheepdog/
||
sheepdog
AUR
Tahoe-LAFS
— Файлова система Tahoe Least-Authority - це безкоштовна та відкрита, безпечна, децентралізована, відмовостійка, однорангова розподілена база даних та розподілена файлова система.
https://tahoe-lafs.org/
||
tahoe-lafs
AUR
[
пакет відсутній
: package not found]
Файлові системи на спільному диску
GFS2
— GFS2 дозволяє всім членам кластера мати прямий одночасний доступ до одного спільного сховища блоків.
https://pagure.io/gfs2-utils
||
gfs2-utils
AUR
OCFS2
— Кластерна файлова система Oracle 2 (The Oracle Cluster File System) - це спільна дискова файлова система, розроблена корпорацією Oracle і випущена під GNU General Public License.
https://oss.oracle.com/projects/ocfs2/
||
ocfs2-tools
AUR
VMware VMFS
— VMware VMFS (файлова система віртуальної машини) використовується флагманським пакетом віртуалізації серверів компанії vSphere.
https://www.vmware.com/products/vi/esx/vmfs.html
[
мертве посилання
2024-07-30 ⓘ]
||
vmfs-tools
AUR
Ідентифікація існуючих файлових систем
Щоб ідентифікувати існуючі файлові системи, ви можете використати команду
lsblk
:
$ lsblk -f
NAME   FSTYPE LABEL     UUID                                 MOUNTPOINT
sdb                                                          
└─sdb1 vfat   Transcend 4A3C-A9E9
Існуюча файлова система, якщо є, буде відображена в колонці
FSTYPE
. Якщо файлова система
змонтована
на жорсткий диск, вона буде відображена в колонці
MOUNTPOINT
.
Створення файлової системи
Файлові системи зазвичай створюються на
розділі
, всередині логічних контейнерів, таких як
LVM
,
RAID
та
dm-crypt
, або на звичайному файлі (див.
loop device
). У цьому розділі описано випадок розділів.
Примітка
Файлові системи можна записати безпосередньо на диск, відомий як "superfloppy" або
диск без розділів
. Певні обмеження пов'язані з цим методом, особливо якщо ви
завантажуєтесь
з такого диска. Дивіться на приклад
диск
.
Попередження
Після створення нової файлової системи, дані, які раніше зберігались у цьому розділі, навряд чи можуть бути відновлені.
Створіть резервну копію будь-яких даних, які ви хочете зберегти
.
Призначення даного розділу може обмежити вибір файлової системи. Наприклад,
розділ системи EFI
повинен містити файлову систему
FAT32
, а файлова система, що містить каталог
boot
, повинна підтримуватися
завантажувачем
.
Перш ніж продовжувати,
визначте
пристрій, де буде створена файлова система, і чи вона змонтована. Наприклад:
$ lsblk -f
NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
sda
├─sda1                      C4DA-2C4D                            
├─sda2 ext4                 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt
└─sda3                      56adc99b-a61e-46af-aab7-a6d07e504652
Перед продовженням змонтовані файлові системи
треба
демонтувати
. У наведеному вище прикладі існуюча файлова система знаходиться на
/dev/sda2
і монтується на
/mnt
. Її можна демонтувати за допомогою:
# umount /dev/sda2
Щоб знайти щойно змонтовані файлові системи, дивіться
#Перелік змонтованих файлових систем
.
Щоб створити нову файлову систему, використовуйте
mkfs(8)
. Дивіться
#Типи файлових систем
для точного типу, а також утиліти користувацького простору, які ви можете встановити для певної файлової системи.
Наприклад, для створення нової файлової системи типу
ext4
(загальної для розділів даних Linux) на
/dev/sda1
, введіть:
# mkfs.ext4 /dev/sda1
Порада
Використовуйте аргумент
-L
для
mkfs.ext4
, щоб вказати мітку файлової системи.
e2label
можна використовувати для зміни мітки в існуючій файловій системі.
File systems may be
resized
after creation, with certain limitations. For example, an
XFS
filesystem's size can be increased, but it cannot reduced. See
Wikipedia:Comparison of file systems#Resize capabilities
and the respective file system documentation for details.
Файлові системи можуть бути змінені в розмірі після створення, з певними обмеженнями. Наприклад, розмір файлової системи
XFS
можна збільшити, але його не можна зменшити. Детальніше дивіться У розділі
Можливості змінення розміру
та відповідної документації щодо файлової системи для деталей.}}
Нова файлова система може бути змонтована на будь-яку директорію.
Монтування файлової системи
Щоб вручну змонтувати файлову систему на пристрої (наприклад розділу диска), ви можете використати команду
mount(8)
. Наступна команда змонтує
/dev/sda1
на
/mnt
:
# mount /dev/sda1 /mnt
Це прикріплює файлову систему на
/dev/sda1
у директорії
/mnt
, тим самим робить усе на файловій системі видним. Будь-які дані, які були в
/mnt
до цієї команди були невидимі.
fstab
має інформацію щодо того, як автоматично монтувати пристрої якщо вони є. Дивіться
fstab
для отримання додаткової інформації щодо модифікування цієї поведінки.
Якщо пристрій є в
/etc/fstab
і також визначена директорія або інший пристрій, ця інформація буде використана для монтування. Наприклад, якщо
/etc/fstab
має строку яка вказує що
/dev/sda1
має бути змонтованим на
/mnt
, воно автоматично змонтує цей пристрій на цю директорію.
mount
має декілька опцій, багато з яких залежать від визначеної файлової системи.
Опції можуть бути змінитися:
використання аргументів в командному рядку з
mount
редагування
fstab
creating
udev
rules
створення правил
udev
самостійна компіляція ядра
або використання специфічних для файлової системи скриптів (розташовані в
/usr/bin/mount.*
).
Для отримання додаткової інформації, дивіться пов’язані статті та статтю конкретної файлової системи.
Порада
Файлові системи також можна монтувати за допомогою
systemd-mount
замість
mount
. Якщо точка монтування не вказана, файлова система буде змонтована за адресою
/run/media/system/
ідентифікатор_пристрою
/
. Це дозволяє легко змонтувати файлову систему, не вирішуючи, де її монтувати. Див.
systemd-mount(1)
, щоб дізнатись про використання та докладнішу інформацію.
Перелік змонтованих файлових систем
Для переліку всіх змонтованих файлових систем, використовуйте
findmnt(8)
:
$ findmnt
findmnt
бере безліч аргументів, які можуть фільтрувати вихідні дані та показувати додаткову інформацію. Наприклад,
findmnt
може взяти пристрій або точку монтування як аргумент, щоб показати лише інформацію про те, що вказано:
$ findmnt /dev/sda1
findmnt
збирає інформацію з
/etc/fstab
,
/etc/mtab
та
/proc/self/mounts
.
Демонтування файлової системи
Для демонтажу файлової системи використовуйте
umount(8)
. Можна вказати пристрій, що містить файлову систему (наприклад,
/dev/sda1
), або точку монтування (наприклад,
/mnt
):
# umount /dev/sda1
або
# umount /mnt
Дивіться також
filesystems(5)
systemd-mount(1)
Документація файлових систем, що підтримуються Linux
Wikipedia:uk:Файлова система
Wikipedia:uk:mount