Поиск по сайту:

4 инструмента для управления состоянием EXT2, EXT3 и EXT4 в Linux


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

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

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

Читайте также: 7 способов определить тип файловой системы в Linux (Ext2, Ext3 или Ext4)

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

В этой статье мы рассмотрим инструменты для мониторинга и поддержания работоспособности файловых систем ext2, ext3 и ext4. Все описанные здесь инструменты требуют привилегий пользователя root, поэтому для их запуска используйте команду sudo.

Как просмотреть информацию о файловой системе EXT2/EXT3/EXT4

dumpe2fs — это инструмент командной строки, используемый для создания дампа информации о файловой системе ext2/ext3/ext4. Это означает, что он отображает информацию о суперблоке и группе блоков для файловой системы на устройстве.

Прежде чем запускать dumpe2fs, обязательно запустите команду df -hT, чтобы узнать имена устройств файловой системы.

sudo dumpe2fs /dev/sda10
Пример вывода
dumpe2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x00580f0c
Journal start:            12055

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

dumpe2fs -b

Проверка файловых систем EXT2/EXT3/EXT4 на наличие ошибок

e2fsck используется для проверки файловых систем ext2/ext3/ext4 на наличие ошибок и проверок fsck, а также может при необходимости восстановить файловую систему Linux; по сути, это интерфейс для ряда предлагаемых средств проверки файловой системы (fsck.fstype, например fsck.ext3, fsck.sfx и т. д.) под Линуксом.

Помните, что Linux автоматически запускает e2fack/fsck при загрузке системы на разделах, которые помечены для проверки в файле конфигурации /etc/fstab. Обычно это делается после того, как файловая система не была полностью размонтирована.

Внимание: не запускайте e2fsck или fsck на смонтированных файловых системах; перед запуском всегда сначала отключайте раздел. эти инструменты на нем, как показано ниже.

sudo unmount /dev/sda10
sudo fsck /dev/sda10

Альтернативно, включите подробный вывод с помощью переключателя -V и используйте -t, чтобы указать тип файловой системы следующим образом:

sudo fsck -Vt ext4 /dev/sda10

Настройка файловых систем EXT2/EXT3/EXT4

Мы с самого начала упоминали, что одной из причин повреждения файловой системы является неправильная настройка. Вы можете использовать утилиту tune2fs для изменения настраиваемых параметров файловых систем ext2/ext3/ext4, как описано ниже.

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

sudo tune2fs -l /dev/sda10
Пример вывода
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

Далее, используя флаг -c, вы можете установить количество монтирований, после которых файловая система будет проверяться e2fsck. Эта команда предписывает системе запускать e2fsck для /dev/sda10 после каждого монтирования 4.

sudo tune2fs -c 4 /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

Вы также можете определить время между двумя проверками файловой системы с помощью опции -i. Следующая команда устанавливает интервал 2 дней между проверками файловой системы.

sudo tune2fs  -i  2d  /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

Теперь, если вы запустите эту команду ниже, интервал проверки файловой системы для /dev/sda10 будет установлен.

sudo tune2fs -l /dev/sda10
Пример вывода
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 13:49:50 2017
Mount count:              432
Maximum mount count:      4
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           172800 (2 days)
Next check after:         Tue Aug  2 16:19:36 2016
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

Чтобы изменить параметры ведения журнала по умолчанию, используйте опцию -J. У этой опции также есть подпараметры: size=journal-size (устанавливает размер журнала), device=external-journal (указывает устройство, на котором он хранится) и location=journal-location (определяет местоположение журнала).

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

sudo tune2fs -J size=4MB /dev/sda10

И последнее, но не менее важное: метку тома файловой системы можно установить с помощью параметра -L, как показано ниже.

sudo tune2fs -L "ROOT" /dev/sda10

Отладка файловых систем EXT2/EXT3/EXT4

debugfs — это простой интерактивный отладчик файловых систем ext2/ext3/ext4 на основе командной строки. Это позволяет вам изменять параметры файловой системы в интерактивном режиме. Чтобы просмотреть подкоманды или запросы, введите "?".

sudo debugfs /dev/sda10

По умолчанию файловая система должна открываться в режиме чтения-записи. Используйте флаг -w, чтобы открыть ее в режиме чтения-записи. Чтобы открыть его в катастрофическом режиме, используйте опцию -c.

Пример вывода
debugfs 1.42.13 (17-May-2015)
debugfs:  ?
Available debugfs requests:

show_debugfs_params, params
                         Show debugfs parameters
open_filesys, open       Open a filesystem
close_filesys, close     Close the filesystem
freefrag, e2freefrag     Report free space fragmentation
feature, features        Set/print superblock features
dirty_filesys, dirty     Mark the filesystem as dirty
init_filesys             Initialize a filesystem (DESTROYS DATA)
show_super_stats, stats  Show superblock statistics
ncheck                   Do inode->name translation
icheck                   Do block->inode translation
change_root_directory, chroot
....

Чтобы показать фрагментацию свободного пространства, используйте запрос freefrag, например так.

debugfs: freefrag
Пример вывода
Device: /dev/sda10
Blocksize: 4096 bytes
Total blocks: 86154752
Free blocks: 22387732 (26.0%)

Min. free extent: 4 KB 
Max. free extent: 2064256 KB
Avg. free extent: 2664 KB
Num. free extent: 33625

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :          4883          4883    0.02%
    8K...   16K-  :          4029          9357    0.04%
   16K...   32K-  :          3172         15824    0.07%
   32K...   64K-  :          2523         27916    0.12%
   64K...  128K-  :          2041         45142    0.20%
  128K...  256K-  :          2088         95442    0.43%
  256K...  512K-  :          2462        218526    0.98%
  512K... 1024K-  :          3175        571055    2.55%
    1M...    2M-  :          4551       1609188    7.19%
    2M...    4M-  :          2870       1942177    8.68%
    4M...    8M-  :          1065       1448374    6.47%
    8M...   16M-  :           364        891633    3.98%
   16M...   32M-  :           194        984448    4.40%
   32M...   64M-  :            86        873181    3.90%
   64M...  128M-  :            77       1733629    7.74%
  128M...  256M-  :            11        490445    2.19%
  256M...  512M-  :            10        889448    3.97%
  512M... 1024M-  :             2        343904    1.54%
    1G...    2G-  :            22      10217801   45.64%
debugfs:  

Вы можете изучить множество других запросов, таких как создание или удаление файлов или каталогов, изменение текущего рабочего каталога и многое другое, просто прочитав предоставленное краткое описание. Чтобы выйти из debugfs, используйте запрос q.

На данный момент это все! Ниже у нас есть коллекция соответствующих статей в разных категориях, которые вы найдете полезными.

Информация об использовании файловой системы:

  1. 12 полезных команд «df» для проверки дискового пространства в Linux
  2. Pydf — альтернативная команда «df» для проверки использования диска разными цветами
  3. 10 полезных команд du (Использование диска) для определения использования диска для файлов и каталогов

Проверьте состояние диска или раздела:

  1. 3 полезных инструмента для сканирования дисков Linux на основе графического интерфейса и терминала
  2. Как проверить поврежденные сектора или поврежденные блоки на жестком диске в Linux
  3. Как восстановить и дефрагментировать системные разделы и каталоги Linux

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