From: Michael Prokop Date: Fri, 26 Jun 2020 17:07:31 +0000 (+0200) Subject: grml-udev-config.grml-forensic: also react to block device *changes* X-Git-Tag: v0.5.0~9 X-Git-Url: http://git.grml.org/?p=grml-udev-config.git;a=commitdiff_plain;h=4f6592884c730d7aeaad331c95b45c9a1b8455e9 grml-udev-config.grml-forensic: also react to block device *changes* When executing `partprobe /dev/sda`, then partitions are changed, removed and added again, while DISK_RO=0 is set on the main block device (/dev/sda): | % sudo udevadm monitor --property > udev-info | % grep -e KERNEL -e DISK_RO udev-info | KERNEL - the kernel uevent | KERNEL[7033.955480] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda1 (block) | KERNEL[7033.958758] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda2 (block) | KERNEL[7033.963743] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda3 (block) | KERNEL[7033.971321] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda (block) | KERNEL[7033.971569] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda1 (block) | KERNEL[7033.971745] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda2 (block) | KERNEL[7033.971918] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda3 (block) | KERNEL[7034.002552] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda (block) | KERNEL[7034.004249] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda1 (block) | KERNEL[7034.004446] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda2 (block) | KERNEL[7034.004631] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda3 (block) | KERNEL[7034.034068] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda (block) | KERNEL[7034.034228] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda1 (block) | KERNEL[7034.034378] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda2 (block) | KERNEL[7034.034516] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda3 (block) | KERNEL[7034.828780] remove /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda1 (block) | KERNEL[7034.829322] remove /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda2 (block) | KERNEL[7034.829622] remove /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda3 (block) | KERNEL[7034.829941] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda (block) | DISK_RO=0 | KERNEL[7034.830451] change /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda (block) | KERNEL[7034.830902] add /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda1 (block) | KERNEL[7034.831219] add /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda2 (block) | KERNEL[7034.839261] add /devices/pci0000:00/0000:00:0d.0/ata3/host4/target4:0:0/4:0:0:0/block/sda/sda3 (block) | DISK_RO=0 Explicitly pass block device name to the script, which should make usage of script as standalone tool better. @See grml-forensic/release-planning issue #155 This work was funded by Grml-Forensic. --- diff --git a/debian/grml-udev-config.grml-forensic.udev b/debian/grml-udev-config.grml-forensic.udev index db71dd0..30a166e 100644 --- a/debian/grml-udev-config.grml-forensic.udev +++ b/debian/grml-udev-config.grml-forensic.udev @@ -1,2 +1,4 @@ # mark new block devices as readonly when booting with bootoption forensic/readonly -ACTION=="add", SUBSYSTEM=="block", RUN+="/etc/udev/scripts/forensic-mark-readonly" +ACTION=="add", SUBSYSTEM=="block", RUN+="/etc/udev/scripts/forensic-mark-readonly $name" +# take care of devices when e.g. partition tables get re-read (see block/genhd.c + set_disk_ro() in linux source) +ACTION=="change", SUBSYSTEM=="block", ENV{DISK_RO}=="0", RUN+="/etc/udev/scripts/forensic-mark-readonly $name"