Gil*_*il' 5 linux hard-disk block-device removable-storage
我想确保可移动硬盘驱动器(USB,但这应该无关紧要)可以安全移除。假设这个驱动器是sdb.
显然,我需要确保该驱动器上没有挂载的文件系统。grep /dev/sdb /proc/mounts会告诉我。
但这还不是全部。例如,如果 上有 LVM 物理卷sdb,我需要停用包含位于sdb( lvchange -an my_volume_group/my_logical_volumethen vgchange -an my_volume_group)上的物理卷的所有卷组。如果有 RAID 卷,我可能需要停用它 ( mdadm -S),或者我可能想要将组件标记为失败 ( mdadm -f)。
有没有办法列出磁盘使用的所有方式?对于我的用例,我需要确信此列表是详尽无遗的,以便在列表为空时拔下设备。
如果您能够打开一个块设备O_EXCL,它就不会被内核使用(O_EXCL在这种特殊情况下需要一个设备锁)。lsof(/proc 扫描)应该找到任何其他用户(虚拟机可能打开了设备,并且经常无法以独占方式打开)。