Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер, конвертировать файловые системы, выполнить дефрагментацию в Linux или восстановление файловых систем.
Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.
В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.
Содержание статьи
Основные команды
Для управления файловой системой ext в Linux используется целый набор команд из пакета e2fsprogs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.
Рассмотрим основные утилиты, которые будем использовать:
- badblocks - если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
- e2label - позволяет изменить метку раздела с файловой системой ext.
- fsck - проверка файловой системы linux и исправление найденных ошибок
- mkfs - позволяет создать файловую систему Linux.
- resize2fs - изменить размер раздела с файловой системой
- tune2fs - позволяет изменить файловую систему Linux, настроить ее параметры.
А теперь будет рассмотрена работа с файловой системой linux на примерах.
Работа с файловой системой в Linux
Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.
Создание файловой системы
Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:
sudo mkfs -t тип устройство
Доступны дополнительные параметры:
- -с - проверить устройство на наличие битых секторов
- -b - размер блока файловой системы
- -j - использовать журналирование для ext3
- -L - задать метку раздела
- -v - показать подробную информацию о процессе работы
- -V - версия программы
Создаем файловую систему на нашем устройстве. Будем создавать ext4:
sudo mkfs -t ext4 -L root /dev/sda6
Изменение метки файловой системы
Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра - устройство и новую метку если нужно.
Смотрим метку:
sudo e2label /dev/sda6
Устанавливаем новую:
sudo e2label /dev/sda6 root1
Настройка файловой системы linux
Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.
Синтаксис команды очень прост:
$ tune2fs опции устройство
Поддерживаются следующие опции:
- -j - создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
- -J - настроить параметры журнала
- -l - получить содержимое суперблока
- -L - изменить метку раздела
- -m - изменить процент дискового пространства, зарезервированного для суперпользователя
- -M - изменить последнюю папку монтирования
- -U - задать UUID файловой системы
- -C - изменить значение счетчика монтирования
- -T - изменить последнюю дату проверки файловой системы
- -с - изменить периодичность проверок файловой системы с помощью fsck
- -O - изменить опции файловой системы.
Изменить размер зарезервированного места для суперпользователя до пяти процентов:
sudo tune2fs -m 5 /dev/sda6
Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:
Изменить счетчик количества монтирований:
tune2fs -C 0 /dev/sda6
Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.
С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:
sudo tune2fs -O extents,uninit_bg,dir_index
После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.
sudo fsck -np /dev/sda6
Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.
Изменение размера файловой системы Linux
Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs - resize2fs.
Запустить утилиту очень просто. Ей нужно передать всего два параметра:
$ resize2fs [опции] устройство размер
Доступны также опции:
- -M уменьшить файловую систему до минимального размера
- -f - принудительное изменение, не смотря на потерю данных
- -F - очистить буфер файловой системы
Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.
Для примера уменьшим размер нашего раздела до 400 Мегабайт:
sudo resize2fs /dev/sda6 400M
Проверка файловой системы Linux
При неправильном отключении носителей или неожиданном отключении питания, файловая система Linux может быть повреждена. Обычно проверка корневой файловой системы и домашнего каталога на ошибки выполняется во время загрузки. Но если эта проверка не была выполнена или нужно поверить другой носитель, придется все делать вручную. Для этого есть утилита fsck.
Синтаксис fsck:
$ fsck [опции] устройство
Опции программы:
- -p - автоматическое восстановление
- -n - только проверка, без восстановления
- -y - ответить да на все запросы программы
- -с - проверить на битые сектора (аналог badblocks
- -f - принудительная проверка, даже если раздел помечен как чистый
- -j - внешний журнал файловой системы
Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:
sudo fsck -a /dev/sda6
Дефрагментация файловой системы
Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:
e4defrag /dev/sda6
Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:
В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 - нужна дефрагментация.
Выводы
В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!
Автор, исправьте ошибку: « набор команд из пакета e2progs.»
Пакет называется — " e2fsprogs "
Привет. Спасибо за статью, очень полезна.
Есть вопрос: после создания раздела и форматирования в ext4 (при помощи gparted) через файл менеджер нет доступа на запись. ОС elementry 6