
ループデバイスがありますが、これを行うと表示されますがlosetup --all
削除できません。
だから私は基本的にこの問題に固執しました。これは、microSDカードの生のイメージを作成してから、イメージに含まれているkpartx
パーティションをマウントするために使用するためです。
最初にイメージとパーティションをマウントするために使用したコマンドは次のとおりです。
user@server:~$ sudo kpartx -arsv '/path/to/microsd.img';
add map loop1p1 (254:12): 0 819168 linear 7:14 32
add map loop1p2 (254:13): 0 29351936 linear 7:14 819200
user@server:~$ sudo mount /dev/mapper/loop1p2 /mnt/sdimage1p2;
user@server:~$ ls -alh /mnt/sdimage1p2;
これは単なるテストであり、ループデバイスを削除したいので、次のコマンドを実行し、私の注文に問題がないかどうかを確認するために別の順序で実行してみました。
sudo umount /mnt/sdimage1p2;
sudo dmsetup info;
sudo losetup --detach /dev/mapper/loop1p1;
sudo losetup --detach /dev/mapper/loop1p2;
sudo losetup --detach /dev/mapper/loop1;
sudo dmsetup remove /dev/mapper/loop1p1;
sudo dmsetup remove /dev/mapper/loop1p2;
sudo kpartx -dsv '/path/to/microsd.img';
sudo losetup --all;
またdmsetup info
返されましたno devices found
。
しかし、losetup --all
以下を返します:-
/dev/loop1: [2082]:1809010 (/path/to/microsd.img)
また、次のコマンドを試しましたが、何も返しませんでした。
fuser -c /dev/loop1;
fuser -f /dev/loop1;
lsof | grep loop
また、以下の出力を返そうとしました。
loop1 10693 root cwd DIR 8,2 4096 2 /
loop1 10693 root rtd DIR 8,2 4096 2 /
loop1 10693 root txt unknown /proc/10693/exe
しかし、上記の情報をどのようにすべきかわかりません。試しましたがkill -9 10693
成功しませんでした。 PID10693
がhtop
。
user@server:~$ ps -fp 10693
UID PID PPID C STIME TTY TIME CMD
root 10693 2 0 08:17 ? 00:00:00 [loop1]
答え1
PPIDが2なので、このプロセス10693はカーネルプロセスであり、これがプログラムがkill -9
機能しない理由を説明します。
あなたはそれを試したと言いましたsudo losetup --detach /dev/mapper/loop1
。これはほとんど正しいですが、完全に正しいわけではありません。sudo losetup -d /dev/loop1
一度試してみてください。しかし、それだけで動作します後ろにパーティションループデバイスが削除されたため、sudo losetup --detach /dev/mapper/loop1p*
コマンドの前に試みると失敗します。
ループデバイスを削除するための最小コマンドは次のとおりです。
sudo umount /mnt/sdimage1p2
sudo kpartx -d /dev/loop1
sudo losetup -d /dev/loop1
まさにこの順序です。