一部のパーティションを持つ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