Как проверить на ошибки lvm

Параметры fsck
Пример проверки диска на ошибки с помощью fsck
Запуск автоматической проверки и исправления найденных ошибок
Ручное добавление параметров в меню GRUB при загрузке ОС
Добавление параметров в меню GRUB с помощью утилиты grubby
Создание файла /forcefsck
Запуск проверки в ручном режиме
Использование загрузочного диска/flash для проверки файловой системы на ошибки
Проверка LVM-разделов с помощью утилиты fsck

В определенных случаях  (в результате сбоя или некорректного завершения работы)  на файловой системе могут накапливаться ошибки. В РЕД ОС для проверки файловой системы и исправления ошибок имеется утилита  fsck («file system consistency check»).

Инструмент fsck обладает следующим функционалом:

  • проверка файловой системы при возникновении проблем (не загружается система/поврежденные файлы) или в качестве профилактического обслуживания;

  • диагностика состояния внешних накопителей, таких как SD-карты или USB-накопители.

Базовый синтаксис соответствует следующему шаблону:

 fsck <опции> <файловая_система>

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

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

Параметры fsck

fsck –p – утилита автоматически исправит найденные ошибки.

Вывод аналогичен простой проверке.

fsck –с – проверка файловой системы на поврежденные сектора.

Для получения списка команд наберите fsck ––help или fsck –h.

Опция Описание
-a Устаревшая опция. Указывает исправлять все найденные ошибки без одобрения пользователя.
-r Применяется для файловых систем ext. Указывает fsck спрашивать пользователя перед исправлением каждой ошибки
-n Выполняет только проверку ФС, без исправления ошибок. Используется также для получения информации о ФС
-c Применяется для файловых систем ext3/4. Помечает все повреждённые блоки для исключения последующей записи в них
-f Принудительно проверяет ФС, даже если ФС исправна
-y Автоматически подтверждает запросы к пользователю
-b Задаёт адрес суперблока
-p Автоматически исправлять найденные ошибки. Заменяет устаревшую опцию -a
-A Проверяет все ФС
-С [<fd>] Показывает статус выполнения. Здесь fd – дескриптор файла при отображении через графический интерфейс
-l Блокирует устройство для исключительного доступа
-M Запрещает проверять примонтированные ФС
-N Показывает имитацию выполнения, без запуска реальной проверки
-P Проверять вместе с корневой ФС
-R Пропускает проверку корневой ФС. Может использоваться только совместно с опцией -A
-r [<fd>] Выводит статистику для каждого проверенного устройства
-T Не показывать заголовок при запуске
-t <тип> Задаёт ФС для проверки. Можно задавать несколько ФС, перечисляя через запятую
-V Выводит подробное описание выполняемых действий

Пример проверки диска на ошибки с помощью fsck

Запуск автоматической проверки и исправления найденных ошибок

Существует несколько способов запуска автоматической проверки на ошибки:

1. Ручное добавление параметров в меню GRUB при загрузке ОС.

2. Добавление параметров в меню GRUB с помощью утилиты grubby.

3. Создание файла /forcefsck.

1. Ручное добавление параметров в меню GRUB при загрузке ОС

Первый вариант проверки и  исправления ошибок на разделах жесткого диска.

В меню GRUB перейдите в режим редактирования загрузочной строки, нажав при этом клавишу e. Добавьте параметры:

fsck.mode=force fsck.repair=yes

в конец предпоследней строки.

Нажмите Ctrl+Х для запуска ОС с этими параметрами, во время запуска будет произведена проверка разделов диска, и при наличии ошибок произведено их исправление.

2. Добавление параметров в меню GRUB с помощью утилиты grubby

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

grubby --update-kernel /boot/vmlinuz-$(uname -r) --args="fsck.mode=force fsck.repair=yes"

Удалить установленные параметры можно следующей командой:

grubby --update-kernel /boot/vmlinuz-$(uname -r) --remove-args="fsck.mode=force fsck.repair=yes"

3. Создание файла /forcefsck

Бывают ситуации, когда систему необходимо проверить на наличие ошибок в незапланированный момент. Для этого можно принудительно запустить утилиту fsck для проверки при следующей перезагрузке. Запуск осуществляется командой:

sudo touch /forcefsck

Команда sudo (после ввода пароля) предоставит права для создания с помощью touch пустого файла в корне диска /forcefsck, который послужит сигналом (флагом) для fsck, что нужно проверить диски. 

Останется только перезагрузить компьютер и fsck начнет проверять все жесткие диски, указанные в /etc/fstab.

Запуск проверки в ручном режиме

Следующий метод относится к проверке диска, когда операционная система загружена в режиме single mode.

1. Запустим ОС в single mode, для этого пропишите в меню загрузки grub параметр init=/bin/bash в конце строки, которая начинается на linux16, см. рисунок.

Также данная строка может начинаться с linuxefi, этот параметр характерен для систем с загрузкой в UEFI. Нажмите «ctrl+x» для запуска с этим параметром(init=/bin/bash).

2. Запустите проверку выполнив команду:

/usr/sbin/fsck -ACVfyv

Во время проверки на экране появится отчет о выполненных операциях, если отчет длинный, то можно его можно пролистать вверх сочетанием клавиш shift+PageUp. После проверки дисков перезагрузите компьютер, нажав на кнопку на системном блоке.

Наглядное видео примера проверки диска на ошибки:

Использование загрузочного диска/flash для проверки файловой системы на ошибки.

Загрузившись в режим восстановления операционной системы РЕД ОС с помощью загрузочного диска или съемного накопителя с установленным образом операционной системы РЕД ОС. Выберите пункт: «Решение проблем» -> «Исправить установленную RED OS».

Система перезагрузится в режим восстановления. Введите «2» и нажмите 2 раза Enter. Так вы смонтируете операционную систему в режим «Только для чтения»

Для корректного отображения в терминале кириллических символов введите команду:

setfont cyr-sun16

Потом введите команду:

# сhroot /mnt/sysimage

После этого можете вводить fsck:

# fsck -ACVfyv

Если проверка завершится с такой ошибкой:

[путь_к_файловой_системе] is mounted

Введите:

umount [путь_к_файловой_системе]

И еще раз запустите утилиту fsck:

# fsck -ACVfyv
fsck from util-linux 2.30.2
…

Если система не выявит ошибок, то получится такой вывод:

[путь_к_файловой_системе] clean …

Чтобы выйти из режима восстановления, вы должны смонтировать все разделы, которые были отмонтированы командой umount, с помощью команды mount, нажать сочетание клавиш сtrl+d, а затем ввести команду reboot, которая перезапустит вашу операционную систему.

# reboot

По умолчанию, утилита fsck при проверке будет использовать разделы, указанные в /etc/fstab/, сформированные при установке операционной системы РЕД ОС.

Проверка LVM-разделов с помощью утилиты fsck

Перед проведением проверки необходимо найти устройство и размонтировать его.

Для просмотра всех подключенных устройств и проверки расположения диска выполните команду:

lsblk 

 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
 sda 8:0 0 20G 0 disk 
 ├─sda1 8:1 0 1G 0 part /boot
 └─sda2 8:2 0 19G 0 part 
 ├─ro_redos-root 253:0 0 17G 0 lvm /
 └─ro_redos-swap 253:1 0 2G 0 lvm [SWAP]
 sr0 11:0 1 4,3G 0 rom /run/media/user/redos-MUROM-7.3.1 x86_64

При попытке запустить проверку на смонтированном диске или разделе в консоли появляется предупреждение о том, что невозможно продолжить проверку, так как диск смонтирован.

fsck -nf /dev/ro_redos/root 

 fsck из util-linux 2.37.3
 e2fsck 1.44.6 (5-Mar-2019)
 Warning! /dev/mapper/ro_redos-root is mounted.

Для того чтобы размонтировать диск, следует использовать команду:

umount <файловая_система>

Однако попытка выполнить данную процедуру на работающей ОС ни к чему не приведет.

umount /dev/ro_redos/root 

 umount: /: target is busy.

Также проблемой при попытке проверить LVM-разделы может быть и то, что они являются не активными. Для проверки следует использовать команду:

lvscan 

 ACTIVE            '/dev/ro_redos/swap' [2,00 GiB] inherit
 ACTIVE            '/dev/ro_redos/root' [<17,00 GiB] inherit

Для активации раздела служит команда:

vgchange –ay <раздел>

Таким образом, можно сделать вывод, что проверка LVM-разделов через консоль с использованием утилиты fsck невозможна. Но это не значит, что LVM-разделы совсем не подлежат проверке. Существует как минимум два способа, позволяющие провести диагностику LVM-разделов. 

Первым способом является проведение проверки через консоль загрузчика операционной системы GRUB.

А вторым — запуск утилиты fsck в live-сессии системы.

Очевидным плюсом при проверке дисковых пространств, в том числе LVM-разделов, через live-сессию является то, что разделы там по умолчанию являются не смонтированными. Поэтому проверка LVM-раздела будет выполнена с первого раза.

Дата последнего изменения: 18.01.2023

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

pvck can check LVM metadata, after that consistency is the job of the filesystem. LVM is only about volume management so it doesn’t need to care if the space constituting a particular extent is bad since higher level software catches those issues. LVM metadata only takes up the first (optionally also the last sector) of the physical volume anyways.

If just the first and last sectors of a reasonably large PV (such as you’d see in production) just happen to fail simultaneously, you basically have the sh*ttiest luck in the world since that’s so astronomically unlikely. Otherwise, if the admin knows multiple sectors of the drive have been failing, most people are alright with just filing such things as this under «hard drive failed permanently and needs to be replaced.»

If pvck returns an error, you can check to see if your LVM metadata is backed up in /etc/lvm somewhere. If it is you can do pvcreate specifying the backup copy to --restorefile

Syntax:

pvcreate --uuid "<UUID-of-target-PV>" --restorefile <Path-To-Metadata-Backup-File> <path-to-PV-block-device>

Example:

pvcreate --uuid "2VydVW-TNiN-fz9Y-ElRu-D6ie-tXLp-GrwvHz" --restorefile /etc/lvm/archive/vg_raid_00000-1085667159.vg /dev/sda2 

If the restore doesn’t work (for example, if the first sector is bad) you can re-do the above, but set --metadatacopies 2 (or you might just go straight to doing that) which will attempt to write the metadata to the first and last sectors on the PV. When pvscan does its thing on boot it will check both places and if it finds metadata it will verify them against a checksum. If the checksum fails on the first sector but succeeds on the last sector you’ll get a non-fatal error message.

Kind of manual and a pain, but then again this is part of the reason why people are excited to get a volume management redux with BTRFS. Most of the time it’s not really that much of an issue for the reasons derobert mentioned, and because the people who absolutely positively need to ensure continuity of data will usually do RAID and have a backup strategy.

Thank you for reading this post, don’t forget to subscribe!

одна­жды поло­ма­лась фай­ло­вая систе­ма, ось не хоте­ла гру­зить­ся, пздц поду­ма­лось сна­ча­ла, но потом нача­ли вос­ста­нав­ли­вать. С обыч­ны­ми раз­де­ла­ми обыч­но все понят­но, запускаем:
fsck -y /dev/sdX1.

В дан­ном же слу­чае были LVM разделы.В дан­ной ситу­а­ции необ­хо­ди­мо под­клю­чить сам LVM раз­дел, а потом уже начать его проверку.

Под­клю­ча­ем любой линук­со­вый лайв образ, гру­зим­ся в rescue режи­ме и понеслась:
rescue:~# lvm pvscan
rescue:~# lvm vgscan
rescue:~# lvm lvchange -ay /dev/VolGroup0/LogVo0
rescue:~# lvm lvscan
ACTIVE ‘/dev/VolGroup0/LogVol0’ [100.0 GB]
inactive ‘/dev/VolGroup0/LogVol0’ [10.0 GB]
rescue:~# fsck -yfv /dev/VolGroup0/LogVol0
После завер­ше­ния про­вер­ки пере­за­гру­жа­ем сервер.

https://github.com/midnight47/

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

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

Для проверки разделов жесткого диска рекомендуем использовать утилиту FSCK (file system consistency check), поскольку утилита FSCK предустановленна на большинстве операционных систем семейства Linux.

Важно! Запуск и выполнение FSCK на смонтированной файловой системе может привести к повреждению данных, поэтому используйте данный материал на свой страх и риск. Автор не несет ответственности за любой ущерб, который вы можете причинить.

Для того, чтобы обезопасить себя необходимо:

  • Перейти в однопользовательский режим (Single user mode) и размонтировать файловую систему
  • Загрузить компьютер в режиме восстановления с помощью установочного компакт-диска

Итак, необходимо проверить диски и исправить ошибки файловой системы, приступим.

1) Single user mode

Измените уровень инициализации и размонтируйте файловую систему:

# init 1
# umount /home

Выполните поиск подключенных разделов:

# fdisk -l

После этого запустите FSCK для раздела с ошибками:

# fsck /dev/sda1

2) Режим восстановления с установочного компакт-диска

Вставьте установочный компакт-диск в дисковод и перезагрузите систему:

# reboot

Подождите некоторое время и после загрузки с установочного компакт-диска выполните команду:

# linux rescue nomount

Директива NOMOUNT запретит монтирование, так что вы сможете безопасно использовать FSCK.

После этого запустите FSCK для раздела с ошибками:

# fsck -yvf /dev/sda1

LVM (Logical Volume Manager)

Ситуация с LVM (Logical Volume Manager) разделами немного сложнее. Для запуска FSCK для LVM разделов сначала необходимо найти PV (Physical Vollume), VG (Volume Group), LV (Logical Extension) и активировать их, для этого выполните последовательно следующие команды:

# lvm pvscan
# lvm vgscan
# lvm lvchange -ay VolGroup00
# lvm lvscan

# fsck -yfv /dev/VolGroup00/LogVol00

По факту выполнения FSCK вернет результат в виде кода, данный код — это уникальный номер, представляющей сумму следующих значений:

0 — Без ошибок (No errors);
1 — Исправлены ошибки файловой системы (Filesystem errors corrected);
2 — Система должна быть перезагружена (System should be rebooted);
4 — Ошибки файловой системы оставили без изменений (Filesystem errors left uncorrected);
8 — Эксплуатационная ошибка (Operational error);
16 — Ошибки при использовании или синтаксические ошибки (Usage or syntax error);
32 — Fsck отменен по запросу пользователя (Fsck canceled by user request);
128 — Ошибка общей библиотеки (Shared-library error).

На этом все. Таким несложным образом вы можете проверить диски на наличие ошибок в файловой системе и исправить эти ошибки в случае их наличия.

Для начала посмотрим расположение нашего диска с помощью lsblk:

# lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sdg                         8:96   1 14.3G  0 disk 
├─sdg1                      8:97   1  512M  0 part /boot/efi
└─sdg2                      8:98   1 13.8G  0 part /
sdh                         8:112  0 29.8G  0 disk 
├─sdh1                      8:113  0  512M  0 part 
├─sdh2                      8:114  0    1G  0 part 
└─sdh3                      8:115  0 28.3G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   20G  0 lvm  

Как видим, LVM называется ubuntu—vg-ubuntu—lv, но мы не можем запустить fsck с этим именем, так как он его не найдет. Нам нужно получить полное имя. Для этого запустим команду lvm ​​lvscan, чтобы получить имя LV, чтобы мы могли запустить fsck на LVM.

# lvscan
  ACTIVE            '/dev/ubuntu-vg/ubuntu-lv' [20.00 GiB] inherit

Как видим, наше имя для проверки — /dev/ubuntu-vg/ubuntu-lv

Если вместо статуса ACTIVE указано inactive, то нужно его активировать командой:

# lvchange -ay /dev/ubuntu-vg/ubuntu-lv

Теперь можно запустить fsck на томе LVM.

# fsck /dev/ubuntu-vg/ubuntu-lv

или запустим сразу принудительную проверку с подтверждениями:

# fsck -fy /dev/mapper/ubuntu--vg-ubuntu--lv
fsck from util-linux 2.34
e2fsck 1.45.5 (07-Jan-2020)
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
/dev/mapper/ubuntu--vg-ubuntu--lv: 123920/1310720 files (0.2% non-contiguous), 2432794/5242880 blocks

  • Как проверить материнскую плату на наличие ошибок
  • Как проверить монитор на ошибки
  • Как проверить материнку на ошибки
  • Как проверить мас на ошибки
  • Как проверить макбук на наличие ошибок