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
.
На данный момент это все! Ниже у нас есть коллекция соответствующих статей в разных категориях, которые вы найдете полезными.
Информация об использовании файловой системы:
- 12 полезных команд «df» для проверки дискового пространства в Linux
- Pydf — альтернативная команда «df» для проверки использования диска разными цветами
- 10 полезных команд du (Использование диска) для определения использования диска для файлов и каталогов
Проверьте состояние диска или раздела:
- 3 полезных инструмента для сканирования дисков Linux на основе графического интерфейса и терминала
- Как проверить поврежденные сектора или поврежденные блоки на жестком диске в Linux
- Как восстановить и дефрагментировать системные разделы и каталоги Linux
Поддержание работоспособности файловой системы всегда улучшает общую производительность вашей системы Linux. Если у вас есть какие-либо вопросы или дополнительные мысли, которыми вы можете поделиться, воспользуйтесь формой комментариев ниже.