当我运行:
LANG=C cryptsetup --debug luksClose /dev/mapper/Pool-A it fails as follows: device-mapper: remove ioctl on Pool-A failed: Device or resource busy Device /dev/mapper/Pool-A is still in use. Command failed with code 16: Device or resource busy
(…)(它重复了很多这样的行)
# cryptsetup 1.7.2 processing "cryptsetup --debug luksClose /dev/mapper/Pool-A" # Running command close. # Locking memory. # Installing SIGINT/SIGTERM handler. # Unblocking interruption on signal. # Allocating crypt device context by device /dev/mapper/Pool-A. # Initialising device-mapper backend library. # dm version OF [16384] (*1) # dm versions OF [16384] (*1) # Detected dm-crypt version 1.14.1, dm-ioctl version 4.33.0. # Device-mapper backend running with UDEV support enabled. # dm status Pool-A OF [16384] (*1) # Releasing device-mapper backend. # Trying to open and read device /dev/sdb1 with direct-io. # Allocating crypt device /dev/sdb1 context. # Trying to open and read device /dev/sdb1 with direct-io. # Initialising device-mapper backend library. # dm table Pool-A OFW [16384] (*1) # Trying to open and read device /dev/sdb1 with direct-io. # Crypto backend (gcrypt 1.5.3) initialized in cryptsetup library version 1.7.2. # Detected kernel Linux 3.10.0-327.36.3.el7.x86_64 x86_64. # Reading LUKS header of size 1024 from device /dev/sdb1 # Key length 32, device size 3906961375 sectors, header size 2050 sectors. # Deactivating volume /dev/mapper/Pool-A. # dm status Pool-A OF [16384] (*1) # Udev cookie 0xd4d14d3 (semid 917504) created # Udev cookie 0xd4d14d3 (semid 917504) incremented to 1 # Udev cookie 0xd4d14d3 (semid 917504) incremented to 2 # Udev cookie 0xd4d14d3 (semid 917504) assigned to REMOVE task(2) with flags (0x0) # dm remove Pool-A OFT [16384] (*1)
(…)(重复25行)
# Releasing crypt device /dev/sdb1 context. # Releasing device-mapper backend. # Unlocking memory. I've found that this problem arises when I tri to use udev rules like that: ACTION=="add",ENV{ID_SERIAL_SHORT}=="57584E314135364632334141", RUN+="/etc/bacula/openmount.sh A" ACTION=="remove",ENV{ID_SERIAL_SHORT}=="57584E314135364632334141", RUN+="/etc/bacula/umountclose.sh A"
这是低级别的信息:
[root@backup ~]# dmsetup info Pool-A Name: Pool-A State: ACTIVE Read Ahead: 256 Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 253, 3 Number of targets: 1 UUID: CRYPT-LUKS1-2b69b6e48b6d4bd1942ae7505d530f27-Pool-A
和块设备信息如下:
lsblk -o +UUID /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID sdb 8:16 0 1,8T 0 disk └─sdb1 8:17 0 1,8T 0 part └─Pool-A 253:3 0 1,8T 0 crypt 48c1accf-47a6-45ec-aacc-6686e8a8a2fa
我的操作系统是:
CentOS Linux版本7.2.1511(核心)与内核3.10.0-327.36.3.el7.x86_64
这是一个systemd-udev问题吗? 我该如何解决? 或者这是一个无害的警告?