Squashfs corrupted data

0

I've created a squashfs from a small rootfs directory for emebedded devices:

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

I've successfully copied this squashfs into the device's NOR flash and setup the bootloader (U-boot) and the kernel to use this NOR as the rootfs.

However, some files are good (i.e. I can cat them), but some are not!

Let's see these in concrete examples:

# 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
#

What is the problem here and how can I solve it? Is there any easy way to check a squashfs if it's corrupted?

Please note that the squashfs file is not corrupted, as it can be unsquashfs-ed on the host machine without any problems.

Daniel

Posted 2019-10-17T19:59:25.550

Reputation: 139

Answers

0

I solved this by not using the xz compression:

mksquashfs rootfs_image rootfs.squashfs -b 1024k

This way the squashfs is still compressed but by gzip which seems more appropriate for my device.

Daniel

Posted 2019-10-17T19:59:25.550

Reputation: 139