squashfs: decompression failed — Ошибка декомпрессии SquashFS в Linux
Архитектура ошибки и симптомы сбоя
Сообщение «squashfs: SQUASHFS error: zlib/xz decompression failed, data corrupted!» регистрируется драйвером сжатой файловой системы только для чтения SquashFS. Ошибка указывает на то, что алгоритм распаковки ядра (xz, zlib, zstd, lz4) не смог восстановить сжатый блок данных из-за несовпадения контрольных сумм или повреждения байтов. Это сигнализирует либо о физической деградации оперативной памяти (RAM Bit Flip), либо о повреждении образа ФС (Snap-пакета, Flatpak, Live-ISO, squashfs-контейнера) на диске.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| Decompression Algorithm | XZ / ZLIB / ZSTD | Библиотека распаковки сжатых блоков страниц внутри ядра. |
| Data Corrupted | CRC / Magic Mismatch | Байты блока в памяти или на диске не соответствуют заголовку сжатия. |
| Root Cause | Bad RAM / Bad Sector | 90% случаев — сбой ОЗУ (bit flip); 10% — повреждение файла squashfs на носителе. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Локализация поврежденного файла или Snap-пакета
Определите, какое именно блочное устройство SquashFS (loop-девайс) выдает ошибки:
# Поиск привязки loop-устройств к реальным файлам SquashFS:
losetup -a
# Проверка dmesg для нахождения номера сбойного loop (например, loop4):
dmesg -T | grep -B 2 "squashfs error"Сценарий 2: Переустановка поврежденного пакета Snap (Ubuntu)
Если сбой происходит внутри пакета Canonical Snap:
# Поиск имени пакета, привязанного к сбойному loop-устройству:
snap list
# Принудительное обновление и переустановка поврежденного snap:
sudo snap refresh --amend package_name || sudo snap remove package_name && sudo snap install package_nameСценарий 3: Аппаратное тестирование оперативной памяти хоста
Если ошибки декомпрессии SquashFS возникают спонтанно на разных файлах и ядрах:
# Запустите проверку памяти из пространства пользователя через memtester:
sudo apt-get install memtester || sudo dnf install memtester
sudo memtester 8G 2
# Либо запланируйте полный тест памяти через Memtest86+ в GRUB при перезагрузке.Сценарий 4: Верификация целостности ISO-образа / squashfs контейнера
# Проверка целостности SquashFS контейнера утилитой unsquashfs:
sudo unsquashfs -s /path/to/image.squashfs
sudo unsquashfs -d /tmp/test_extract /path/to/image.squashfs > /dev/nullITSTM выполнит аппаратную диагностику серверных модулей памяти ECC, аудит носителей и стабилизирует работу инфраструктуры.
Частые вопросы (FAQ)
Почему именно SquashFS первым выявляет ошибки битой оперативной памяти?
Сжатые алгоритмами XZ/Zlib архивы математически гиперчувствительны к искажению даже одного бита (Bit Flip). Если обычный текстовый файл при искажении бита просто теряет символ, то декомпрессор SquashFS мгновенно падает с ошибкой CRC/Magic mismatch.
Где активно используется файловая система SquashFS в современном Linux?
SquashFS повсеместно применяется в пакетах Canonical Snap (Ubuntu), инсталляторах LiveCD/LiveUSB, встроенных прошивках OpenWrt/роутеров, слоях контейнеров Singularity/Apptainer и образах initramfs.
Может ли разгон памяти (XMP) или перегрев вызывать эту ошибку?
Да. Нестабильные тайминги XMP профилей или перегрев планок серверной памяти без обдува вызывают спонтанные ошибки декомпрессии под нагрузкой I/O.
Как распаковать файл squashfs вручную для извлечения данных?
Используйте команду: unsquashfs -f -d /destination/folder /path/to/filesystem.squashfs.