測試環境為 Ubuntu16.04 x86_64
在使用 udevadm (以前會透過 #udevinfo) 之前先來了解一下什麼是 sysfs 與 udev?
核心 2.6 後的新檔案系統 sysfs,裝置名稱還是存放在 /dev/ 目錄下但是多了一個 /sys/ 的目錄 (該目錄是可瀏覽的),裡面存放當前硬體相對應的基本資訊.udev 則是透過 /sys/ 目錄的資訊創建出相對應的硬體設備節點 /dev/.
udev 則是管理目錄 /dev 的新方法,傳統的方式需要在 /dev/ 預先產生可能用不到的裝置名稱,udev 主要是依賴於 sysfs 提供的資訊與用戶提供的規則(Rule) 來創建相對應於系統中存在的 /dev 設備節點名稱.
更多關於 sysfs 與 udev 請參考 https://benjr.tw/10632
但直接看這些檔案很累人,這些詳細的資訊都可以透過指令 #udevadm 來查詢.
直接來看看 #udevadm 的參數說明.
udevadm - udev management tool SYNOPSIS udevadm [--debug] [--version] [--help] udevadm info options udevadm trigger [options] udevadm settle [options] udevadm control command udevadm monitor [options] udevadm test [options] devpath udevadm test-builtin [options] command devpath
test
模擬指定裝置 udev event 的運行 ,並顯示其測試結果.
首先會去讀取所有的 rules ,並執行與該裝置相符合的 rules ,並顯示其結果與 info .
root@ubuntu:~# udevadm test /sys/block/sdb calling: test version 229 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. === trie on-disk === tool version: 229 file size: 7058303 bytes header size 80 bytes strings 1762191 bytes nodes 5296032 bytes Load module index timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. timestamp of '/etc/udev/rules.d' changed timestamp of '/lib/udev/rules.d' changed Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /lib/udev/rules.d/40-crda.rules Reading rules file: /lib/udev/rules.d/40-i2c-tools.rules Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules Reading rules file: /lib/udev/rules.d/50-apport.rules Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules Reading rules file: /lib/udev/rules.d/50-firmware.rules Reading rules file: /lib/udev/rules.d/50-udev-default.rules Reading rules file: /lib/udev/rules.d/56-hpmud.rules Reading rules file: /lib/udev/rules.d/60-block.rules Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules Reading rules file: /lib/udev/rules.d/60-drm.rules Reading rules file: /lib/udev/rules.d/60-evdev.rules Reading rules file: /lib/udev/rules.d/60-gnupg.rules Reading rules file: /lib/udev/rules.d/60-gnupg2.rules Reading rules file: /lib/udev/rules.d/60-inputattach.rules Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules Reading rules file: /lib/udev/rules.d/60-libsane.rules Reading rules file: /lib/udev/rules.d/60-open-vm-tools.rules Reading rules file: /lib/udev/rules.d/60-pcmcia.rules Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules Reading rules file: /lib/udev/rules.d/60-persistent-input.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules Reading rules file: /lib/udev/rules.d/60-serial.rules Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules Reading rules file: /lib/udev/rules.d/64-btrfs.rules Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules Reading rules file: /lib/udev/rules.d/66-snapd-autoimport.rules Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules Reading rules file: /lib/udev/rules.d/69-libmtp.rules Reading rules file: /lib/udev/rules.d/69-wacom.rules Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules Reading rules file: /lib/udev/rules.d/70-mouse.rules Reading rules file: /lib/udev/rules.d/70-power-switch.rules Reading rules file: /lib/udev/rules.d/70-printers.rules Reading rules file: /lib/udev/rules.d/70-uaccess.rules Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules Reading rules file: /lib/udev/rules.d/71-seat.rules Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules Reading rules file: /lib/udev/rules.d/73-seat-late.rules Reading rules file: /lib/udev/rules.d/73-special-net-names.rules Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules Reading rules file: /lib/udev/rules.d/75-net-description.rules Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules Reading rules file: /lib/udev/rules.d/78-graphics-card.rules Reading rules file: /lib/udev/rules.d/78-sound-card.rules Reading rules file: /lib/udev/rules.d/80-debian-compat.rules Reading rules file: /lib/udev/rules.d/80-drivers.rules Reading rules file: /lib/udev/rules.d/80-ifupdown.rules Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules Reading rules file: /lib/udev/rules.d/80-snappy-assign.rules Reading rules file: /lib/udev/rules.d/80-udisks2.rules Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules Reading rules file: /lib/udev/rules.d/85-brltty.rules Reading rules file: /lib/udev/rules.d/85-hdparm.rules Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules Reading rules file: /lib/udev/rules.d/85-regulatory.rules Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules Reading rules file: /lib/udev/rules.d/90-libgpod.rules Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules Reading rules file: /lib/udev/rules.d/95-cd-devices.rules Reading rules file: /lib/udev/rules.d/95-upower-csr.rules Reading rules file: /lib/udev/rules.d/95-upower-hid.rules Reading rules file: /lib/udev/rules.d/95-upower-wup.rules Reading rules file: /lib/udev/rules.d/97-hid2hci.rules Reading rules file: /lib/udev/rules.d/99-systemd.rules rules contain 393216 bytes tokens (32768 * 12 bytes), 34511 bytes strings 24027 strings (201369 bytes), 20524 de-duplicated (170362 bytes), 3504 trie nodes used value '[dmi/id]sys_vendor' is 'VMware, Inc.' value '[dmi/id]sys_vendor' is 'VMware, Inc.' GROUP 6 /lib/udev/rules.d/50-udev-default.rules:55 IMPORT 'scsi_id --export --whitelisted -d /dev/sdb' /lib/udev/rules.d/60-persistent-storage.rules:44 starting 'scsi_id --export --whitelisted -d /dev/sdb' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_SCSI=1' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_VENDOR=VMware_' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_VENDOR_ENC=VMware\x2c\x20' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_MODEL=VMware_Virtual_S' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_MODEL_ENC=VMware\x20Virtual\x20S' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_REVISION=1.0' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_TYPE=disk' Process 'scsi_id --export --whitelisted -d /dev/sdb' succeeded. IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-storage.rules:64 LINK 'disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' /lib/udev/rules.d/60-persistent-storage.rules:65 IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage.rules:76 probe /dev/sdb raid offset=0 RUN '/usr/bin/unshare -m /usr/bin/snap auto-import --mount=/dev/%k' /lib/udev/rules.d/66-snapd-autoimport.rules:3 RUN '/lib/udev/hdparm' /lib/udev/rules.d/85-hdparm.rules:1 handling device node '/dev/sdb', devnum=b8:16, mode=0660, uid=0, gid=6 preserve permissions /dev/sdb, 060660, uid=0, gid=6 preserve already existing symlink '/dev/block/8:16' to '../sdb' found 'b8:16' claiming '/run/udev/links/\x2fdisk\x2fby-path\x2fpci-0000:00:10.0-scsi-0:0:1:0' creating link '/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' to '/dev/sdb' preserve already existing symlink '/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' to '../../sdb' created db file '/run/udev/data/b8:16' for '/devices/pci0000:00/0000:00:10.0/host2/target2:0:1/2:0:1:0/block/sdb' ACTION=add DEVLINKS=/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0 DEVNAME=/dev/sdb DEVPATH=/devices/pci0000:00/0000:00:10.0/host2/target2:0:1/2:0:1:0/block/sdb DEVTYPE=disk ID_BUS=scsi ID_MODEL=VMware_Virtual_S ID_MODEL_ENC=VMware\x20Virtual\x20S ID_PATH=pci-0000:00:10.0-scsi-0:0:1:0 ID_PATH_TAG=pci-0000_00_10_0-scsi-0_0_1_0 ID_REVISION=1.0 ID_SCSI=1 ID_TYPE=disk ID_VENDOR=VMware_ ID_VENDOR_ENC=VMware\x2c\x20 MAJOR=8 MINOR=16 SUBSYSTEM=block TAGS=:systemd: USEC_INITIALIZED=3980718 run: '/usr/bin/unshare -m /usr/bin/snap auto-import --mount=/dev/sdb' run: '/lib/udev/hdparm' Unload module index Unloaded link configuration context.
但如果你已經新增了 rule,下次執行 test 時,如果你要測試的裝置與該新增的 rules 有相符合時,是會被執行的.
root@ubuntu:~# vi /etc/udev/rules.d/sdb.rules KERNEL=="sdb",SYMLINK+="sdb-ben"
root@ubuntu:~# ll /dev/sdb* brw-rw---- 1 root disk 8, 16 Jun 21 18:02 /dev/sdb
root@ubuntu:~# udevadm test /sys/block/sdb calling: test version 229 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. === trie on-disk === tool version: 229 file size: 7058303 bytes header size 80 bytes strings 1762191 bytes nodes 5296032 bytes Load module index timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. timestamp of '/etc/udev/rules.d' changed Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /lib/udev/rules.d/40-crda.rules Reading rules file: /lib/udev/rules.d/40-i2c-tools.rules Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules Reading rules file: /lib/udev/rules.d/50-apport.rules Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules Reading rules file: /lib/udev/rules.d/50-firmware.rules Reading rules file: /lib/udev/rules.d/50-udev-default.rules Reading rules file: /lib/udev/rules.d/56-hpmud.rules Reading rules file: /lib/udev/rules.d/60-block.rules Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules Reading rules file: /lib/udev/rules.d/60-drm.rules Reading rules file: /lib/udev/rules.d/60-evdev.rules Reading rules file: /lib/udev/rules.d/60-gnupg.rules Reading rules file: /lib/udev/rules.d/60-gnupg2.rules Reading rules file: /lib/udev/rules.d/60-inputattach.rules Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules Reading rules file: /lib/udev/rules.d/60-libsane.rules Reading rules file: /lib/udev/rules.d/60-open-vm-tools.rules Reading rules file: /lib/udev/rules.d/60-pcmcia.rules Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules Reading rules file: /lib/udev/rules.d/60-persistent-input.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules Reading rules file: /lib/udev/rules.d/60-serial.rules Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules Reading rules file: /lib/udev/rules.d/64-btrfs.rules Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules Reading rules file: /lib/udev/rules.d/66-snapd-autoimport.rules Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules Reading rules file: /lib/udev/rules.d/69-libmtp.rules Reading rules file: /lib/udev/rules.d/69-wacom.rules Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules Reading rules file: /lib/udev/rules.d/70-mouse.rules Reading rules file: /lib/udev/rules.d/70-power-switch.rules Reading rules file: /lib/udev/rules.d/70-printers.rules Reading rules file: /lib/udev/rules.d/70-uaccess.rules Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules Reading rules file: /lib/udev/rules.d/71-seat.rules Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules Reading rules file: /lib/udev/rules.d/73-seat-late.rules Reading rules file: /lib/udev/rules.d/73-special-net-names.rules Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules Reading rules file: /lib/udev/rules.d/75-net-description.rules Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules Reading rules file: /lib/udev/rules.d/78-graphics-card.rules Reading rules file: /lib/udev/rules.d/78-sound-card.rules Reading rules file: /lib/udev/rules.d/80-debian-compat.rules Reading rules file: /lib/udev/rules.d/80-drivers.rules Reading rules file: /lib/udev/rules.d/80-ifupdown.rules Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules Reading rules file: /lib/udev/rules.d/80-snappy-assign.rules Reading rules file: /lib/udev/rules.d/80-udisks2.rules Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules Reading rules file: /lib/udev/rules.d/85-brltty.rules Reading rules file: /lib/udev/rules.d/85-hdparm.rules Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules Reading rules file: /lib/udev/rules.d/85-regulatory.rules Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules Reading rules file: /lib/udev/rules.d/90-libgpod.rules Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules Reading rules file: /lib/udev/rules.d/95-cd-devices.rules Reading rules file: /lib/udev/rules.d/95-upower-csr.rules Reading rules file: /lib/udev/rules.d/95-upower-hid.rules Reading rules file: /lib/udev/rules.d/95-upower-wup.rules Reading rules file: /lib/udev/rules.d/97-hid2hci.rules Reading rules file: /lib/udev/rules.d/99-systemd.rules Reading rules file: /etc/udev/rules.d/sdb.rules rules contain 393216 bytes tokens (32768 * 12 bytes), 34551 bytes strings 24031 strings (201433 bytes), 20525 de-duplicated (170389 bytes), 3507 trie nodes used value '[dmi/id]sys_vendor' is 'VMware, Inc.' value '[dmi/id]sys_vendor' is 'VMware, Inc.' GROUP 6 /lib/udev/rules.d/50-udev-default.rules:55 IMPORT 'scsi_id --export --whitelisted -d /dev/sdb' /lib/udev/rules.d/60-persistent-storage.rules:44 starting 'scsi_id --export --whitelisted -d /dev/sdb' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_SCSI=1' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_VENDOR=VMware_' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_VENDOR_ENC=VMware\x2c\x20' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_MODEL=VMware_Virtual_S' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_MODEL_ENC=VMware\x20Virtual\x20S' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_REVISION=1.0' 'scsi_id --export --whitelisted -d /dev/sdb'(out) 'ID_TYPE=disk' Process 'scsi_id --export --whitelisted -d /dev/sdb' succeeded. IMPORT builtin 'path_id' /lib/udev/rules.d/60-persistent-storage.rules:64 LINK 'disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' /lib/udev/rules.d/60-persistent-storage.rules:65 IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage.rules:76 probe /dev/sdb raid offset=0 RUN '/usr/bin/unshare -m /usr/bin/snap auto-import --mount=/dev/%k' /lib/udev/rules.d/66-snapd-autoimport.rules:3 RUN '/lib/udev/hdparm' /lib/udev/rules.d/85-hdparm.rules:1 LINK 'sdb-ben' /etc/udev/rules.d/sdb.rules:1 handling device node '/dev/sdb', devnum=b8:16, mode=0660, uid=0, gid=6 preserve permissions /dev/sdb, 060660, uid=0, gid=6 preserve already existing symlink '/dev/block/8:16' to '../sdb' found 'b8:16' claiming '/run/udev/links/\x2fdisk\x2fby-path\x2fpci-0000:00:10.0-scsi-0:0:1:0' creating link '/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' to '/dev/sdb' preserve already existing symlink '/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' to '../../sdb' creating link '/dev/sdb-ben' to '/dev/sdb' creating symlink '/dev/sdb-ben' to 'sdb' created db file '/run/udev/data/b8:16' for '/devices/pci0000:00/0000:00:10.0/host2/target2:0:1/2:0:1:0/block/sdb' ACTION=add DEVLINKS=/dev/sdb-ben /dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0 DEVNAME=/dev/sdb DEVPATH=/devices/pci0000:00/0000:00:10.0/host2/target2:0:1/2:0:1:0/block/sdb DEVTYPE=disk ID_BUS=scsi ID_MODEL=VMware_Virtual_S ID_MODEL_ENC=VMware\x20Virtual\x20S ID_PATH=pci-0000:00:10.0-scsi-0:0:1:0 ID_PATH_TAG=pci-0000_00_10_0-scsi-0_0_1_0 ID_REVISION=1.0 ID_SCSI=1 ID_TYPE=disk ID_VENDOR=VMware_ ID_VENDOR_ENC=VMware\x2c\x20 MAJOR=8 MINOR=16 SUBSYSTEM=block TAGS=:systemd: USEC_INITIALIZED=3642061 run: '/usr/bin/unshare -m /usr/bin/snap auto-import --mount=/dev/sdb' run: '/lib/udev/hdparm' Unload module index Unloaded link configuration context.
關於 sdb 新增加的 rule 的確有被執行到.
root@ubuntu:~# ll /dev/sdb* brw-rw---- 1 root disk 8, 16 Jun 21 18:56 /dev/sdb lrwxrwxrwx 1 root root 3 Jun 21 18:56 /dev/sdb-ben -> sdb
沒有解決問題,試試搜尋本站其他內容
One thought on “Linux command – udevadm test”