Squashfs повредил данные

Squashfs повредил данные

Я создал squashfs из небольшого каталога rootfs для встроенных устройств:

mksquashfs rootfs_image rootfs.squashfs -b 1024k -comp xz -Xbcj x86

Мне удалось успешно скопировать этот squashfs во флэш-память NOR устройства и настроить загрузчик (U-boot) и ядро ​​для использования этого NOR в качестве корневой файловой системы.

Однако некоторые файлы хороши (т.е. я могу их пометить), а некоторые — нет!

Давайте рассмотрим это на конкретных примерах:

# cat /var/www/hello.html
# hi, hello
# head /lib/modules/3.10.14/rtl8189es.ko
[   21.940062] SQUASHFS error: xz_dec_run error, data probably corrupt
[   21.946652] SQUASHFS error: squashfs_read_data failed to read block 0x1b9f76
[   21.953963] SQUASHFS error: Unable to read fragment cache entry [1b9f76]
[   21.960960] SQUASHFS error: Unable to read page, block 1b9f76, size 3c9d8
... (last 2 lines are repeated for a while
head: rtl8189es.ko: Input/output error
#

В чем проблема и как ее решить? Есть ли простой способ проверить squashfs на предмет повреждения?

Обратите внимание, что файл squashfs не поврежден, так как его можно без проблем восстановить с помощью squashfs на хост-машине.

решение1

Я решил эту проблему, не используя сжатие xz:

mksquashfs rootfs_image rootfs.squashfs -b 1024k

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

Связанный контент