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성공하지 못했습니다. PID 10693htop.

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

정확히 이 순서입니다.

관련 정보