커널 메모리에 있는 파티션 테이블 삭제

커널 메모리에 있는 파티션 테이블 삭제

논리 볼륨(LVM의 lv)에 있는 모든 파티션을 지웠습니다(장치에서 제거했습니다). 그런 다음 나는 그랬습니다 partprobe -s(그리고 다른유사한 명령: & 를 나타내는 partprobe출력이 반환되지 않습니다 . 내가 겪고 있는 문제는 다음 중 하나를 수행할 수 없다는 것입니다.partxpartition: nonefailed to read partition table

  • mkfs /dev/vg/lv왜냐하면/dev/vg/lv is apparently in use by the system; will not make a filesystem here!
  • lvremove /dev/vg/lv이 장치는Logical volume vg/lv is used by another device.

이는 커널이 여전히 lv 블록 장치에 파티션을 표시하기 때문입니다.

# grep dm /proc/partitions
 254        0   85852160 dm-0
 254        1   84850688 dm-1

그리고

# ls -lh /dev/dm-*                           
brw-rw---T 1 root disk 254, 0 May 23 14:32 /dev/dm-0                                                       
brw-rw---T 1 root disk 254, 1 May 23 14:08 /dev/dm-1

결국 머신을 재부팅했고 문제가 해결되었습니다(커널은 더 이상 존재하지 않는 파티션을 보지 못했습니다).

재부팅하지 않고 이 문제를 해결하는 방법을 알고 있습니까?

3.2 커널에서 테스트되었습니다.

답변1

LVM 장치(또는 일반적으로 장치 매퍼)는 sd장치와 동일한 의미에서 파티션을 지원하지 않습니다. 를 사용하면 partx일반 유형의 파티션만 관리할 수 있습니다. LVM 장치에서는 다음과 같은 방법으로 파티션을 관리해야 합니다 kpartx.

kpartx -d /dev/vg/lv

맨페이지가 kpartx좀 간결합니다. 이를 확인하기 위해 내 가설과 일치하는 사용 예를 찾았습니다.https://bugzilla.redhat.com/show_bug.cgi?id=187781

관련 정보