루프 장치를 사용하여 로컬로 마운트하려는 디스크 이미지 파일이 있습니다. parted를 사용하면 이미지에 두 개의 파티션이 있음을 알 수 있지만 첫 번째 파티션을 마운트할 수 없고 losetup
두 번째 파티션이 존재하지 않는 것 같습니다. 두 번째 파티션을 마운트하는 방법을 아는 사람이 있습니까?
/m/sf_VMShare ❯❯❯ sudo losetup /dev/loop0 ./imm_image-2017-05-28.img
/m/sf_VMShare ❯❯❯ sudo losetup -a
/dev/loop0: [0023]:99 (/media/sf_VMShare/imm_image-2017-05-28.img)
/m/sf_VMShare ❯❯❯ sudo parted /dev/loop0 print
Model: Loopback device (loop)
Disk /dev/loop0: 1206MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 10.5MB 360MB 349MB primary ext4
2 361MB 1205MB 844MB primary ext4
/m/sf_VMShare ❯❯❯ sudo mount -t ext4 /dev/loop0p2 /tmp/vdisk
mount: special device /dev/loop0p2 does not exist
/m/sf_VMShare ❯❯❯ sudo mount -t ext4 /dev/loop0p1 /tmp/vdisk
mount: wrong fs type, bad option, bad superblock on /dev/loop0p1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
/m/sf_VMShare ❯❯❯ mount | grep /tmp/vdisk
/m/sf_VMShare ❯❯❯
/m/sf_VMShare ❯❯❯ ls /dev/loop*
/dev/loop0 /dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7
/dev/loop0p1 /dev/loop2 /dev/loop4 /dev/loop6 /dev/loop-control
/m/sf_VMShare ❯❯❯ lsblk -f
NAME FSTYPE LABEL MOUNTPOINT
sda
├─sda1 /
├─sda2
└─sda5 [SWAP]
sdb
└─sdb1 /home/foo/workspace
sr0
loop0
└─loop0p1
답변1
msdos 파티션 테이블이 포함된 전체 디스크 이미지에 파티션을 마운트하는 방법.
도구:
fdisk
mount
- 계산자
이미지의 파티션 레이아웃을 가져옵니다.
sudo fdisk -l -u=sectors /work/loop_test/disk_image.img
출력 예:
Disk /work/loop_test/disk_image.img: 29 MB, 29629952 bytes
255 heads, 63 sectors/track, 3 cylinders, total 57871 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 identifier: 0x0009d7e5
Device Boot Start End Blocks Id System
/work/loop_test/disk_image.img1 2048 18431 8192 83 Linux
/work/loop_test/disk_image.img2 18432 57343 19456 7 HPFS/NTFS/exFAT
이미지 시작부터 파티션 시작까지의 오프셋을 계산합니다. 이 경우 ntfs 파티션입니다.
공식:
Sector size * Start = Offset
512 * 18432 = 9437184
원하는 파티션의 오프셋을 전달하여 이미지를 마운트합니다.
이 경우에는 ntfs 파티션입니다.
sudo mount -o loop,offset=9437184 /work/loop_test/disk_image.img /mnt/ntfs_partition
답변2
런타임은 losetup -P
자동으로 파티션을 감지하고 /dev/loop0pX
적절한 장치를 생성합니다. 수동으로 계산을 수행할 필요가 없습니다.