Программа fsck (расшифровывается как File System Consistency Check) используется для проверки и восстановления одной или нескольких файловых систем Linux.
Эта проверка запускается автоматически во время загрузки при обнаружении несоответствий в файловой системе.
Также, при необходимости, она может быть запущена вручную.
Вы можете использовать команду fsck для восстановления поврежденных файловых систем, когда система не загружается, или раздел не может быть смонтирован, или если он стал доступен только для чтения.
В этой статье мы рассмотрим, как использовать команду ‘fsck’ или ‘e2fsck’ в Linux для восстановления поврежденной файловой системы.
🗂️ Что такое Ext2, Ext3 и Ext4 и как создавать и конвертировать файловые системы Linux
Примечание:
Выполняйте fsck на немонтированной файловой системе, чтобы избежать повреждения данных в ФС.
Для больших файловых систем выполнение fsck может занять много времени в зависимости от скорости системы и размера диска.
Когда проверка файловой системы завершена, fsck возвращает один из следующих кодов завершения:
КОД ЗАВЕРШЕНИЯ | ОПИСАНИЕ |
---|---|
0 | Нет ошибок |
1 | Исправлены ошибки файловой системы |
2 | Система должна быть перезагружена |
4 | Ошибки файловой системы, оставленные без исправления |
8 | Операционная ошибка |
16 | Ошибка использования или синтаксиса |
32 | Проверка отменяется по запросу пользователя |
128 | Ошибка в общей библиотеке |
Общий синтаксис:
fsck [option] [device or partition or mount point]
Повреждение файловой системы EXT4
Мы намеренно повредим файловую систему EXT4, выполнив приведенную ниже команду.
Она удаляет случайно выбранные блоки метаданных файловой системы
Примечание: Пожалуйста, не тестируйте это на производственном сервере, так как это может сильно повредить ваши данные.
sudo umount /data
Повреждение файловой системы ext4.
sudo dd if=/dev/zero of=/dev/sdb1 bs=10000 skip=0 count=1 1+0 records in 1+0 records out 10000 bytes (10 kB, 9.8 KiB) copied, 0.00394663 s, 2.5 MB/s
Когда вы попытаетесь загрузить файловую систему, вы увидите следующее сообщение об ошибке, поскольку она была повреждена.
sudo mount /data mount: /data: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
Восстановление поврежденной файловой системы EXT4 и EXT3
Вы можете восстановить поврежденную файловую систему ext3 или ext4 в работающей системе Linux. fsck работает как обертка для команд fsck.ext3 и fsck.ext4.
Примечание: Если вы не можете размонтировать некоторые тома без рута из-за проблемы, загрузите систему в однопользовательский режим или режим rescue для восстановления.
Шаг-1: Размонтируйте устройство, на котором вы хотите запустить fsck.
sudo umount /dev/sdb1
Шаг-2: Запустите fsck для восстановления файловой системы:
sudo fsck.ext4 -p /dev/sdb1
-p : Автоматически устранить все проблемы, которые могут быть безопасно устранены без вмешательства пользователя.
Если вышеуказанный вариант не устраняет проблему, выполните команду fsck в следующем формате.
sudo fsck.ext4 -fvy /dev/sdb1 e2fsck 1.45.6 (20-Mar-2020) ext2fs_open2: Bad magic number in super-block fsck.ext4: Superblock invalid, trying backup blocks... Resize inode not valid. Recreate? yes Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Block bitmap differences: -65536 -65538 -(65541--65542) -(65546--65547) -(65549--65550) -(65555--65557) . . Fix? yes Free inodes count wrong for group #0 (8181, counted=8165). Fix? yes Free inodes count wrong (327669, counted=327653). Fix? yes Padding at end of inode bitmap is not set. Fix? yes /dev/sdb1: ***** FILE SYSTEM WAS MODIFIED ***** 27 inodes used (0.01%, out of 327680) 0 non-contiguous files (0.0%) 0 non-contiguous directories (0.0%) # of inodes with ind/dind/tind blocks: 0/0/0 Extent depth histogram: 19 43294 blocks used (3.30%, out of 1310464) 0 bad blocks 0 large files 16 regular files 2 directories 0 character device files 0 block device files 0 fifos 0 links 0 symbolic links (0 fast symbolic links) 0 sockets ------------ 18 files
Шаг-3: Как только файловая система будет восстановлена, смонтируйте раздел.
sudo mount /dev/sdb1
2) Восстановление тома LVM с помощью fsck
fsck можно запускать на логических томах LVM так же, как и на файловых системах стандартных разделов.
Для восстановления LVM-раздела следуйте приведенной ниже процедуре:
При необходимости вы также можете восстановить/восстановить том lvm вместо его ремонта.
Шаг-1: Убедитесь, что конкретный том LVM находится в активном состоянии для запуска fsck.
Чтобы проверить состояние LVM, выполните:
sudo lvscan inactive '/dev/myvg/vol01' [1.00 GiB] inherit ACTIVE '/dev/rhel/swap' [2.07 GiB] inherit ACTIVE '/dev/rhel/root' [<26.93 GiB] inherit
Если он “inactive
“, активируйте его, выполнив следующую команду.
sudo lvchange -ay /dev/myvg/vol01 -v Activating logical volume myvg/vol01. activation/volume_list configuration setting not defined: Checking only host tags for myvg/vol01. Creating myvg-vol01 Loading table for myvg-vol01 (253:2). Resuming myvg-vol01 (253:2).
Шаг-2: Размонтируйте устройство или файловую систему, на которой вы хотите запустить fsck.
sudo umount /dev/myvg/vol01
Шаг-3: Запустите fsck для восстановления файловой системы.
Для запуска fsck необходимо ввести путь к LVM-тому, а не к реальному физическому разделу.
sudo fsck.ext4 -fvy /dev/myvg/vol01 e2fsck 1.45.6 (20-Mar-2020) /dev/myvg/vol01: clean, 24/65536 files, 14094/262144 blocks
- -f : Принудительная проверка, даже если файловая система кажется чистой.
- -y : Предполагать ответ `yes’ на все вопросы; позволяет использовать e2fsck неинтерактивно.
- -v : Подробный режим
Шаг-4: Как только файловая система будет восстановлена, смонтируйте раздел.
sudo mount /apps
Заключение
В этом руководстве мы показали вам, как восстановить поврежденную файловую систему EXT4 в Linux.
Вы можете использовать ту же процедуру для EXT3 и других файловых систем.
Также мы показали, как запустить e2fsck на томах LVM.
Если у вас есть вопросы или замечания, не стесняйтесь оставлять комментарии.
см. также:
- 🐧 Как принудительно выполнить fsck при перезагрузке системы
- #️⃣ Как добавить зашифрованный жесткий диск на Linux
- 🛑 Команды Linux, которые вы никогда не должны запускать в своей системе
- 🐧 Советы по обеспечению безопасности сервера CentOS – часть 1
- 🐧 Проверка файловой системы Linux на наличие ошибок: команда FSCK с примерами
- 🐧 Как зашифровать каталоги с помощью eCryptfs на Linux