无法在 Debian 上删除或卸载循环设备

无法在 Debian 上删除或卸载循环设备

我有一个循环设备,当我这样做时,它会出现,但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

完全按照这个顺序。

相关内容