BTRFS critical: corrupt leaf / node checksum mismatch — Исправление ошибок Btrfs
Архитектура ошибки и симптомы сбоя
Сообщение «BTRFS critical: corrupt leaf / node checksum mismatch» означает, что встроенный механизм контроля целостности Btrfs зафиксировал повреждение данных (Silent Data Corruption / Bit Rot). Контрольная сумма прочитанного листа (leaf) или узла (node) дерева B-tree не совпадает со значением, вычисленным при записи. Файловая система блокирует доступ к поврежденному блоку во избежание распространения битых структур.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| leaf / node | B-tree Data Structures | Структуры хранения пользовательских данных или служебных метаданных Btrfs. |
| checksum mismatch | CRC32c / SHA256 / XXHASH | Хеш блока на диске не совпадает с контрольной суммой в заголовке. |
| Severity | Critical Corruption | Аппаратная деградация диска, памяти RAM или повреждение структуры ФС. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Запуск онлайн-исправления (Btrfs Scrub)
Если раздел работает в режиме RAID1/RAID10/DUP, Btrfs автоматически восстановит поврежденный блок из исправной зеркальной копии:
# Запуск проверки и автоматического исправления сбойных блоков:
sudo btrfs scrub start /mnt
# Мониторинг статуса проверки:
sudo btrfs scrub status /mntСценарий 2: Поиск поврежденных файлов по номеру иноды
# Поиск поврежденного файла по адресу bytenr из системного журнала:
sudo btrfs inspect-internal logical-resolve <BYTENR_FROM_DMESG> /mntУдалите поврежденный файл и восстановите его из резервной копии.
Сценарий 3: Очистка и пересборка кэша свободного пространства
# Монтирование с принудительной очисткой Free Space Tree:
sudo mount -o clear_cache,space_cache=v2 /dev/sda1 /mntITSTM выполнит комплексный аудит целостности томов, замену сбойных накопителей и восстановление консистентности кластеров хранения.
Частые вопросы (FAQ)
Почему Btrfs выдает ошибку Checksum Mismatch при чтении файла?
Btrfs хранит контрольные суммы каждого блока данных и метаданных. Если ячейка SSD деградировала или кабель исказил байты, ФС обнаруживает несовпадение хеша и блокирует чтение битого блока, возвращая ошибку EIO.
Может ли Btrfs исправить ошибку на одиночном диске (single profile)?
На одиночном диске (без DUP для метаданных) Btrfs может только обнаружить повреждение, но не восстановить его, так как резервная копия блока отсутствует. Метаданные с профилем DUP восстановить возможно.