Упражнения 20: Файловая система: модификация и создание файловых систем, tune2fs, mkfs
Исходный текст:
Exercise 20. Filesystems: modifying and creating filesystems, tune2fs, mkfs (https://archive.fo/CzHiN)
Автор: 飞龙
Лицензия: CC BY-NC-SA 4.0
С гордостью использую Google Translate.
Позвольте мне представить вам некоторые термины, связанные с файловой системой:
Файловая система — это способ организации данных, который обеспечивает хранение, поиск и обновление данных, а также управление доступным пространством на устройстве, содержащем его, и данные должны сохраняться после завершения.
Индексный узел (Inode) — это структура, которая хранит всю информацию об объектах файловой системы (файлы, каталоги и т. д.), за исключением содержимого данных и имени файла.
Блок — это наименьшая единица дискового пространства, которую можно выделить. Обычно по умолчанию используется 4096 байт или 4 килобайта.
Журнал — это структура, позволяющая файловой системе отслеживать, что было записано. Это позволяет быстро определить, что не было правильно записано в случае сбоя питания или подобных проблем.
Далее позвольте мне кратко описать принцип работы файловой системы. Чтобы получить доступ к файлу по названию, ядро Linux:
Теперь каждая файловая система имеет множество связанных с ней опций. Эти параметры можно просмотреть и изменить с помощью программы tune2fs. Вот вывод программы tune2fs -l /dev/sda8 с комментариями:
user1@vm1:~$ sudo tune2fs -l /dev/sda8
tune2fs 1.41.12 (17-May-2010)
# Это просто ярлык, может быть что угодно или ничего
Имя файловой системы тома: <нет>
# Здесь должно быть последнее место монтирования
Последний смонтированный: <недоступно>
# Уникальный идентификатор файловой системы
UUID файловой системы: 869db6b4-aea0-4a25-8bd2-f0b53dd7a88e
# Известное местоположение специального числа, которое определяет тип FS, попробуйте это:
# sudo dd if=/dev/sda8 of=/dev/stdout bs=1 skip=1080 count=2 | hexdump -C
Магическое число файловой системы: 0xEF53
# Версия ФС
Номер ревизии ФС: 1 (динамический)
# Включенные функции ФС
Функции файловой системы:
# Это файловая система журнала. Файловая система журнала — это файловая система,
# которая отслеживает изменения, происходящие в журнале (обычно это циклический журнал,
# в определённом месте файловой системы), перед отправкой в основную файловую систему.
# В случае сбоя системы или сбоя питания эта файловая система может быстрее
# восстановиться и не может повредить.
# http://en.wikipedia.org/wiki/Journaling_file_system
has_journal
# Имеет расширенные атрибуты, такие как расширенный ACL.
ext_attr
# Сохраняет пространство для системных данных, что позволяет ФС изменять размер.
resize_inode
# Использует индексы для ускорения поиска больших каталогов.
dir_index
# Хранит информацию о типе файла в записях каталога.
filetype
# Означает, что требуется запустить fsck.
needs_recovery
# Меньше резервных суперблоков, экономит место на больших ФС.
sparse_super
# Может ли содержать файлы размером более 2 ГБ. При создании файлов размером более 2 ГБ ядро автоматически устанавливает его.
large_file
# dir_index использует какой хэш
Флаги файловой системы: signed_directory_hash
# Какие опции использовать при монтировании
Параметры монтирования по умолчанию: (нет)
# Требуется ли выполнение fsck
Состояние файловой системы: чистое
# Что делать в случае ошибки: продолжить, смонтировать только для чтения или выдать ошибку?
Поведение ошибок: Продолжить
# Какая ОС использует эту ФС
Тип файловой системы ОС: Linux
# Общее количество индексных узлов. Индексные узлы — это «inode». Его структура такова:
# хранит информацию обо всех объектах файловой системы (файлах, каталогах и других),
# кроме содержимого файла и имени файла. То есть количество ваших файлов не может превышать количество индексных узлов.
# Вот структура индексных узлов, описывающая, что хранится в структуре Inode:
#/* Структура Inode, появляющаяся в таблице Inode */
#struct dinode
#{ ushort di_mode; /* режим и тип файла */
# short di_nlink; /* количество ссылок на файл */
# ushort di_uid; /* идентификатор пользователя владельца */
# ushort di_gid; /* идентификатор группы владельца */
# off_t di_size; /* количество байтов в файле */
# char di_addr[39]; /* адреса блоков диска */
# char di_gen; /* номер поколения файла */
# time_t di_atime; /* время последнего доступа */
# time_t di_mtime; /* время последней модификации */
# time_t di_ctime; /* время создания */
#};
# Здесь также есть хорошее объяснение:
# http://support.tux4u.nl/dokuwiki/lib/exe/fetch.php?media=linux:disk_bestandssysteem:inode.pdf
Количество индексных узлов: 62464
# Сколько свободных индексных узлов в настоящее время
Свободные индексные узлы: 62452
# Первый блок на устройстве. Поскольку каждый раздел представлен как отдельное устройство,
# он установлен на 0.
Первый блок: 0
# Это номер узла первого индексного узла.
Первый индексный узел: 11
# Размер индексного узла, в байтах. В новых выпусках Linux это иногда увеличивается по умолчанию,
# чтобы разрешить хранение расширенных атрибутов в файлах, таких как временные метки в микросекундах.
Размер индексного узла: 256
# Пространство, необходимое для добавления полей индексного узла
Требуемый дополнительный размер: 28
# Требуемое пространство для дополнительных полей индексного узла. Неважно, потому что этот размер
# всегда является необходимым пространством
Желаемый дополнительный размер: 28
# Невидимый узел, который хранит журнал файловой системы.
Журнальный индексный узел: 8
# Количество блоков. Блок — это минимально выделяемое дисковое пространство.
# Вы можете использовать следующую формулу для расчёта размера раздела в ГБ:
# количество блоков * размер блока
# ------------------------
# 1024^3
Количество блоков: 249856
# Сколько блоков зарезервировано для суперпользователя. Обычные пользователи не могут использовать это
# зарезервированное пространство. Это сделано для того, чтобы система продолжала работать, чтобы предотвратить некоторые вредоносные программы
# решение заполнить все доступное дисковое пространство.
Зарезервированное количество блоков: 12492
# Сколько блоков в настоящее время свободно.
Свободное количество блоков: 241518
# Алгоритм, используемый для индексации каталогов (dir_index).
Алгоритм хеширования по умолчанию для каталогов: half_md4
# Пока что я могу сказать, что это начальное значение для алгоритма хеширования dir_index.
Семя хеш-функции каталога: d02c6099-bd06-4d29-a3d7-779df2aa2410
# Опции резервного копирования журнала.
Резервное копирование журнала: блоки индексных узлов #
# Размер блока, в байтах. 4096 байтов — это 4 КБ.
Размер блока: 4096
# Не реализовано в ex3 FS. Это функция, которая может записывать несколько небольших файлов в один блок,
# для экономии места.
Размер фрагмента: 4096
# Зарезервированный контроль, поэтому таблица дескрипторов групп, возможно, будет расти в будущем.
Зарезервировано **root (суперпользователь) shell**
1. Отключить монтирование `/tmp`, прочитав его местоположение из `/etc/fstab`.
2. Вывести UUID `/dev/sda8`, где `/dev/sda8` — это файловая система, смонтированная на `/tmp`.
3. Создать новую файловую систему на `/dev/sda8`.
4. Ещё раз вывести UUID `/dev/sda8`, чтобы увидеть изменения после создания новой файловой системы.
5. Добавить этот UUID в `/etc/fstab`.
6. Открыть `/etc/fstab` для редактирования.
7. Смонтировать новую созданную файловую систему. Это фактически проверка того, правильно ли вы заменили UUID, иначе появится сообщение об ошибке.
8. Установить проверку `/dev/sda8` каждые два раза при монтировании.
9. Размонтировать `/dev/sda8`.
10. Проверить `/dev/sda8`.
11. Смонтировать и последовательно четыре раза показать последние 4 строки файла `/var/log/messages`. Обратите внимание, что начиная с третьего раза система уведомит вас о необходимости запустить `e2fsck`. Если вы перезагрузите систему, она автоматически запустит `e2fsck` за вас.
12. Проверить `/dev/sda8`. `fsck` определит тип файловой системы и автоматически вызовет `e2fsck`.
13. Смонтировать все файловые системы. Если ошибок нет, упражнение выполнено.
## Дополнительное задание
+ Прочитать `man mkfs`, `man mkfs.ext3`, `man tune2fs`.
+ Изучить список `tune2fs -l` в верхней части страницы и прочитать счётчик для всех ваших файловых систем.
+ Вручную рассчитать размер файловой системы, используя формулу, предоставленную в описании блоков списка `tune2fs -l`.
+ Прочесть эту презентацию и выполнить всё, что в ней показано: <http://mcgrewsecurity.com/training/extx.pdf>.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )