我有一个带有两个分区的 USB 记忆棒。插入棒后,我使用以下命令查找设备。
dmesg
示例输出
[11195.236020] usb 2-2: new high-speed USB device number 9 using ehci-pci
[11195.375432] usb 2-2: New USB device found, idVendor=058f, idProduct=6387
[11195.375436] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[11195.375439] usb 2-2: Product: Mass Storage
[11195.375441] usb 2-2: Manufacturer: Generic
[11195.375444] usb 2-2: SerialNumber: 605DD851
[11195.375968] usb-storage 2-2:1.0: USB Mass Storage device detected
[11195.376732] scsi host10: usb-storage 2-2:1.0
[11196.377830] scsi 10:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 4
[11196.378159] sd 10:0:0:0: Attached scsi generic sg3 type 0
[11196.379647] sd 10:0:0:0: [sdc] 15769600 512-byte logical blocks: (8.07 GB/7.51 GiB)
[11196.381548] sd 10:0:0:0: [sdc] Write Protect is off
[11196.381552] sd 10:0:0:0: [sdc] Mode Sense: 23 00 00 00
[11196.383579] sd 10:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[11196.390454] sdc: sdc1 sdc2
[11196.394696] sd 10:0:0:0: [sdc] Attached SCSI removable disk
因此,我的设备是/sdc
,我的分区/dev/sdc1
和/dev/sdc2
我使用这两个命令来获取他们的 UUID
udevadm info /dev/sdc1 | grep ID_FS_UUID=
示例输出
E: ID_FS_UUID=dbf323e9-8d63-444c-9c11-76b9b9a0fed4
和
udevadm info /dev/sdc2 | grep ID_FS_UUID=
示例输出
E: ID_FS_UUID=0eeb7004-8955-4358-a205-07d7376adb8c
dbf323e9-8d63-444c-9c11-76b9b9a0fed4
因此我的UUID 是0eeb7004-8955-4358-a205-07d7376adb8c
或每个分区
/dev/sdc1
>> dbf323e9-8d63-444c-9c11-76b9b9a0fed4
/dev/sdc2
>> 0eeb7004-8955-4358-a205-07d7376adb8c
现在我创建了一个文件/etc/udev/rules.d/100-myusb.rules
sudo nano /etc/udev/rules.d/100-myusb.rules
并添加了以下规则
KERNEL=="sd??", ENV{ID_FS_UUID}=="0eeb7004-8955-4358-a205-07d7376adb8c", ENV{UDISKS_IGNORE}="1"
并重新启动udev
sudo service udev restart
但是再次插入棒后,两个分区都显示为FilesakaNautilus
我做错了什么?
编辑所以 2015 年 9 月 6 日 21:07:50 CEST
规则
KERNEL=="sd??", ENV{ID_FS_UUID}=="0eeb7004-8955-4358-a205-07d7376adb8c", RUN+="/bin/mkdir /tmp/folder1"
创建文件夹/tmp/folder1
对于@Sneetsher
KERNEL=="sd??", ENV{ID_FS_UUID}=="0eeb7004-8955-4358-a205-07d7376adb8c", RUN+="/usr/bin/env > /tmp/udev-partition-env.log"
有效,但输出文件是env_root.output
?o_O
编辑 Mo 7. Sep 20:31:06 CEST 2015
经过测试但不起作用
KERNEL=="sd??", ENV{ID_FS_UUID}=="0eeb7004-8955-4358-a205-07d7376adb8c", ENV{UDISKS_AUTO}="0", ENV{UDISKS_SYSTEM}="0"
和
KERNEL=="sd??", ENV{ID_FS_UUID}=="0eeb7004-8955-4358-a205-07d7376adb8c", ENV{UDISKS_AUTO}="0"
最后,我在 VirtualBox 机器上设置了相同的环境 Ubuntu 15.04。
它像预期的那样完美地工作。
:DI 讨厌 3 位数字前缀
100-
(常见/标准是 2),所以我99-
大部分时间都在使用 's。我以前从未尝试过,将其重命名为与您的相似:瞧!现在它不起作用。
该规则被其他规则覆盖,很确定系统规则来自
/lib/udev/rules.d/
您可以尝试列出所有规则文件,以检查:
资源:
man udev
可能这是检查使用的最佳方法
udevadm test <path>
,例如:对两个名称
100-myusb.rules
&进行测试99-myusb.rules
,您将看到规则文件读取的顺序以及触发的规则。参考: 触发了哪个udev规则?