マッピングを作成して削除したパーティションをマウント解除できませんkpartx
。
# mount /dev/sdb1 usb/
# cd usb/
# kpartx -a -p sda -r -s -v sda.img
add map loop0sda1 (254:5): 0 16777216 linear 7:0 2048
add map loop0sda2 (254:6): 0 16777216 linear 7:0 16779264
add map loop0sda3 (254:7): 0 440401920 linear 7:0 33556480
add map loop0sda4 (254:8): 0 26159792 linear 7:0 473958400
# kpartx -dv /dev/loop0
del devmap : loop0sda4
del devmap : loop0sda3
del devmap : loop0sda2
del devmap : loop0sda1
# cd ..
#umount usb/
target is busy.
私が知っている限り、このコマンドはkpartx -dv /dev/loop0
マッピングを正しく削除してから削除されたものを見ることができます/dev/mapper/
。ただし、次のレポートのため、ディスクをマウント解除できません。target is busy.
lsof
このディスクには開いているファイルがないと表示されます。
# lsof +D
すべてのマッピングを解除した後にディスクをマウント解除できないのはなぜですか?
答え1
2番目のコマンドは、引数として提供されたループデバイスが元々このループデバイスの作成をトリガーしたブロックイメージファイルではないという点で、最初のコマンドとまったく逆ではありません。
その後、次のように実行します。
losetup -l /dev/loop0
おそらく、次のような結果が出ます。
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 0 0 1 /path/to/usb/sda.img 0 512
これにより、リソースがsda.img
ファイルとそれを提供するファイルシステムにバインドされ、マウント解除が防止されます。
この状態で残りのリソースを解放するには、次のようにします。
losetup -d /dev/loop0
何をすべきですか?
kpartx -dv /path/to/usb/sda.img
今回は以下を提供する必要があります。
del devmap : loop0sda4
del devmap : loop0sda3
del devmap : loop0sda2
del devmap : loop0sda1
loop deleted : /dev/loop0