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

З Wikipedia:

Файлова система - спосіб організації даних, який використовується операційною системою для збереження інформації у вигляді файлів на носіях інформації. Також цим поняттям позначають сукупність файлів та директорій, які розміщуються на логічному або фізичному пристрої. Створення файлової системи відбувається в процесі форматування.

Типи файлових систем

Дивіться filesystems(5) для загального огляду, і порівняння файлових систем (англійська) для детального порівняння функцій. Файлові системи, що підтримуються ядром, перелічені в /proc/filesystems.

Файлові системи In-tree та FUSE
Файлова система Команда створення Утиліти користувацького простору Archiso Документація до ядра Нотатки
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.
mkexfatfs(8) exfat-utils Не застосовується (На основі FUSE)
F2FS Так f2fs.html Пристрої на основі Flash
ext3 e2fsprogs Так ext3.html
ext4 e2fsprogs Так ext4.html
HFS mkfs.hfsplus(8) hfs.html Файлова система класичного Mac OS
HFS+ mkfs.hfsplus(8) hfsplus.html Файлова система macOS (8–10.12)
JFS Так jfs.html
NILFS2 Так nilfs2.html RAW flash пристрої, наприклад SD card
NTFS ntfs.html Файлова система Windows NT. Вбудований драйвер ядра має дуже обмежену підтримку запису. офіційно підтримувані ядра не побудовані з тому цей драйвер недоступний.
Так Не застосовується (На основі FUSE) Драйвер FUSE з розширеними можливостями.
ReiserFS mkfs.reiserfs(8) Так
UDF mkfs.udf(8) Так udf.html
XFS Так

xfs.html
xfs-delayed-logging-design.html
xfs-self-describing-metadata.html

Out-of-tree файлові системи
Файлова система Команда створення Патчсет ядра Утиліти користувацького простору Нотатки
APFS Файлова система macOS (10.13 і вище). Лише для читання, експериментальний.
Bcachefs bcachefs-tools-gitAUR
NTFS3 питання щодо Paragon NTFS3
Reiser4
ZFS zfs-linuxAUR, OpenZFS порт

Журналювання

Усі вищезазначені файлові системи, за винятком exFAT, ext2, FAT16/32, Reiser4 (необов’язково), Btrfs та ZFS, використовують журналювання (англійська). Ведення журналу забезпечує стійкість до несправностей, реєструючи зміни, перш ніж вони будуть передані у файлову систему. У випадку збою системи або збою живлення такі файлові системи швидше повертаються в Інтернет і рідше пошкоджуються. Ведення журналу відбувається у виділеній області файлової системи. Не всі методи ведення журналу однакові. Ext3 та ext4 пропонують ведення журналу даних у режимі даних, який реєструє як дані, так і метадані, а також можливість реєструвати лише зміни метаданих. Ведення журналу в режимі даних передбачає обмеження швидкості і за замовчуванням не вмикається. У тому ж ключі Reiser4 пропонує так звані "моделі транзакцій" які не тільки змінюють функції, які ця файлова система надає, але і в режимі ведення журналу. Вона використовує різні техніки ведення журналу: спеціальна модель, яка називається мандрівними журналами, що позбавляє від необхідності писати на диск двічі, запис будь-де - підхід копіювання водночас зі записом (переважно еквівалентний за замовчуванням btrfs, але з принципово іншим дизайном "дерева") та комбінований підхід, що називається гібридним, який евристично чергується між двома попередніми.

Інші файлові системи забезпечують ведення журналу в упорядкованому режимі, який реєструє лише метадані. Хоча всі журнали повертають файлову систему до дійсного стану після збою, журнал у режимі даних пропонує найбільший захист від втрати даних. Однак у продуктивності системи є один мінус, оскільки ведення журналу в режимі даних виконує дві операції запису: спочатку в журнал, а потім на диск (чого Reiser4 уникає за допомогою функції "мандрівних журналів"). При виборі типу файлової системи слід враховувати компроміс між швидкістю системи та безпекою даних. Reiser4 є єдиною файловою системою, яка за задумом працює з повною атомністю, а також забезпечує контрольні суми як для метаданих, так і для вбудованих даних (операції виконуються повністю, або вони повністю не пошкоджують або не руйнують дані внаслідок половинних операцій) і тому набагато менш схильний до втрати даних, ніж інші файлові системи, такі як Btrfs.

Файлові системи, засновані на копіюванні водночас зі записом (також відомі як запис будь-де), такі як Reiser4, Btrfs та ZFS, не мають потреби використовувати традиційний журнал для захисту метаданих, оскільки вони ніколи не оновлюються на місці. Незважаючи на те, що Btrfs все ще має журналоподібне дерево журналів, воно використовується лише для прискорення fdatasync/fsync.

Файлові системи засновані на FUSE

Дивіться FUSE.

Файлові системи, які не зберігають дані самі

  • mhddfs Файлова система FUSE для декількома дисків, об’єднана файлова система на основі FUSE.
http://mhddfs.uvw.ru || mhddfsAUR

Файлові системи лише для читання

Розподілені файлові системи

  • MooseFS MooseFS - це відмовостійка, високодоступна та високопродуктивна масштабована мережева розподілена файлова система.
https://moosefs.com || moosefs
  • OrangeFS OrangeFS - це масштабована мережева файлова система, розроблена для паралельного прозорого доступу до мультисерверного дискового сховища. Оптимізована підтримка MPI-IO для паралельних та розподілених додатків. Спрощує використання паралельного сховища не тільки для клієнтів Linux, але і Windows, Hadoop та WebDAV. Сумісний з POSIX. Є частиною ядра Linux з версії 4.6.
https://www.orangefs.org/ || not packaged? search in AUR

Файлові системи на спільному диску

Ідентифікація існуючих файлових систем

Щоб ідентифікувати існуючі файлові системи, ви можете використати команду lsblk:

Існуюча файлова система, якщо є, буде відображена в колонці . Якщо файлова система змонтована на жорсткий диск, вона буде відображена в колонці .

Створення файлової системи

Файлові системи зазвичай створюються на розділі, всередині логічних контейнерів, таких як LVM, RAID та dm-crypt, або на звичайному файлі (див. loop device). У цьому розділі описано випадок розділів.

Примітка: Файлові системи можна записати безпосередньо на диск, відомий як "superfloppy" або диск без розділів. Певні обмеження пов'язані з цим методом, особливо якщо ви завантажуєтесь з такого диска. Дивіться на приклад диск.
Попередження:
  • Після створення нової файлової системи, дані, які раніше зберігались у цьому розділі, навряд чи можуть бути відновлені. Створіть резервну копію будь-яких даних, які ви хочете зберегти.
  • Призначення даного розділу може обмежити вибір файлової системи. Наприклад, розділ системи EFI повинен містити файлову систему FAT32, а файлова система, що містить каталог boot, повинна підтримуватися завантажувачем.

Перш ніж продовжувати, визначте пристрій, де буде створена файлова система, і чи вона змонтована. Наприклад:

Перед продовженням змонтовані файлові системи треба демонтувати. У наведеному вище прикладі існуюча файлова система знаходиться на і монтується на . Її можна демонтувати за допомогою:

# umount /dev/sda2

Щоб знайти щойно змонтовані файлові системи, дивіться #Перелік змонтованих файлових систем.

Щоб створити нову файлову систему, використовуйте . Дивіться #Типи файлових систем для точного типу, а також утиліти користувацького простору, які ви можете встановити для певної файлової системи.

Наприклад, для створення нової файлової системи типу ext4 (загальної для розділів даних Linux) на , введіть:

# mkfs.ext4 /dev/sda1
  • Файлові системи можуть бути змінені в розмірі після створення, з певними обмеженнями. Наприклад, розмір файлової системи XFS можна збільшити, але його не можна зменшити. Детальніше дивіться У розділі Можливості змінення розміру та відповідної документації щодо файлової системи для деталей.}}

Нова файлова система може бути змонтована на будь-яку директорію.

Монтування файлової системи

Щоб вручну змонтувати файлову систему на пристрої (наприклад розділу диска), ви можете використати команду . Наступна команда змонтує на :

# mount /dev/sda1 /mnt

Це прикріплює файлову систему на у директорії , тим самим робить усе на файловій системі видним. Будь-які дані, які були в до цієї команди були невидимі. fstab має інформацію щодо того, як автоматично монтувати пристрої якщо вони є. Дивіться fstab для отримання додаткової інформації щодо модифікування цієї поведінки.

Якщо пристрій є в і також визначена директорія або інший пристрій, ця інформація буде використана для монтування. Наприклад, якщо має строку яка вказує що має бути змонтованим на , воно автоматично змонтує цей пристрій на цю директорію.

mount має декілька опцій, багато з яких залежать від визначеної файлової системи.

Опції можуть бути змінитися:

  • використання аргументів в командному рядку з mount
  • редагування fstab
  • creating udev rules
  • створення правил udev
  • самостійна компіляція ядра
  • або використання специфічних для файлової системи скриптів (розташовані в ).

Для отримання додаткової інформації, дивіться пов’язані статті та статтю конкретної файлової системи.

Порада: Файлові системи також можна монтувати за допомогою systemd-mount замість mount. Якщо точка монтування не вказана, файлова система буде змонтована за адресою /run/media/system/ідентифікатор_пристрою/. Це дозволяє легко змонтувати файлову систему, не вирішуючи, де її монтувати. Див. systemd-mount(1), щоб дізнатись про використання та докладнішу інформацію.

Перелік змонтованих файлових систем

Для переліку всіх змонтованих файлових систем, використовуйте :

$ findmnt

findmnt бере безліч аргументів, які можуть фільтрувати вихідні дані та показувати додаткову інформацію. Наприклад, findmnt може взяти пристрій або точку монтування як аргумент, щоб показати лише інформацію про те, що вказано:

$ findmnt /dev/sda1

findmnt збирає інформацію з , та .

Демонтування файлової системи

Для демонтажу файлової системи використовуйте . Можна вказати пристрій, що містить файлову систему (наприклад, ), або точку монтування (наприклад, ):

# umount /dev/sda1

або

# umount /mnt

Дивіться також

gollark: I mean, those bored programmers can just use a general purpose language.
gollark: ++fortune
gollark: It's an inconsistently pedantic joke.
gollark: About 30 of them, at last count?
gollark: That is a really niche usecase for a language.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.