Loop_0にlosetup
で接続されたUSBデバイスを安全に削除し、その後loop0を削除したり切り離したりできませんでした。
_losetup -a
_は/dev/loop0: [0005]:145606719 (/dev/sdb1)
を示します
デバイスを/ dev/sdb1に再マウントすると、umount
itを試して_losetup -d /dev/loop0
_を試しても、同じエラー_loop: can't delete device /dev/loop0: Device or resource busy
_が発生します。ループデバイスを取り除く方法はありますか?
デバイスがビジーでないことは確かですか?可能性のあるPIDを決定するためにフューザーを試したことはありますか?
予防策はすべての可能な情報を取得します。
fuser -c /dev/loop0
fuser -d /dev/loop0
fuser -f /dev/loop0
/ dev/loop0を使用する可能性のあるプロセスを停止してください。必要に応じてkill -9
を使用するか、fuser -k
を使用してキル信号を送信します-> man fuser
を確認します。
デバイスマッピングを削除するには、dmsetup
も使用する必要があります。最も簡単な方法は、他のマッピングに干渉しない場合は、dmsetup remove_all
。
SDカードにも同様の問題があり、dmsetupを使用するというAaoron Flinの提案がうまくいきました。
具体的には、ls
/dev/mapperでloop0pX
パーティションが存在するかどうかを確認できる必要があります。
その場合、dmsetup remove /dev/mapper/loop0p2
を使用して不要なパーティションを削除できます。これは、マッピングを添付したままにする場合に便利です。
私は今日同じ問題を抱えていましたが、以前の回答のどれもそれを修正しませんでした(実際の問題を理解したかったので、ループカーネルモジュールをリロードしようとしませんでした)。
ループデバイスに関連付けられたイメージファイルには、pvscan
で示されるように自動的に設定された「Linux LVM」パーティションが含まれていました。
$ pvscan
PV /dev/sda1 VG server-vg lvm2 [417,76 GiB / 0 free]
PV /dev/loop0 VG vbox-vg lvm2 [7,81 GiB / 0 free]
Total: 2 [425,57 GiB] / in use: 2 [425,57 GiB] / in no VG: 0 [0 ]
そのため、ボリュームグループ内のすべての論理ボリュームを非アクティブ化しました。
$ vgchange --activate n vbox-vg
0 logical volume(s) in volume group "vbox-vg" now active
最終的に、ループデバイスをうまく切り離すことができました。
$ losetup -d /dev/loop0
$ losetup -a
このループソリューションをインターネットの最後まで追いかけたところ、ソリューションがsnapdおよび関連するすべてを削除ファイルをアンインストールすることがわかりました(私の場合、これは167 Gbでした)
Sudo apt purge snapd
Luksを使用している場合は、最初にluksCloseを実行する必要があります
cryptsetup luksClose $whatever
losetup -D
ループカーネルモジュールをリロードしてみてください。解決しない場合は、再起動してください。
間違いなく、それを使用するプロセスがあります。削除を妨げているプロセスを特定できなかった場合は、可能であればサーバーを再起動します。
@frntnと同じです。
ループはRAIDによって占有されていました。
# cat /proc/mdstat
Personalities : [raid0]
md126 : active raid0 loop6p5[1] loop5p3[0]
209584128 blocks super 1.2 512k chunks
md127 : active raid0 loop6p2[1] loop5p2[0]
31440896 blocks super 1.2 512k chunks
私はそれらを削除し、すべてが再び注文に従います。