我正在尝试编写一个 udev 规则,以便在可引导的情况下不安装插入系统的 USB 设备,但我不知道如何在 udev 中指定设备在规则中是否可引导。那可能吗?如果是这样,我的规则需要包含哪些内容?
需要明确的是,可启动是指该设备有一个可以在启动时启动的操作系统。
答案1
udev
向分区节点(叶节点)添加一些环境变量,包括 MBR 表的分区条目标志。可启动分区应该有ID_PART_ENTRY_FLAGS=0x80
。
尝试这个规则,你会看到所有环境变量(来源: 将 ATTR{idVendor} 作为 udev 脚本中的参数传递):
KERNEL="sd[a-z][1-9]", RUN+="/bin/sh -c 'echo == >> /home/username/Desktop/usb-storage.txt; env >> /home/username/Desktop/usb-storage.txt'"
在 Ubuntu 14.04 中适用于我的规则:
ACTION=="add", KERNEL=="sd[a-z][1-9]", ENV{ID_PART_ENTRY_FLAGS}=="0x80", RUN+="/bin/sh -c 'echo 0 > /sys%p/../../../../../../../authorized'"