블록 장치가 마운트될 때 장치나 리소스를 사용하게 만드는 사람은 누구입니까?

블록 장치가 마운트될 때 장치나 리소스를 사용하게 만드는 사람은 누구입니까?

일부 파티션이 있는 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

디스크에 대한 독점 액세스를 차단하는 사람이 누구인지 확인하는 방법은 무엇입니까? dmraid나 mdraid를 통해 열린 루프 장치나 파일에는 인쇄되지 않기 lsof때문에 이보다 더 나은 범용 도구를 찾고 있습니다 .lsof

[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

관련 정보