AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 670991
Accepted
A.B.
A.B.
Asked: 2015-09-07 08:24:53 +0800 CST2015-09-07 08:24:53 +0800 CST 2015-09-07 08:24:53 +0800 CST

通过 udev 忽略两个 USB 记忆棒的一个分区

  • 772

我有一个带有两个分区的 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"
15.04
  • 1 1 个回答
  • 986 Views

1 个回答

  • Voted
  1. Best Answer
    user.dz
    2015-09-10T04:06:16+08:002015-09-10T04:06:16+08:00
    • 最后,我在 VirtualBox 机器上设置了相同的环境 Ubuntu 15.04。

      ACTION=="add", ENV{ID_FS_UUID}=="bf50cb5d-60bf-44de-9a8f-1bf74850a5a1", ENV{UDISKS_IGNORE}="1"
      

      它像预期的那样完美地工作。

    • :DI 讨厌 3 位数字前缀100-(常见/标准是 2),所以我99-大部分时间都在使用 's。我以前从未尝试过,将其重命名为与您的相似:

      # mv /etc/udev/rules.d/99-sneetsher-tests.rules /etc/udev/rules.d/100-myusb-sneetsher-tests.rules
      

      瞧!现在它不起作用。

      该规则被其他规则覆盖,很确定系统规则来自/lib/udev/rules.d/

      您可以尝试列出所有规则文件,以检查:

      find /etc/udev/rules.d/ /lib/udev/rules.d/ -iname "*.rules" -printf "%f\n" | sort
      

      规则文件

      udev 规则是从位于系统规则目录 /lib/udev/rules.d、可变运行时目录 /run/udev/rules.d 和本地管理目录 /etc/udev/rules.d 中的文件读取的。所有规则文件都按词法顺序进行集体排序和处理,而不管它们所在的目录。但是,具有相同文件名的文件会相互替换。/etc 中的文件具有最高优先级,/run 中的文件优先于 /lib 中的同名文件。如果需要,这可用于使用本地文件覆盖系统提供的规则文件;/etc 中的符号链接与 /lib 中的规则文件同名,指向 /dev/null,完全禁用规则文件。规则文件的扩展名必须是 .rules;其他扩展被忽略。

      资源: man udev

    • 可能这是检查使用的最佳方法udevadm test <path>,例如:

      udevadm test /sys/devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/host9/target9:0:0/9:0:0:0/block/sdb/sdb2
      

      对两个名称100-myusb.rules&进行测试99-myusb.rules,您将看到规则文件读取的顺序以及触发的规则。

      参考: 触发了哪个udev规则?

    • 2

相关问题

  • ubuntu 15.04 显示问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve