Эта статья объясняет, как выполнить ручную проверку файловой системы и как активировать автоматическую проверку файловой системы для систем Linux и Windows.
Введение
Файловые системы организуют хранение данных, но в некоторых случаях файловая система может быть повреждена, и определенные ее части могут стать недоступными. Это может вызвать предупреждения или система может начать вести себя “странным” образом, например, когда процессы завершаются, и программное обеспечение больше не запускается. В этом случае необходимо проверить целостность файловой системы.
Проверка файловой системы Linux (FSCK)
Сначала вы должны идентифицировать файловые системы и их разделы на вашей системе, выполнив команду lsblk
.
Если вывод выглядит подобно приведенному ниже, и в столбце TYPE
есть записи RAID
, то у вас запущено программное RAID. Вы должны проверить все разделы md
; в этом примере это md0
, md1
и md2
:
root@your_host ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 1 loop
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 4G 0 part
│ └─md0 9:0 0 4G 0 raid1
├─sda2 8:2 0 512M 0 part
│ └─md1 9:1 0 511.4M 0 raid1
└─sda3 8:3 0 442.6G 0 part
└─md2 9:2 0 442.5G 0 raid1
sdb 8:16 0 447.1G 0 disk
├─sdb1 8:17 0 4G 0 part
│ └─md0 9:0 0 4G 0 raid1
├─sdb2 8:18 0 512M 0 part
│ └─md1 9:1 0 511.4M 0 raid1
└─sdb3 8:19 0 442.6G 0 part
└─md2 9:2 0 442.5G 0 raid1
Если вывод выглядит более подобным приведенному ниже, здесь нет программного RAID, и вы должны проверить разделы sda1
, sda2
, sda3
и sdb1
в этом примере:
root@your_host ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4G 1 loop
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 4G 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 442.6G 0 part
sdb 8:16 0 447.1G 0 disk
└─sdb1 8:17 0 446G 0 part
Отображение информации о проверке файловой системы
Используйте следующую команду, чтобы проверить, когда в последний раз выполнялась проверка файловой системы, и находится ли она уже в режиме автоматической проверки:
tune2fs -l /dev/<РАЗДЕЛ> | grep -i 'mounted|last checked|interval'
Для каждого раздела просто замените заполнитель <РАЗДЕЛ>
именами ваших разделов и выполните команды одну за другой. В этом примере для раздела md2
:
tune2fs -l /dev/md2 | grep -i 'mounted|last checked|interval'
Last mounted on: /
Last checked: Tue Feb 13 11:52:32 2020
Check interval: 0 (<none>) # Означает, что автоматический режим отключен
Автоматическая проверка файловой системы
Прежде чем активировать периодическую проверку файловой системы, подумайте об этом: проверка будет автоматически выполняться во время некоторых будущих перезапусков. Это может увеличить время загрузки и время простоя вашего сервера. Таким образом, в некоторых случаях вместо этого вы можете выполнять ручные проверки файловой системы через определенные интервалы времени.
Чтобы активировать автоматическую проверку файловой системы, используйте следующие две команды:
tune2fs -c <BOOT_COUNT> /dev/<РАЗДЕЛ>
tune2fs -i <MIN_TIME_BETWEEN> /dev/<РАЗДЕЛ>
В этих командах просто замените:
<BOOT_COUNT>
на количество раз, которое прошла система между проверками<РАЗДЕЛ>
на имя раздела<MIN_TIME_BETWEEN>
на минимальное время между проверками
Например, проверьте раздел md2
каждые 3
загрузки с минимальным временем между ними в 1 месяц
:
tune2fs -c 3 /dev/md2
tune2fs -i 1m /dev/md2
Вы можете повторить эти две команды для всех ваших разделов.
Ручная проверка файловой системы
Вы можете запустить ручную проверку файловой системы с использованием утилиты системы, называемой fsck
(проверка целостности файловой системы). Вы можете выполнять проверку файловой системы только для размонтированных разделов, поэтому мы рекомендуем вам загрузить систему Rescue. Если у вас есть тома LVM, это не всегда требуется — в этой ситуации переходите к следующему разделу.
После входа в систему Rescue, воспользуйтесь следующей командой для запуска проверки с автоматическим восстановлением:
fsck -fy /dev/<РАЗДЕЛ>
В этой команде замените <РАЗДЕЛ>
именами разделов, которые вы хотите проверить, шаг за шагом, как в этом примере:
fsck -fy /dev/md0
fsck -fy /dev/md1
fsck -fy /dev/md2
Затем вывод сообщит вам о состоянии вашей файловой системы и перечислит любые действия, предпринятые для ее восстановления.
Ручная проверка файловой системы при использовании LVM
Если вы используете LVM (Logical Volume Manager), вы можете создать снимок. Так что вам не нужно размонтировать файловую систему во время проверки. И в определенных случаях вам не нужно загружать систему Rescue.
- Вам нужно размонтировать файловую систему на короткое время, чтобы создать временный том-снимок:
umount /dev/<группа_томов>/<том> ИЛИ umount <точка_монтирования>
Если вывод сообщает, что устройство в данный момент используется, вам может потребоваться выявить и остановить конкретные процессы или выйти из системы:
umount /dev/vg0/data umount: /dev/vg0/data: устройство занято. (В некоторых случаях вы можете получить полезную информацию о процессах, использующих устройство, с помощью lsof(8) или fuser(1).)
- Если это невозможно (например, с корневой файловой системой), вам нужно выполнить загрузку в Rescue System, чтобы выполнить проверку файловой системы.
- После успешного отмонтирования тома вы можете создать том снимка:
lvcreate -s -n <snapshot_name> -L <snapshot_size> /dev/<volume_group>/<volume>
Важно: Пожалуйста, убедитесь, что размер снимка не полностью заполнен во время проверки файловой системы. Рекомендуется установить размер снимка немного больше, чем вам действительно нужно.
Пример:lvcreate -s -n my_fsck_snapshot -L 30G /dev/vg0/data
- Теперь примонтируйте правильную файловую систему:
mount /dev/<volume_group>/<volume> <mountpoint>
Пример:
mount /dev/vg0/data /media/data
- После этого вы можете начать проверку файловой системы на томе снимка, как на обычном разделе:
fsck -fy /dev/<volume_group>/<snapshot_name>
Пример:
fsck -fy /dev/vg0/my_fsck_snapshot
- Наконец, удалите временно созданный том снимка:
lvremove -f /dev/<volume_group>/<snapshot_name>
Пример:
lvremove -f /dev/vg0/my_fsck_snapshot
Если нет необходимости держать том примонтированным во время проверки файловой системы, или если вы загрузили сервер в Rescue System, вы можете просто выполнить проверку файловой системы на (непримонтированном) томе:
fsck -fy /dev/<volume_group>/<volume>
Пример:
fsck -fy /dev/vg0/data
Проверка файловой системы Windows (CHKDSK)
Автоматическая проверка файловой системы
Иногда Windows автоматически запускает сканирование файловой системы при запуске. Однако обычно вам придется сделать это самостоятельно, особенно в среде сервера, где система редко перезапускается. Даже если у вас возникли странные проблемы с загрузкой или сбоями приложений, которые вы не смогли решить иным способом, рекомендуется провести проверку файловой системы вручную.
Ручная проверка файловой системы
Вы можете запустить проверку файловой системы с помощью Windows Explorer, но более простым методом является использование командной строки. Если ваша система больше не загружается, вы можете запросить образ восстановления Windows в службе поддержки. Однако если вы находитесь в загруженной системе Windows, откройте командную строку с правами администратора:
- Щелкните на
значке Windows
в левом нижнем углу или нажмите клавишиWindows
илиSuper
. - Введите
cmd.exe
. - Нажмите клавиши
Ctrl
+Shift
+Enter
одновременно, чтобы открыть командную строку с правами администратора. - Подтвердите отображаемый диалог, щелкнув
Да
. - Командная строка должна открыться, и ее заголовок должен начинаться с “Администратор”:
- В приглашении введите следующую команду и нажмите
Enter
:chkdsk C: /f /r /x
Если вы выполнили команду в работающей системе, нормально увидеть следующее сообщение:
В этом случае нажмитеY
иEnter
. Важное замечание: Проверка файловой системы может занять довольно много времени (от нескольких минут до нескольких часов). Поэтому рекомендуется подождать до необходимой перезагрузки, которая запускает проверку файловой системы, пока у вас есть возможность допустить более длительное время простоя сервера. - Затем перезагрузите сервер по вашему усмотрению.
- Проверка файловой системы теперь протестирует целостность вашей файловой системы и автоматически исправит проблемы:
- После завершения проверки файловой системы ваша установленная система должна загрузиться и снова стать доступной.
Если у вас есть более одного раздела с FAT, ExFAT или NTFS, вы можете повторить процедуру CHKDSK с оставшимися разделами. Для этого откройте проводник Windows и щелкните “Компьютер” в левом столбце. Там отобразятся эти разделы с их идентификаторами (например, C:
D:
E:
…). Если вы уже проверили C:
, просто повторите процедуру с оставшимися буквами дисков, заменив идентификатор диска в вышеупомянутой команде:
chkdsk D: /f /r /x
chkdsk E: /f /r /x
...
Более подробную информацию можно найти в документации Microsoft.
Для восстановления томов ReFS в Windows можно использовать ReFSUtil.
Если у вас по-прежнему возникают проблемы после восстановления всех ваших файловых систем, вы также можете попробовать System File Checker SFC.exe
. Есть также руководство по этому адресу: документация Microsoft.