Re: Kernel 4.14: Using dm-verity with squashfs rootfs - mounting issue
From: Mikulas Patocka
Date: Tue Jul 20 2021 - 07:46:11 EST
Try to set up dm-verity with block size 512 bytes.
I don't know what block size does squashfs use, but if the filesystem
block size is smaller than dm-verity block size, it doesn't work.
On Tue, 20 Jul 2021, Pintu Agarwal wrote:
> Our ARM32 Linux embedded system consists of these:
> * Linux Kernel: 4.14
> * Processor: Qualcomm Arm32 Cortex-A7
> * Storage: NAND 512MB
> * Platform: Simple busybox
> * Filesystem: UBIFS, Squashfs
> * Consists of nand raw partitions, squashfs ubi volumes.
> My requirement:
> We wanted to use dm-verity at boot time to check the integrity of
> squashfs-rootfs before mounting.
> dm-0 is not able to locate and mount the squash fs rootfs block.
> The same approach is working when emulating with ext4 but fails with squashfs.
> [ 0.000000] Kernel command line: [...] verity="96160 12020
> d7b8a7d0c01b9aec888930841313a81603a50a2a7be44631c4c813197a50d681 0 "
> rootfstype=squashfs root=/dev/mtdblock34 ubi.mtd=30,0,30 [...]
> root=/dev/dm-0 dm="system none ro,0 96160 verity 1 /dev/mtdblock34
> /dev/mtdblock39 4096 4096 12020 8 sha256
> [ 4.693620] vreg_conn_pa: disa▒[ 4.700662] md: Skipping
> autodetection of RAID arrays. (raid=autodetect will force)
> [ 4.700713] device-mapper: init: attempting early device configuration.
> [ 4.708224] device-mapper: init: adding target '0 96160 verity 1
> /dev/mtdblock34 /dev/mtdblock39 4096 4096 12020 8 sha256
> [ 4.714979] device-mapper: verity: sha256 using implementation
> [ 4.737808] device-mapper: init: dm-0 is ready
> [ 5.278103] No filesystem could mount root, tried:
> [ 5.278107] squashfs
> [ 5.280477]
> [ 5.287627] Kernel panic - not syncing: VFS: Unable to mount root
> fs on unknown-block(253,0)
> Not sure, why is it still locating block "253" here which seems like a
> MAJOR number ?
> Working logs on ext4:
> [ 4.529822] v▒[ 4.534035] md: Skipping autodetection of RAID
> arrays. (raid=autodetect will force)
> [ 4.534087] device-mapper: init: attempting early device configuration.
> [ 4.550316] device-mapper: init: adding target '0 384440 verity 1
> /dev/ubiblock0_0 /dev/ubiblock0_0 4096 4096 48055 48063 sha256
> aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 10
> restart_on_corruption ignore_zero_blocks use_fec_from_device
> /dev/ubiblock0_0 fec_roots 2 fec_blocks 48443 fec_start 48443'
> [ 4.572215] device-mapper: verity: sha256 using implementation
> [ 4.610692] device-mapper: init: dm-0 is ready
> [ 4.720174] EXT4-fs (dm-0): mounted filesystem with ordered data
> mode. Opts: (null)
> [ 4.720438] VFS: Mounted root (ext4 filesystem) readonly on device 253:0.
> [ 4.737256] devtmpfs: mounted
> a) Is dm-verity supposed to work on squashfs block devices ?
> b) Are there any known issues with dm-verity on Kernel 4.14 ?
> c) Are there any patches that we are missing ?