Файловая система Линукс и ее целостность

Содержание
  1. 1. Что такое файловая система простыми словами
  2. 2. Целостность файловой системы — что это такое
  3. Основные компоненты файловой системы
  4. Монтирование и демонтирование файловой системы
  5. Устройство файловых систем ОС Linux
  6. 6.2. Часто используемые файловые системы
  7. 3. Список команд для работы с файлами в Linux
  8. Семейство Reiser
  9. 6.3. Создание файловой системы в разделе
  10. Виртуальные файловые системы в ОС Linux
  11. Специальные файловые системы в ОС Linux
  12. Эволюция файловой системы ext в Linux
  13. Файловая система Minix
  14. Файловая система ext
  15. Файловая система ext2
  16. Файловая система ext3
  17. 4. Типы файловых систем Linux — описание и обзор
  18. Как узнать, какая у меня файловая система?
  19. Способ №1: Использование команды df
  20. Способ №2: Использование команды fsck
  21. Способ №3: Использование команды lsblk
  22. Права Линукс chmod
  23. Числовой:
  24. Буквенный:
  25. Найти все папки и назначить права по умолчанию:
  26. Найти все файлы и назначить права по умолчанию:
  27. 6.5. Проверка файловой системы

1. Что такое файловая система простыми словами

Термин «файловая система» можно понимать двояко. С одной стороны, это архитектура хранения битов на жестком диске, с другой — организация каталогов в соответствии с идеологией Unix. В этой статье мы обсудим первую сторону более подробно.

Файловая система (сокращенно FS, англ. «Файловая система») — это архитектура для хранения данных в системе, хранения данных в ОЗУ и доступа к конфигурации ядра. FS устанавливает физическую и логическую структуру файлов, правила их создания и управления.

В физическом смысле файловая система Linux / UNIX — это пространство раздела диска, разделенное на блоки фиксированного размера. Их размер кратен размеру сектора: 1024, 2048, 4096 или 8120 байт. Размер блока известен заранее.

Как происходит обмен данными между ядром, приложениями и жестким диском? Для этого есть 2 технологии:

  1. Виртуальная файловая система (VFS). Интерфейс между ядром и файловой системой (ext2, ext4 и т.д.). Это позволяет ядру и приложениям взаимодействовать без особенностей конкретного типа ФС. VFS иногда называют «изменением виртуальной файловой системы».
  2. Драйвер файловой системы. Специальные программы, устанавливающие «мост» (интерфейс) взаимодействия между оборудованием и программой.

Файловые системы, поддерживаемые ядром, перечислены в файле / proc / filesystems:

andrey @ andrey-VirtualBox: ~ $ cat / proc / filesystems nodev sysfs nodev rootfs nodev ramfs nodev bdev nodev proc nodev cpuset nodev cgroup nodev cgroup2 nodev tmpfs nodev nodev devtmpfs nodev debugfs ex nodev tracefs ex nodev securityfs nodev nodef squack nodev mqueue nodev autofs Иерархия файловой системы

Как мы уже говорили выше, есть вторая сторона FS, которая заключается в ее определении с точки зрения организации расположения файлов в Linux. В этом случае мы можем сказать, что: файловая система — это иерархическая структура, которая начинается с корневого каталога «/» (корневой каталог) и разветвляется дальше в соответствии с функционированием системы.

2. Целостность файловой системы — что это такое

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

Проверить целостность файловой системы в Linux можно с помощью команды fsck (в Windows эта программа называется scandisk)

В начале ФС есть некоторая чистка. Если система используется, этот бит устанавливается в 1. Когда работа завершена, снова 0.

Основные компоненты файловой системы

Вы можете видеть, что FS — это своего рода универсальный «узел», через который программы, а точнее, клиенты получают доступ к нужным им серверам и драйверам. Это взаимодействие обеспечивается несколькими компонентами, составляющими одну и ту же ФС:

  1. API — это набор программ, организованных в виде библиотеки (или более систематизированных библиотек), которые предоставляют системные вызовы для управления системными объектами и доступны для использования программистами.
  2. Пространство имен — это спецификация для организации единой системы именования и иерархии объектов.
  3. Безопасность — это схема организации защиты системных объектов и их общего доступа (прав доступа).
  4. Реализация: набор прикладных программ, которые предоставляют набор логических моделей дисковой подсистемы.

Современные ядра имеют абстрактный интерфейс, поддерживающий работу с различными файловыми системами. Для Linux наиболее распространены Ext3, Ext4. Эти файловые системы журналируются и поэтому необходимы для многих дистрибутивов.

Монтирование и демонтирование файловой системы

Иерархия каталогов и файлов или дерево файлов — это дерево, состоящее из составных частей, которые также могут быть деревьями. На рисунке представлена ​​структура такой системы

В этом контексте такие части обычно называют «файловыми системами», содержащими корневой каталог и список файлов и подкаталогов. Это показывает, насколько обширна концепция FS, т.е это также может быть дерево каталогов с подкаталогами.
ФС прикрепляется к дереву с помощью команды mount. Например, команда:

$ sudo mount / dev / sda1 / главная

смонтирует домашний каталог пользователя в / dev / sda1. Далее вы можете просмотреть его содержимое с помощью команды:

ls / дом

FS может быть смонтирован автоматически даже при запуске системы. Это возможно благодаря инструкциям по установке в файле / etc / fstab.
Системы размонтируются с помощью команды umount. Следует учитывать, что если смонтированная система занята каким-то процессом, размонтировать ее не получится.
Чтобы узнать, что делает файловая система, вам нужно использовать команду fuser, например:

$ fuser -сv / usr Это отобразит следующую таблицу: КОМАНДА ДОСТУПА ПО PID ПОЛЬЗОВАТЕЛЯ / usr root 444 .. m atd root 499 .. m sshd root 520 .. m lpd

Литеральные значения в столбце Access объяснены в следующей таблице:
Коды Значение
f, o — файл занят процессом чтения или записи
c — система содержит текущий каталог
e, t — исполняемая программа запущена
r — Корневой каталог
m, s — отображаемый или общий (общий.

Устройство файловых систем ОС Linux

И сам по себе список индексных дескрипторов, соответствующих как существующим файлам, так и независимым блокам раздела диска, определяет границы файловой системы, то есть количество файлов, которые можно создать в ней. В этом разделе будут обсуждаться темы, абсолютно общие для всех Linux. Все файлы в Linux физически состоят из двух частей, фактически расположенных в разных блоках диска с атрибутами, но всегда в одном и том же разделе диска, первичном или логическом. Первая часть файла — это его так называемые метаданные, которые содержат дескриптор файла (это просто чудесное число), информацию о его атрибутах (владение, права доступа, время модификации и т.д.), А также информация о том, в каких блоках раздела атрибутов (которые называются блоками данных) физиологически находят содержимое файла — те же последовательности b, которые образуют текст ASCII, доступный пользователю, или исполняемый программный модуль. Метаданные каждого файла записываются в специальную область диска, называемую суперблоком, где находится так называемый inode (от информационных узлов — информационных узлов). Каждый существующий файл имеет свой собственный индексный дескриптор, и именно он однозначно идентифицируется дескриптором файла.

Итак, суть процесса создания файловой системы на разделе диска (или, в понимании DOS / Windows, его форматирования) заключается в создании на нем суперблока (или, в некоторых файловых системах, множества его копий), список inodes и выделения дискового пространства для данных блока (а также загрузочного блока, который будет обсуждаться ниже), а структура этих областей атрибутов определяет различия между файловыми системами разных типов. В результате на новом разделе формируется единый файл — открывается корневой каталог (для этой файловой системы) (в некоторых случаях также создается каталог / lost + found, который нужен для хранения поврежденных файлов).

Ответ прост: в Linux имя — это атрибут не файла, а файловой системы (в 5-м логическом смысле термина). Поэтому метафора каталога как папки с документами, которая пришла из MacOS и активно используется в Windows, лишь затемняет суть дела в Linux: здесь это скорее ящик каталога в библиотеке. Это проясняет вопрос, почему такое очевидно неотъемлемое свойство файла, такое как его имя, не встречается ни в его метаданных, ни, тем более, среди них. Это просто списки файловых дескрипторов идентификаторов и определенных ими имен файлов. А для хранения имен файлов вам понадобится специальный тип файла: каталог (в Linux есть другие типы файлов, например, файлы устройств, упомянутые рекой).

Несмотря на такой простой механизм, роль каталогов в файловой системе Linux непросто переоценить: имена файлов, через которые они входят в файловую систему (и через которые пользователь получает доступ к их содержимому), появляются только как часть каталога которому назначен файл, и где-либо еще в системе. Это единственный способ удалить файл с помощью команды rm или файлового менеджера, такого как Midnoght Commander. Затем удаление имени файла (или подкаталога) из списка, который является данными его родительского каталога (который, конечно, также имеет свой индексный дескриптор и файловый дескриптор, загруженный в каталог, расположенный на один уровень выше в системе иерархии файлов, и т.д.) эквивалентно тому, что метаданные файла становятся недоступными, а блоки данных, назначенные его индексному дескриптору, помечаются как независимые.

Также в индексном дескрипторе его корневого каталога так называемый чистый кусок. А пока давайте посмотрим на характеристики файловых систем, используемых в Linux. Обратный процесс — размонтирование, в результате которого смонтированная файловая система отключается от точки монтирования реестра. Из того, что было сказано, ясно, что для данного объекта все его содержимое (суперблок, список inode, их блоки) должно быть включено в любой из существующих каталогов, называемых точкой монтирования. В этом и состоит суть процесса редактирования. Однако монтированию и размонтированию файловых систем будет посвящена отдельная статья. В результате для смонтированной файловой системы ее большой (до сих пор безымянный) корневой каталог получает имя каталога — точки монтирования, в содержимом которой теперь перечислены имена ее файлов и подкаталогов. Однако сейчас нас интересует прямо противоположное: сделать файловую систему доступной.

6.2. Часто используемые файловые системы

6.2.1. Файловые системы ext2 и ext3

В прошлом наиболее часто используемой файловой системой в Linux была файловая система ext2 («вторая расширенная файловая система»). Недостатком этой файловой системы было то, что на ее проверку уходило много времени.

Позже на большинстве Linux-машин файловая система ext2 была заменена файловой системой ext3. По большей части эти файловые системы идентичны, за исключением функции журналирования, которая присутствует только в файловой системе ext3.

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

6.2.2. Создание файловых систем ext2 и ext3

вы можете создать эти файловые системы с помощью утилит / sbin / mkfs и / sbin / mke2fs. Используйте команду mke2fs -j для создания файловой системы ext3.

Вы также можете преобразовать файловую систему ext2 в ext3 с помощью команды tune2fs -j. При этом вы можете смонтировать файловую систему ext3 как ext2, но в этом случае вы потеряете функцию журналирования. Не забудьте запустить команду mkinitrd, если устройство с этой файловой системой будет использоваться во время запуска системы.

6.2.3. Файловая система Ext4

Новейшим воплощением расширенной файловой системы является файловая система ext4, вспомогательный код которой был включен в ядро ​​Linux в 2008 году. Файловая система ext4 поддерживает файлы большего размера (до 16 терабайт), а также позволяет создавать файловые системы на больших разделах по сравнению с файловая система ext3 (также предоставляет множество дополнительных функций).

Процесс разработки этой файловой системы начался с доработки файловой системы ext3 для полной поддержки 64-битных операций. После того, как стало ясно, что в код необходимо внести существенные изменения, разработчики решили назвать получившуюся файловую систему ext4.

6.2.4. Файловая система XFS

Файловая система xfs используется по умолчанию для Redhat Enterprise Linux 7. Это хорошо масштабируемая и высокопроизводительная файловая система.

Файловая система xfs была создана специально для операционной системы Irix, а также уже несколько лет используется в операционной системе FreeBSD. Он поддерживается ядром Linux, но редко используется в дистрибутивах, отличных от Redhat / CentOS.

6.2.5. Файловая система VFAT

Файловая система vfat доступна в различных форматах: fat12 для дискет, fat16 для операционной системы ms-dos и fat32 для дисков большего размера. Реализация файловой системы vfat в ядре Linux поддерживает все эти форматы, но эта реализация не поддерживает ряд функций, таких как контроль доступа и ссылки на файлы. Диски с толстой файловой системой могут быть прочитаны любой операционной системой и широко используются в цифровых камерах и запоминающих устройствах USB, и эта файловая система очень удобна для обмена данными между операционными системами, установленными на компьютере домашнего пользователя.

6.2.6. Файловая система iso9660

Файловая система iso 9660 — это стандартная файловая система для оптических приводов CD-ROM. Очень вероятно, что вы также найдете эту файловую систему на своем жестком диске в виде образов компакт-дисков (которые обычно имеют расширение .iso). Стандарт ISO 9660 ограничивает длину имен файлов форматом 8.3. Это ограничение было негативно воспринято в мире Unix, что привело к добавлению к стандарту расширения Rock Ridge, которое допускает 255-символьные имена файлов, имена файлов и режимы в стиле Unix, а также символические ссылки. Еще одно расширение стандарта iso 9660 — это расширение Joliet, которое добавляет возможность использовать до 64 символов Unicode в именах файлов. Расширение El Torito также относится к стандарту ISO 9660 и позволяет загружать систему с компакт-диска.

6.2.7. Файловая система UDF

Большинство оптических дисков (включая компакт-диски и DVD-диски) в настоящее время создаются с использованием файловой системы udf, что означает универсальный дисковый формат).

6.2.8. Файловые системы подкачки

Если принять во внимание все детали, своп — это не файловая система. Но чтобы использовать раздел в качестве раздела подкачки, он должен быть отформатирован и смонтирован как пространство для хранения данных подкачки.

6.2.9. Файловая система GFS

Кластеры на базе Linux обычно используют отдельную файловую систему кластера, такую ​​как GFS, GFS2, ClusterFS,

6.2.10. Другие файловые системы…

В старых системах Linux вы можете встретить файловую систему reiserfs. Также возможно, что вы встретите разработанную Sun файловую систему zfs или открытую файловую систему btrfs. Для описания возможностей последнего, скорее всего, нужна отдельная глава.

6.2.11. Файл / proc / файловая система

Файл / proc / filesystems содержит список поддерживаемых файловых систем. При монтировании файловой системы без явного указания ее типа утилита монтирования сначала попытается идентифицировать файловую систему как одну из файловых систем, описанных в файле / etc / filesystems, а затем, при необходимости, попытается идентифицировать файловую систему та же файловая система, что и одна из файловых систем, описанных в файле / proc / filesystems, за исключением тех, для которых установлен тег nodev. Если в последней строке / etc / filesystem есть только звездочка (*), будут использоваться оба файла.

3. Список команд для работы с файлами в Linux

Командование Описание
коснитесь имени файла Создайте файл «имя_файла»
mkdir имя_каталога Создать каталог «имя_каталога»
rm имя файла Удалите файл «имя_файла»
rm -r Рекурсивно удалить все файлы из каталога
pwd Вывод каталога, в котором вы сейчас находитесь
ls имя_каталога Распечатайте содержимое каталога «имя_каталога» (вы можете просто ввести ls без имени, и все файлы в текущем каталоге будут отображены)
cd имя_каталога Перейдите в каталог «имя_каталога»
cp имя_файла имя_каталога Скопируйте «имя_файла» в каталог «имя_каталога»
mv имя_файла имя_каталога Переместите «имя_файла» в каталог «имя_каталога»
mv старое_имя новое_имя Переименуйте файл / каталог «old_name» в «new_name»

Права доступа к файлу / каталогу можно изменить с помощью команды chmod:

chmod 644 имя файла

Следовательно, вы можете изменить права доступа к файлам и каталогам (а также к подкаталогам и файлам, которые они содержат).

Семейство Reiser

ReiserFS
ReiserFS, также известная как Reiser3, встречается во многих современных дистрибутивах Linux. Ханс Райзер — прародитель этой семьи. Основные дистрибутивы Linux до сих пор поддерживают ReiserFS. ReiserFS — одно из первых решений с открытым исходным кодом.

Особенности:

  • эффективное управление информацией о сохраненных файлах или папках;
  • совершенствование системы передачи данных, обеспечивающее непротиворечивость всей информации;
  • сжатие множества небольших файлов и так называемых очередей (их окончания размером не более одного блока) в один дисковый блок, что позволяет минимизировать внутреннюю фрагментацию;
  • эффективная поддержка даже для больших каталогов (используется хеш-таблица, где ключи генерируются на основе имени файла);
  • расширенная система плагинов, которая позволяет изменять поведение семантического слоя практически произвольным образом.

Райзер 4
Reiser4 — это улучшенный тип файловой системы SSD, созданный практически с нуля. По сравнению с ReiserFS он предлагает следующее:

  • изменить архитектуру на более объектно-ориентированную;
  • использует Repacker — специальную программу, которая сжимает очереди, дополнительно экономя место;
  • повышенная производительность;
  • большая безопасность;
  • возможность связывать собственные плагины.

Reiser4 представляет инновации в области безопасности: он разбивает файл на более мелкие части, каждая из которых может иметь индивидуальные права и использовать разные надстройки. Обратной стороной Reiser4 является бесплатная очистка данных, но он превосходит конкурентов, когда речь идет о одновременном сохранении нескольких потоков данных. Также идеально подходит для хранения большого количества небольших файлов, экономя много места.

ОБМЕН
SWAP — раздел обмена данными. Создайте виртуальную память, чтобы увеличить объем оперативной памяти. Используя раздел «подкачки», операционная система увеличивает свою эффективность и, следовательно, производительность системы также увеличивается. Система может создать файл подкачки вместо раздела подкачки, но обмен данными происходит намного медленнее и общая производительность снижается.

NFS — это служба, позволяющая обмениваться дисковыми ресурсами с компьютерами, подключенными к сети. Сервер предоставляет каталоги клиентам, которые могут их монтировать, и действует как локальная система. Смонтируйте: mount server.net:/usr/local / usr / local -t nfs.

6.3. Создание файловой системы в разделе

В настоящее время в нашем распоряжении есть только что созданный раздел жесткого диска. Список системных двоичных файлов для создания файловых систем можно сгенерировать с помощью утилиты ls.

пришло время прочитать страницы руководства по утилитам mkfs и mke2fs. В следующем примере вы можете проследить процесс создания файловой системы ext2 на разделе, представленном файлом устройства / dev / sdb1. В реальной жизни вам также могут потребоваться параметры -m0 и -j для этой корневой утилиты @ RHELv4u2: ~ # mke2fs / dev / sdb1 mke2fs 1.35 (28 февраля 2004 г.) Метка файловой системы = Тип ОС: Размер файла Linux block = 1024 (log = 0) Размер фрагмента = 1024 (log = 0) 28112 inode, 112420 блоков 5621 блок (5,0%) зарезервирован для суперпользователя Первый блок данных = 1 Максимальное количество блоков файловой системы = 67371008 14 групп блоков 8192 блока на группу, 8192 фрагмента на группу 2008 inodes на группу Резервные копии суперблока, хранящиеся в блоках: 8193, 24577, 40961, 57345, 73729 Запись таблиц inode: завершено Запись суперблоков и информации об учетной записи файловой системы: выполнено Эта файловая система будет автоматически проверяться каждые 37 монтажей или 180 дней, в зависимости от того, что наступит раньше . Используйте tune2fs -c или -i, чтобы переопределить

Виртуальные файловые системы в ОС Linux

Разработчики ядра добавили модуль FUSE (файловая система пространства пользователя), который позволяет создавать файловые системы пространства пользователя. К условным файловым системам относятся файловые системы для шифрования и сетевые файловые системы.
EncFS — это файловая система, которая шифрует все файлы и хранит их в зашифрованном виде в требуемом каталоге. Не все файловые системы необходимы ядру. Есть и очень экзотические варианты, ознакомьтесь с проектом PIfs. Есть некоторые решения, которые вы также можете реализовать в пользовательском пространстве. К расшифрованным данным можно получить доступ только после монтирования файловой системы.
Aufs (AnotherUnionFS) — позволяет объединить несколько файловых систем (папок) в одну общую.
NFS (сетевая файловая система) — позволяет монтировать файловую систему удаленного компьютера в сети.
Таких файловых систем много, и мы не будем перечислять их все в этой статье.

Специальные файловые системы в ОС Linux

Ядро Linux использует специальные файловые системы, чтобы предоставить пользователям и программам доступ к их настройкам и информации. Чаще всего вам будут встречаться следующие варианты:

  • tmpf;
  • процессы;
  • система;

просто создайте блочное устройство желаемого размера, затем подключите его к папке, и вы сможете записывать файлы в рабочую память. Файловая система tmpfs позволяет вам поместить любой пользовательский файл в оперативную память ПК.

procfs — по умолчанию монтируется в папку proc и включает всю информацию о процессах, запущенных в системе, а также о ядре.

sysfs — с помощью этой файловой системы вы можете устанавливать различные настройки ядра во время выполнения.

Эволюция файловой системы ext в Linux

Давайте подробнее рассмотрим эволюцию файловой системы ext в Linux:

Файловая система Minix

Файловая система Minix — первая файловая система, являющаяся прототипом современных файловых систем Linux, представленная в 1987 году Эндрю С. Таненбаумом как часть одноименной операционной системы Minix.

Операционная система Minix и ее файловая система использовались в качестве наглядного пособия для студентов, изучающих основы структуры операционной системы (одним из этих студентов был сам Линус Торвальдс). Поскольку Minix в первую очередь была обучающей системой, ее файловая система имела много недостатков: производительность файловой системы оставляла желать лучшего; имена файлов были ограничены 14 символами, а разделы — 64 МБ. Для сравнения, жесткие диски в то время имели размер до 140 МБ.

Файловая система ext

ext или extfs (сокращение от «Расширенная файловая система») была первой файловой системой, разработанной специально для Linux и представленной в апреле 1992 года. Используемая структура метаданных была разработана Реми Кардом, вдохновленным файловой системой Unix. Максимальная длина имени файла составляла 255 символов, а размер раздела — до 2 ГБ.

Хотя ext удалось исправить проблемы с файловой системой Minix, у нее был один серьезный недостаток: временная метка. Теперь, когда каждый файл в Linux имеет три метки времени (доступ к файлу, изменение содержимого файла, владение файлом и изменения метаданных (например, прав)), файловая система ext поддерживает только одну метку времени.

Файловая система ext2

В январе 1993 года, менее чем через год после выпуска ext, Реми Кард разработал новую файловую систему ext2.

Ext2 имеет обширную расширенную функциональность:

повышенная производительность файловой системы;

данные файла хранились в блоках данных одинаковой длины;

поддерживался максимальный размер файла 2 тэбибайта ;

длина имени файла была ограничена 255 байтами (а не количеством символов, как раньше).

Ext2 работал очень быстро, потому что система не поддерживала механизм журналирования (или «журналирования»). С одной стороны, этот аспект можно отнести к преимуществу ext2, поскольку при работе с запоминающими устройствами, имеющими ограниченный ресурс использования (например, SSD-диски или USB-устройства), отсутствуют избыточные циклы перезаписи данных, следовательно, память расходуется медленнее. С другой стороны, отсутствие регистрации ext2 часто приводило к двум очень неприятным проблемам:

Повреждение файлов при отключении питания или сбое системы при записи данных на диск.

Снижение производительности из-за фрагментации данных: происходит, когда один файл разбивается на части (фрагментируется) и распределяется по нескольким местам на диске. В результате для чтения и записи файлов требуется больше времени, что снижает производительность файловой системы.

Система ext2 использовалась по большей части до начала 2000-х годов, когда была представлена ​​файловая система ext3.

Файловая система ext3

В ноябре 2001 года, благодаря усилиям программиста Стивена Твиди, вместе с выпуском ядра Linux 2.4.15 была выпущена новая файловая система ext3.

Файловая система ext3 — это улучшенная версия файловой системы ext2, в которой реализована функция ведения журнала. Как и ext2, он поддерживает файлы размером 2 тебибайта, а имена файлов ограничены 255 байтами.

Благодаря журналам система хранит в специальном файле журнала (или «журнале») всю информацию об изменениях данных, которые еще предстоит внести. В случае сбоя питания или сбоя системы информация о файлах, хранящаяся в журналах, может быть восстановлена ​​за секунды, что снижает риск повреждения или потери данных.

Ядро Linux поддерживает три уровня ведения журнала:

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

Упорядоченный: процесс сохранения данных выполняется в определенном порядке: сначала метаданные записываются в файл журнала, затем содержимое файла записывается в основную файловую систему, и снова метаданные связываются с основной файловой системой. Если это не удастся, основная файловая система не будет повреждена; Только те файлы, которые находятся на момент возникновения ошибки, подвержены риску повреждения в процессе записи.

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

4. Типы файловых систем Linux — описание и обзор

Файловые системы условно делятся на два типа

  1. Дневник. В их арсенале есть специальный файл, в котором хранится история действий (логи) и план дальнейшей проверки. Одна из особенностей — отказоустойчивость и отличная гарантия сохранения целостности данных.
  2. Не дневник. Нет файла журнала. Работают быстрее. Они не гарантируют целостность и безопасность данных. Особенно эта проблема возникает в случае ошибок, когда некоторые действия могли изменить файл и остановить изменения в неправильном месте.

Узнайте файловую систему в операционной системе Linux

файл

Наиболее популярные типы файловых систем в Linux:

  1. Ext4 (считается стандартом для Linux)
  2. Восток2
  3. ReiserFS
  4. XFS
  5. ОБМЕН

Windows поддерживает собственные файловые системы: NTFS, FAT32. Linux тоже поддерживает их, но Windows не поддерживает системы Linux.

1Extfs (расширенная файловая система). Родился в апреле 1992 года. Самая первая файловая система, разработанная специально для операционной системы на базе ядра Linux. Максимальный размер раздела файла — 2 ГБ. Максимальная длина имени файла — 255 символов. Это прародитель популярных FS Ext2, Ext3.

2Ext2 (вторая расширенная файловая система). Создана в 1993 году. Это файловая система без ведения журнала. Он был популярен до 2000-х годов. Он имеет ряд ограничений на работу с большими файлами, но он также является самым быстрым, поэтому его часто используют в различных сравнительных тестах в качестве эталона.

3Ext3 (третья расширенная файловая система). Выпущен в 2001 году. Считается революционным, потому что принадлежит к поколению журнальных систем. Ext3 в настоящее время поддерживает файлы размером до 1 ТБ. В некоторых случаях он все еще используется. Разделы Ext3 могут быть прочитаны программами Windows (например, Total Commander). Разработано Стивеном Твидом.

4Ext4 (выпущен в 2006 г.). Это стандарт во всех современных Linux (а сейчас 2019). Хорошо защищен от проблем фрагментации и оптимизирован для работы с большими файлами. Максимальный размер файловой системы не может превышать 16 ТБ.

5ReiserFS (или Reiser3). Создан после ext3 как альтернатива. Система ведения журнала. Он поддерживает отличную производительность. Позволяет изменять размер разделов во время выполнения.

он считается самым дешевым, поскольку позволяет хранить несколько файлов в одном блоке, что позволяет использовать каждый байт жесткого диска. Обычные файловые системы могут хранить файл или его часть в блоке.

6Reiser4 (дата создания 2004 г.). Система включает в себя передовые технологии, такие как транзакции, отложенное выделение пространства, а также интегрированное шифрование и сжатие данных.

7XFS (журналируемая файловая система). Это мощная файловая система, разработанная Silicon Graphics для своей операционной системы в 2001 году. Допускается использование дисков емкостью 2 ТБ. Существует вероятность потери данных при записи во время сбоя питания, так как в памяти хранится большое количество буферов.

8Btrfs или файловая система B-Tree. Журналируемая файловая система. Совершенно новая файловая система, ориентированная на отказоустойчивость, свободу администрирования и восстановление данных. Его функции включают хранение индекса файла в так называемых «B-деревьях» — иерархических структурах, которые максимально используют ресурсы оперативной памяти из-за низкой глубины вложенности данных.

9SWAP — это особый тип файловой системы без ведения журнала, которая реализует структуру хранения, аналогичную ОЗУ. Используется для реализации файла подкачки в Linux.

Как узнать, какая у меня файловая система?

Способ №1: Использование команды df

Команда df отображает информацию об использовании дискового пространства файловой системой. Чтобы указать, что должен отображаться тип файловой системы, используйте следующую команду:

$ df -Th

или

$ df -Th | grep «^ / dev»

Как видите, я использую файловую систему ext4 (см. / Dev / sda1).

Примечание. Имена дисков в Linux расположены в алфавитном порядке. / dev / sda — это первый (основной) жесткий диск, / dev / sdb — второй и т д. Цифры относятся к разделам, поэтому / dev / sda1 — это первый раздел первого диска.

Способ №2: Использование команды fsck

Команда fsck используется для проверки и, при необходимости, восстановления файловых систем Linux. В то же время он также может просматривать тип файловой системы на указанных разделах диска, например:

# fsck -N / dev / sda1

Способ №3: Использование команды lsblk

Команда lsblk отображает информацию о блочных устройствах. Добавляя параметр -f, мы также получаем информацию о типе файловой системы:

$ lsblk –f

Права Линукс chmod

У любого каталога / файла есть владелец и группа (некоторые группы могут включать нескольких пользователей). Их можно изменить правой кнопкой мыши в свойствах или в консоли..

Права доступа chmod могут быть указаны как в числовом (абсолютном) (режим), так и в алфавитном (символьный) форматах).

Числовой:

sudo chmod -R 777 / media / $ USER / имя диска / потребность

sudo — запросить права суперпользователя для этой операции, указать программу, которая будет chmod. -R — чтобы скрипт рекурсивно просматривал все подпапки и файлы. Указываем права, и папку назначения..

Права 777: первая цифра — пользователь; второй — группа; третий — остальные (в смысле не быть пользователями системы, подключаться удаленно и т д);

Цифры означают:

  • 0 — все запрещено
  • прыжок 1 — 3 обычно не используются
  • 4 — только чтение
  • 5 — прочитать и выполнить
  • 6 — читать и писать
  • 7 — все разрешено

Буквенный:

sudo chmod -R a + rwx / media / $ USER / diskname / needir # записи такие же: sudo chmod -R + rwx / media / $ USER / diskname / needir sudo chmod -R ugo + rwx / media / $ USER / имя диска / потребность

Первый или самый последний указывает, на кого мы применяем права:
u — пользователь; г — группа; или — другие; каждому;
Во-вторых, действие: — запрет; + разрешение; = назначение;
Сами третьи или несколько прав: r — чтение, w — запись, x — выполнение;

Найти все папки и назначить права по умолчанию:

найти / media / $ USER / diskname / needir -type d -exec chmod 755 {} ;

Найти все файлы и назначить права по умолчанию:

найти / media / $ USER / имя диска / needir -type f -exec chmod 644 {} ;

В файловом менеджере можно включить столбец «права доступа» и там вы увидите обозначение в буквенном режиме, что, на мой взгляд, неудобно, например: 777 выглядит как rwxrwxrwx; 755 знак равно rwxr-xr-x; 644 = wr — r—; у тех пользователей 3 буквы: читать, писать, выполнять; затем группа и остальные по 3 персонажа. Также в файловом менеджере перед папками ставится флаг:

  • — без флага
  • б — запорное устройство
  • c — символьное устройство
  • d — каталог
  • D — дверь
  • l — символическая ссылка
  • p — трубопровод
  • s — сокет (unix socket)

т.е. 1 дополнительный символ в начале .. -rwxr-xr-x или drwxr-xr-x

У Chmod есть еще варианты, я их не перечисляю — хватит..

6.5. Проверка файловой системы

Команда fsck позволяет использовать служебную программу-оболочку, используемую для вызова утилит, контролирующих файловые системы.

root @ RHEL4b ~ # ls / sbin / * fsck * / sbin / dosfsck / sbin / fsck /sbin/fsck.ext2 /sbin/fsck.msdos / sbin / e2fsck /sbin/fsck.cramfs /sbin/fsck.ext3 /sbin/fsck.vfat root @ RHEL4b ~#

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

paul @ RHEL4b ~ $ grep ext / etc / fstab / dev / VolGroup00 / LogVol00 / ext3 по умолчанию 1 1 LABEL = / boot / boot ext3 по умолчанию 1 2 paul @ RHEL4b ~$

При проверке смонтированной файловой системы вручную отобразится предупреждение и завершится выход из fsck.

root @ RHEL4b ~ # fsck / boot fsck из util-linux 2.25.2 e2fsck 1.42.11 (09 июля 2014) / dev / sda1 смонтирован e2fsck: не удалось продолжить, отменить.

Но после размонтирования файловой системы ext2 для ее проверки можно успешно использовать fsck и e2fsck.

Оцените статью
Блог про восстановление данных