- ⌨ Как создать новую файловую систему Ext4 (раздел) в Linux
- Создание нового раздела в Linux
- Форматирование нового раздела Ext4
- Монтирование нового раздела Ext4 в файловой системе
- Файловая система для linux ext4
- Форматирование раздела
- Конвертация Ext3 разделов в Ext4
- Монтирование раздела как Ext4
- Конвертация в Ext4
- Дефрагментация
- e2fsprogs
- Оптимизация дискового пространства
- Изменение процента зарезервированных блоков для нужд суперпользователя
- Изменение числа зарезервированных под служебные нужды блоков
- Национальная библиотека им. Н. Э. Баумана Bauman National Library
- Персональные инструменты
- ext4 (Fourth Extended File system)
- Содержание
- История создания
- Характеристика
- Возможности ext4
- Дефрагментация
- e2fsprogs
- Оптимизация дискового пространства
- Изменение процента зарезервированных блоков для нужд суперпользователя
- Изменение числа зарезервированных под служебные нужды блоков
- Использование ext4
⌨ Как создать новую файловую систему Ext4 (раздел) в Linux
Ext4 – широко используемая файловая система журналирования для Linux.
Она был разработана как прогрессивная версия файловой системы ext3 и преодолевает ряд ограничений в ext3.
Она имеет значительные преимущества перед предшественником, такие как улучшенный дизайн, лучшая производительность, надежность и новые функции.
Хотя она лучше всего подходит для жестких дисков, его также можно использовать на съемных устройствах.
Эта статья покажет вам, как создать новую файловую систему ext4 (раздел) в Linux.
Сначала мы рассмотрим, как создать новый раздел в Linux, отформатировать его в файловой системе ext4 и смонтировать.
Примечание. Для целей данной статьи:
- Предположим, что вы добавили новый жесткий диск на свой компьютер Linux, на котором вы создадите новый раздел ext4, и
- Если вы работаете с системой как пользователь с правами администратора, используйте команду sudo для получения привилегий root для запуска команд, показанных в этой статье.
Создание нового раздела в Linux
Перечислите разделы с помощью команд fdisk -l или parted -l, чтобы определить жесткий диск, который вы хотите разбить на разделы.
Посмотрите на вывод на скриншоте выше, у нас есть два жестких диска, добавленных в тестовую систему, и мы разделим диск /dev/sdb.
Теперь используйте команду parted, чтобы начать создание раздела на выбранном устройстве хранения.
Теперь присвойте новому диску метку с помощью команды mklabel.
Затем создайте раздел с помощью команды mkpart, присвойте ему дополнительные параметры, такие как «основной» или «логический», в зависимости от типа раздела, который вы хотите создать.
Затем выберите ext4 в качестве типа файловой системы, установите начало и конец, чтобы установить размер раздела:
Чтобы вывести таблицу разделов на устройстве /dev/sdb или подробную информацию о новом разделе, выполните команду print
Теперь выйдите из программы, используя команду quit.
Форматирование нового раздела Ext4
Далее необходимо правильно отформатировать новый раздел с типом файловой системы ext4 с помощью команды mkfs.ext4 или mke4fs, как показано ниже.
Затем пометьте раздел с помощью команды e4label следующим образом.
Монтирование нового раздела Ext4 в файловой системе
Затем создайте точку монтирования и смонтируйте только что созданную файловую систему раздела ext4.
Теперь с помощью команды df вы можете перечислить все файловые системы в вашей системе вместе с их размерами в удобочитаемом формате (-h), а также их точки монтирования и типы файловых систем (-T):
Наконец, добавьте следующую запись в ваш /etc/fstab, чтобы включить постоянное монтирование файловой системы даже после перезагрузки.
Вы также можете прочитать следующие статьи по теме:
Источник
Файловая система для linux ext4
Ext4 — журналируемая файловая система, предлагаемая для использования по умолчанию инсталятором Ubuntu, начиная с версии 9.10. Количество индексных дескрипторов (i-node) задается только при создании ФС и в дальнейшем может быть только уменьшено 1) . При создании ФС приблизительно 1,8% объёма диска занимается служебными структурами ФС 2) , в дальнейшем размер этих данных увеличиваться будет только на размер каталогов файлов. Кроме того еще 5% (по умолчанию) резервируется для root 3) . Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение, то есть «Документ.txt» и «документ.txt» — это разные файлы, и они без проблем могут находиться в одной директории.
В отличии от Ext3 в Ext4 пространство под файлы выделяется экстентами: extent — последовательная цепочка блоков, для идентификации которой используется только указатель на начало и длина в блоках (тогда как в Ext2/3 при выделении места используются отдельные блоки и требовалось перечислять все блоки, в которых размещен файл).
Все утилиты требуемые для работы с Ext4 содержатся в пакете e2fsprogs.
Форматирование раздела
Для того, чтоб отформатировать раздел достаточно выполнить комманду:
где — название раздела на котором требуется создать файловую систему Ext4. Например, sda4 (смотри «Системный монитор — Файловые системы»).
Конвертация Ext3 разделов в Ext4
Монтирование раздела как Ext4
Этот способ можно считать самым безопасным, так как физически на диске ничего не меняется и вернуться обратно к Ext3 не составит труда. При монтировании Ext3 как Ext4 будут доступны некоторые оптимизации добавленые в Ext4.
Конвертация в Ext4
Полная конвертация раздела добавит большую часть нововведений Ext4, но некоторые из них будут применяться только к новым файлам. Для того, чтобы выполнить конвертацию раздела в Ext4 достаточно выполнить следующие действия:
Включение новых возможностей на разделе с Ext3:
Проверка раздела на наличие ошибок:
где — название раздела который требуется конвертировать в Ext4.
Дефрагментация
ФС в Linux изначально спроектированы так, чтобы фрагментация файлов была как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может привести к заметному падению производительности дисковой подсистемы.
Для Ext4 есть несколько дефрагментаторов:
e2fsprogs
Проверка необходимости дефрагментации:
где — название раздела, который требуется дефрагментировать. Например, sda4.
где — название раздела, который требуется дефрагментировать. Например, sda4.
проверка результата (в последней строке вывода должно быть ⩽0.3% non-contiguous):
Оптимизация дискового пространства
На свежесозданном разделе с Ext4 обычно выделяется заметно меньше свободного дискового пространства чем размер раздела. Это происходит потому, что используется порядка 1,8% на служебные нужды: заголовки групп блоков, бинарные поля для учета свободного места, индексные дескрипторы (i-node), основной и множество резервных копий суперблока.
Также по умолчанию, дополнительно резервируется 5% от объема раздела для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это полезно для системного корневого раздела, но на пользовательских разделах необходимости в этом резерве нет, особенно на разделах большого размера, где 5% превращаются в очень приличные объемы (недоступные пользователю).
Изменение процента зарезервированных блоков для нужд суперпользователя
По умолчанию резервируется 5% от объема раздела или диска. Значение 0 отключает резервирование блоков, значение 5 — устанавливает резервирование на 5%.
Изменение числа зарезервированных под служебные нужды блоков
Значение 0 отключает резервирование блоков, значение 5 — устанавливает резервирование 5-и блоков.
Источник
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
ext4 (Fourth Extended File system)
Полное название | Fourth extended file system |
---|---|
Содержимое каталога | Linked list, hashed B-tree |
Распределение файлов | Extents/Bitmap |
Сбойные блоки | Table |
Limits | |
Макс. размер тома | |
Макс. размер файла | 16 TiB (for 4k block filesystem) |
Макс. количество файлов | 4 billion (specified at filesystem creation time) |
Макс. длина имени файла | 255 bytes |
Разрешенные символы в именах файлов | All bytes except NUL (‘\0’) and ‘/’ and the special file names «.» and «..» |
Features | |
Даты зарегистрирован | modification (mtime), attribute modification (ctime), access (atime), delete (dtime), create (crtime) |
Диапазон дат | 14 December 1901 — 25 April 2514 |
Дата резолюции | Nanosecond |
Вилка | No |
Признаки | acl, bh, bsddf, commit=nrsec, data=journal, data=ordered, data=writeback, delalloc, extents, journal_dev, mballoc, minixdf, noacl, nobh, nodelalloc,noextents, nomballoc, nouser_xattr, oldalloc, orlov, user_xattr |
Разрешения файловой системы | [POSIX (Portable Operating System Interface for Unix) |
Прозрачное сжатие | No |
Транспорантное шифрование | Yes |
Дедупликация данных | No |
Другие | |
Операционная система | Linux FreeBSD (read-only in kernel since version 10.1) Mac OS X (read-only with ext4fuse, full with ExtFS) Windows (Read/Write without journaling with ext2fsd) |
ext4 (англ. Fourth Extended File system — четвёртая расширенная файловая система, сокр. ext4, или ext4fs) — журналируемая файловая система (ФС), используемая в операционных системах с ядром Linux. Основана на ФС ext3, ранее использовавшейся по умолчанию во многих дистрибутивах GNU/Linux. Отличается от ext3 поддержкой extent’ов, групп смежных физических блоков, управляемых как единое целое; повышенной скоростью проверки целостности и рядом других усовершенствований.
Содержание
История создания
Ext4 — это результат эволюции Ext3, наиболее популярной файловой системы в Linux. Во многих аспектах Ext4 представляет собой больший шаг вперёд по сравнению с Ext3, чем Ext3 была по отношению к Ext2. Наиболее значительным усовершенствованием Ext3 по сравнению с Ext2 было журналирование, в то время как Ext4 предполагает изменения в важных структурах данных, таких как, например, предназначенных для хранения данных файлов. Это позволило создать файловую систему с более продвинутым дизайном, более производительную и стабильную и с обширным набором функций [1] .
Первая экспериментальная реализация ext4 была написана Эндрю Мортоном и выпущена 10 октября 2006 года в виде патча к ядрам Linux версий 2.6.19-rc1-mm1 и 2.6.19-rc1-git8 .
В октябре 2008 была переименована из ext4dev в ext4, что символизирует то, что с точки зрения разработчиков она достаточно стабильна. В ядре 2.6.28 (вышедшем 25.12.2008) файловая система уже называется ext4 и считается стабильной. Файловая система ext4 рассматривается как промежуточный шаг на пути к файловой системе следующего поколения Btrfs, которая претендует на звание основной файловой системы Linux в будущем.
Характеристика
Основные изменения по сравнению с ext3:
- увеличение максимального объёма одного раздела диска до 1 эксбибайта (2 60 байт) при размере блока 4 кибибайт;
- увеличение размера одного файла до 16 тебибайт (2 44 байт);
- введение механизма пространственной (extent) записи файлов, уменьшающего фрагментацию и повышающего производительность. Суть механизма заключается в том, что новая информация добавляется в конец области диска, выделенной заранее по соседству с областью, занятой содержимым файла.
Возможности ext4
- Использование экстентов (англ.extent ). В файловой системе ext3 адресация данных выполнялась традиционным образом, поблочно. Такой способ адресации становится менее эффективным с ростом размера файлов. Экстенты позволяют адресовать большое количество (до 128 MB) последовательно идущих блоков одним дескриптором. До 4х указателей на экстенты может размещаться непосредственно в inode, что достаточно для файлов маленького и среднего размера.
- 48-и битные номера блоков. На сегодняшний день максимальный размер файловой системы Ext3 равен 16 терабайтам, а размер файла ограничен 2 терабайтами. В Ext4 добавлена 48-битная адресация блоков, что означает, что максимальный размер этой файловой системы равен одному экзабайту, и файлы могут быть размером до 16 терабайт. 1 EB (экзабайт) = 1,048,576 TB (терабайт), 1 EB = 1024 PB (петабайт), 1 PB = 1024 TB, 1 TB = 1024 GB.
- Выделение блоков группами (англ.multiblock allocation ). Файловая система хранит не только информацию о местоположении свободных блоков, но и количество свободных блоков, идущих друг за другом. При выделении места файловая система находит такой фрагмент, в который данные могут быть записаны без фрагментации. Это снижает уровень фрагментации ФС в целом.
- Отложенное выделение блоков (англ.delayed allocation ). Выделение блоков для хранения данных файла происходят непосредственно перед физической записью на диск (например, при вызове sync), а не при вызове write. В результате, операции выделения блоков можно делать не по одной, а группами, что в свою очередь минимизирует фрагментацию и ускоряет процесс выделения блоков. С другой стороны, увеличивает риск потери данных в случае внезапного пропадания питания.
- Масштабируемость подкаталогов. В настоящий момент один каталог Ext3 не может содержать более, чем 32000 подкаталогов. Ext4 снимает это ограничение и позволяет создавать неограниченное количество подкаталогов.
- Резервирование inode’ов при создании каталога (англ.directory inodes reservation ). При создании каталога резервируется несколько inode’ов. Впоследствии, при создании файлов в этом каталоге сначала используются зарезервированные inode’ы, и если таких не осталось, выполняется обычная процедура.
- Размер inode. Размер inode (по умолчанию) увеличен с 128 до 256 байтов. Это дало возможность реализовать те преимущества, которые перечислены ниже.
- Временные метки с наносекундной точностью (англ.nanosecond timestamps ). Точность временных меток, хранящихся в inode, повышена до наносекунд. Диапазон значений тоже расширен: у ext3 верхней границей хранимого времени было 18 января 2038 года, а у ext4 — 25 апреля 2514 года.
- Версия inode. В inode появился номер, который увеличивается при каждом изменении inode файла. Это будет использоваться, например, в NFSv4, для того чтобы узнавать, изменился ли файл.
- Хранение расширенных атрибутов в inode (англ.extended attributes (EA) in inode ). Хранение расширенных атрибутов, таких как ACL, атрибутов SELinux и прочих, позволяет повысить производительность. Атрибуты, для которых недостаточно места в inode, хранятся в отдельном блоке размером 4KB. Предполагается снять это ограничение в будущем.
- Контрольное суммирование в журнале (Journal checksumming). Контрольные суммы журнальных транзакций. Позволяют лучше найти и (иногда) исправить ошибки при проверке целостности системы после сбоя.
- Режим без журналирования. Журналирование обеспечивает целостность файловой системы путём протоколирования всех происходящих на диске изменений. Но оно также вводит дополнительные накладные расходы на дисковые операции. В некоторых особых ситуациях журналирование и предоставляемые им преимущества могут оказаться излишними. Ext4 позволяет отключить журналирование, что приводит к небольшому приросту производительности.
- Предварительное выделение (англ.persistent preallocation ). Сейчас для того, чтобы приложению гарантированно занять место в файловой системе, оно заполняет его нулями. В ext4 появилась возможность зарезервировать множество блоков для записи и не тратить на инициализацию лишнее время. Если приложение попробует прочитать данные, оно получит сообщение о том, что они не проинициализированы. Таким образом, несанкционированно прочитать удалённые данные не получится.
- Дефрагментация без размонтирования (англ.online defragmentation ). Дефрагментация выполняется утилитой e4defrag, поставляемой в составе пакета e2fsprogs с 2011 года.
- Неинициализированные блоки (англ.uninitialised groups ). Возможность пока не реализована и предназначена для ускорения проверки целостности ФС утилитой fsck. Блоки, отмеченные как неиспользуемые, будут проверяться группами, и детальная проверка будет производится только если проверка группы показала наличие повреждений. Предполагается, что время проверки будет составлять от 1/2 до 1/10 от нынешнего в зависимости от способа размещения данных.
- Прямая и обратная совместимость с ext2/ext3. Файловые системы ext2/ext3 можно монтировать как файловую систему ext4. Наоборот — монтировать файловую ext4 как ext3 — можно только в том случае, если на ext4 не используются экстенты [2] .
Дефрагментация
Файловые системы в Linux изначально спроектированы так, чтобы фрагментация файлов была как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может привести к заметному падению производительности дисковой подсистемы. Для Ext4 есть несколько дефрагментаторов:
- e2fsprogs. Онлайн дефрагментатор из стандартного набора утилит.
- Defrag. Дефрагментатор от Кона Коливаса. Случаются перерывы в разработке, но проект живой, в 2010 появился PPA-репозиторий: ppa:e2defrag/ppa.
- Shake. Онлайн-дефрагментатор, PPA-репозиторий: ppa:un-brice/ppa.
e2fsprogs
- Проверка необходимости дефрагментации:
- запуск дефрагментации:
- проверка результата (в последней строке вывода должно быть ⩽0.3% non-contiguous):
Оптимизация дискового пространства
На свежесозданном разделе с Ext4 обычно выделяется заметно меньше свободного дискового пространства чем размер раздела. Это происходит потому, что используется порядка 1,8% на служебные нужды: заголовки групп блоков, бинарные поля для учета свободного места, индексные дискрипторы (i-node), основной и множество резервных копий суперблока. Также по умолчанию, дополнительно резервируется 5% от объема раздела для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это полезно для системного корневого раздела, но на пользовательских разделах необходимости в этом резерве нет, особенно на разделах большого размера, где 5% превращаются в очень приличные объемы (недоступные пользователю).
Изменение процента зарезервированных блоков для нужд суперпользователя
Изменение числа зарезервированных под служебные нужды блоков
Использование ext4
Для того чтобы использовать ext4, необходимо:
- поддержка со стороны ядра
- поддержка со стороны программ
- при создании файловой системы с нуля используется mkfs.ext3 с ключом -E test_fs
- для подготовки существующей файловой системы ext3 к монтированию использовать debugfs
- при монтировании использовать тип файловой системы ext4dev
Ниже во всех деталях описывается процесс создания файловой системы ext4.
Для примера в качестве носителя файловой системы используется обычный файл. Создание файловой системы не в файле, а на дисковом разделе происходит аналогично, с той разницей, что не нужно использовать модуль loop.
Для того чтобы использовать файловую систему ext4, необходимо чтобы в ядре
Linux была соответствующая поддержка в ядре.
Модуль ядра, который отвечает за поддержку ext4, называется ext4dev.
Создаём пустой файл размером 100MB,
который чуть позже будет форматироваться под ext4. Создаём обычную файловую систему ext3:
После того как файловая система создана, можно попробовать её подмонтировать. Поскольку мы создавали файловую систему в файле, а не на блочном устройстве, для того чтобы смонтировать её, файл нужно связать с loopback-устройством.
Это можно сделать или при помощи команды losetup или просто, использовав опцию loop при монтировании.
Если при выполнении команды возникает ошибка, в которое сообщается о проблемах с устройством /dev/loop, возможно, у вас просто не загружен модуль loop или не установлен udev:
Может возникнуть и другая ошибка, которая имеет непосредственное отношение
к файловой системе ext4.
Модуль файловой системы ext4 ядра Linux сообщает о том, что файловая система не помечена как ext4. Проверка добавлена скорее из психологических чем технических побуждений — чтобы файловые системы ext3 не смонтировали случайно как ext4.
Добавить пометку, извещающую систему о том, что файловую систему можно смело монтировать как ext4
Вообще, можно было попросить ставить пометку ещё при создании файловой системы.
Для этого нужно было использовать ключ -E test_fs: Тип файловой системы, указываемый при монтировании: ext4dev. Файловая система успешно смонтирована:
После того как работа с файловой системой окончена,
Источник