我已将带有一些分区的 HDD 插入 Linux 机器,但是当我尝试安装它们时,它失败了:
[root@il ~]# mount -oro /dev/sdb1 /media/sdb1
fuse: mount failed: Device or resource busy
它尚未安装(至少,安装在当前根目录中不可见):
[root@il ~]# grep sdb /proc/mounts
[root@il ~]#
如果我使用将 sdb1 内容复制到文件dd
并将其安装为循环设备安装得很好。。 (我还通过将中间循环设备映射到 sdb1 而不是复制来设法规避此问题)
[root@il ~]# mount -oro,loop /dev/sdb1 /media/sdb1
[root@il ~]#
于是我写了一个小程序来检查:
#include <fcntl.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
return 1;
}
int fd = open(argv[1], O_RDONLY | O_EXCL);
printf("%d\n", fd);
return 0;
}
正如我所料,该程序无法打开该硬盘的分区:
[root@il ~]# ./excl /dev/sdb1
-1
# another unmounted NTFS partition
[root@il ~]# ./excl /dev/md124p6
3
如何找出谁阻止对磁盘的独占访问?我正在寻找一个比它更好的通用工具,lsof
因为lsof
不会打印为循环设备或通过 dmraid 或 mdraid 打开的文件。
[root@il ~]# dmraid -s
ERROR: ddf1: wrong # of devices in RAID set "ddf1_4c5349202020202010000055000000004711471100000a28" [1/2] on /dev/sdb
*** Group superset .ddf1_disks
--> *Inconsistent* Subset
name : ddf1_4c5349202020202010000055000000004711471100000a28
size : 623046656
stride : 128
type : mirror
status : inconsistent
subsets: 0
devs : 1
spares : 0
*** Group superset isw_ebaifefjbf
--> Subset
name : isw_ebaifefjbf_Volume0
size : 976783360
stride : 256
type : stripe
status : ok
subsets: 0
devs : 2
spares : 0
_
[root@il ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 100M 0 loop
sda 8:0 0 232,9G 0 disk
└─md124 9:124 0 465,8G 0 raid0
├─md124p1 259:0 0 9,8G 0 part /media/realboot
├─md124p2 259:1 0 1K 0 part
├─md124p5 259:2 0 195,3G 0 part /media/distrpart
├─md124p6 259:3 0 19,5G 0 part
├─md124p7 259:4 0 3,7G 0 part [SWAP]
├─md124p8 259:5 0 155G 0 part /.sxbackup
├─md124p9 259:6 0 81,7G 0 part /media/ARCHLINUXOLD
└─md124p10 259:7 0 782,6M 0 part
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 100M 0 part
└─sdb2 8:18 0 297G 0 part
sdc 8:32 0 232,9G 0 disk
└─md124 9:124 0 465,8G 0 raid0
├─md124p1 259:0 0 9,8G 0 part /media/realboot
├─md124p2 259:1 0 1K 0 part
├─md124p5 259:2 0 195,3G 0 part /media/distrpart
├─md124p6 259:3 0 19,5G 0 part
├─md124p7 259:4 0 3,7G 0 part [SWAP]
├─md124p8 259:5 0 155G 0 part /.sxbackup
├─md124p9 259:6 0 81,7G 0 part /media/ARCHLINUXOLD
└─md124p10 259:7 0 782,6M 0 part