파티션 장치가 존재하지 않지만 fdisk -l에 존재합니다.

파티션 장치가 존재하지 않지만 fdisk -l에 존재합니다.

Centos 7.7에서는 다음 명령을 실행합니다.

# dd if=/dev/zero of=/root/500MB.img bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 0.374844 s, 1.4 GB/s
# losetup --all
# losetup /dev/loop0 ./500MB.img
# losetup --all
/dev/loop0: [64768]:33575036 (/root/500MB.img)
# fdisk -l /dev/loop0

Disk /dev/loop0: 524 MB, 524288000 bytes, 1024000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
# fdisk /dev/loop0
[here set partition]
# fdisk -l /dev/loop0

Disk /dev/loop0: 524 MB, 524288000 bytes, 1024000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x2b7a6a60

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1            2048     1023999      510976   83  Linux
#

그러나 /dev/loop0p1은 시스템에 존재하지 않습니다:

# pvcreate /dev/loop0p1
  Device /dev/loop0p1 not found.
# ls -ld /dev/loop0p1
ls: cannot access /dev/loop0p1: No such file or directory
# kpartx -l /dev/loop0
loop0p1 : 0 1021952 /dev/loop0 2048
# ls -ld /dev/loop0p1
ls: cannot access /dev/loop0p1: No such file or directory

루프 디스크 장치만 존재합니다:

# ls -ld /dev/loop0
brw-rw----. 1 root disk 7, 0 Apr 23 09:31 /dev/loop0

"fdisk -l"에 표시된 파티션은 어디에 있습니까?

업데이트: Stephen Kitt의 팁 덕분에 수정되었습니다. 문제를 해결하려면 모든 단계를 실행하세요.

# losetup -d /dev/loop0
# losetup --all
# ls /dev/loop0
/dev/loop0
# fdisk -l /dev/loop0
fdisk: cannot open /dev/loop0: Inappropriate ioctl for device
# fdisk -l ./500MB.img

Disk ./500MB.img: 524 MB, 524288000 bytes, 1024000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x2b7a6a60

      Device Boot      Start         End      Blocks   Id  System
./500MB.img1            2048     1023999      510976   83  Linux
# losetup -P /dev/loop0 ./500MB.img
# losetup --all
/dev/loop0: [64768]:33575036 (/root/500MB.img)
# ls -ld /dev/loop0*
brw-rw----. 1 root disk   7, 0 Apr 23 10:16 /dev/loop0
brw-rw----. 1 root disk 259, 0 Apr 23 10:16 /dev/loop0p1
#

답변1

파티션을 스캔하도록 커널에 지시해야 합니다. 한 가지 방법은 losetup장치를 마운트하기 전에 파티션 테이블이 작성되었다고 가정하여 를 사용하는 것입니다.

  • fdisk당신의 이미지에서 실행
  • fdisk -l이미지의 파티션 테이블을 확인하세요.
  • -P옵션 추가 losetup:losetup -P /dev/loop0 ./500MB.img

마지막 단계에서는 보시다시피 루프 장치의 파티션을 검색합니다 /dev/loop0p1.

관련 정보