Integrity Setup - dm-integrity standalone mode 2023/06/29 Ami Sapphire -- integritysetup format -B -I crc32c -s 512 -t 4 /dev/sdX OR integritysetup format -B -I crc32c -s 4096 -t 4 /dev/sdX OR integritysetup format -B -I sha1 -s 512 -t 20 /dev/sdX OR integritysetup format -B -I sha1 -s 4096 -t 20 /dev/sdX then integritysetup open -B -I crc32c /dev/sdX mdX-idY OR integritysetup open -B -I sha1 /dev/sdX mdX-idY then mdadm --create /dev/mdX --level=1 --raid-devices=2 /dev/mapper/mdX-idY /dev/mapper/mdX-idZ OR mdadm --create /dev/mdX --level=5 --raid-devices=4 /dev/mapper/mdX-idA /dev/mapper/mdX-idB /dev/mapper/mdX-idC /dev/mapper/mdX-idD then mkfs.ext4 /dev/mdX -- check if device is integrity capable ls /sys/block/sdX/integrity/ ls /sys/block/dm-X/integrity/ ls /sys/block/mdX/integrity/ example results device_is_integrity_capable format protection_interval_bytes read_verify tag_size write_generate dmsetup info /dev/mapper/mdX-idY dmsetup info /dev/mapper/mdX-idZ Name: mdX-idY State: ACTIVE Read Ahead: 256 Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 253, 0 Number of targets: 1 UUID: CRYPT-INTEGRITY-mdX-idY -- create integritysetup.sh in /usr/local/bin with the following [Note: these dm-integrity units do not have a UUID, so disk ID (WWN or serial number) is the only reliable trait so far] #!/bin/bash # open device mapper targets integritysetup open -B -I [algo] /dev/disk/by-id/[ata-disk-id] mdX-idY integritysetup open -B -I [algo] /dev/disk/by-id/[ata-disk-id] mdX-idZ -- Needs execute flags, so run this command: chmod 777 /usr/local/bin/integritysetup.sh -- create integritysetup.service in /etc/systemd/system with the following [Unit] DefaultDependencies=no Before=mdmonitor.service [Service] ExecStart=/usr/local/bin/integritysetup.sh [Install] WantedBy=default.target -- then run this command systemctl enable integritysetup.service -- reboot system to test