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
.