当我跑步时:
\n\nLANG=C cryptsetup --debug luksClose /dev/mapper/Pool-A\n\nit fails as follows:\n\n device-mapper: remove ioctl on Pool-A failed: Device or resource busy\n\nDevice /dev/mapper/Pool-A is still in use.\nCommand failed with code 16: Device or resource busy\n
Run Code Online (Sandbox Code Playgroud)\n\n(...)(重复了很多这样的台词)
\n\n# cryptsetup 1.7.2 processing "cryptsetup --debug luksClose /dev/mapper/Pool-A"\n# Running command close.\n# Locking memory.\n# Installing SIGINT/SIGTERM handler.\n# Unblocking interruption on signal.\n# Allocating crypt device context by device /dev/mapper/Pool-A.\n# Initialising device-mapper backend library.\n# dm version OF [16384] (*1)\n# dm versions OF [16384] (*1)\n# Detected dm-crypt version …
Run Code Online (Sandbox Code Playgroud) 我有一个 Ubuntu 8.04 LTS(服务器版),我需要编写一个 udev 规则让它在插入 USB 拇指驱动器时起作用。但是,根据驱动器的文件系统,我需要不同的操作。我知道我可以使用 ID_FS_TYPE 环境变量来检查驱动器上的文件系统。
按照此处找到的说明,我尝试使用一个虚拟的 udev 规则:
KERNEL!="sd[a-z][0-9]", GOTO="my_udev_rule_end"
ACTION=="add", RUN+="/usr/bin/touch /tmp/test_udev_%E{ID_FS_TYPE}"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/bin/touch /tmp/test_udev_it_works"
LABEL="my_udev_rule_end"
Run Code Online (Sandbox Code Playgroud)
但是,当我插入带有 vfat 文件系统(应该触发两个规则)的拇指驱动器时,我最终得到一个名为 的文件/tmp/test_udev_vfat
,这意味着第一个规则已成功触发,并且ID_FS_TYPE 环境变量是“vfat”,但是我没有其他文件,这意味着虽然我知道 ID_FS_TYPE env 变量是“vfat”,但我似乎无法检查它是否匹配。
我试着用谷歌搜索这个东西,但几乎每个结果似乎都假设ENV{ID_FS_TYPE}=="vfat"
有效。我还在 Ubuntu 10.04 LTS 服务器上测试了完全相同的 udev 规则,结果相同。
我可能遗漏了一些非常简单的东西,但我就是不明白。有没有人看到我的 udev 规则有什么问题会阻止它在 ENV{ID_FS_TYPE} 上匹配?
谢谢。
我已经使用 Graylog 设置了我的服务器日志记录,现在我看到我的日志被 level: 3 错误发送,如下所示:
systemd-udevd[1523120]: veth20996a5: Failed to get link config: No such device
Run Code Online (Sandbox Code Playgroud)
我认为 vethxxxxxxx 是 Docker 创建的接口,但我无法弄清楚是什么导致了这些错误。
任何帮助解决这个问题并找到这些错误原因的帮助都将非常感激。