myimage.disk
파티션 테이블과 기본 파티션 (예 : FAT32 파일 시스템)을 포함 하는 디스크 이미지 가 있습니다. USB 펜 이미지라고 생각하십시오.
기본 파티션을 로컬 디렉토리에 마운트하고 싶습니다. 루프 유틸리티를 사용하여 파티션 이미지를 마운트하는 방법을 알고 있지만 여기에는 디스크 이미지가 있습니다. 내 생각에 파티션 테이블을 "스킵"하는 이미지를 마운트해야하지만 어떻게해야합니까?
myimage.disk
파티션 테이블과 기본 파티션 (예 : FAT32 파일 시스템)을 포함 하는 디스크 이미지 가 있습니다. USB 펜 이미지라고 생각하십시오.
기본 파티션을 로컬 디렉토리에 마운트하고 싶습니다. 루프 유틸리티를 사용하여 파티션 이미지를 마운트하는 방법을 알고 있지만 여기에는 디스크 이미지가 있습니다. 내 생각에 파티션 테이블을 "스킵"하는 이미지를 마운트해야하지만 어떻게해야합니까?
답변:
kpartx 도구를 사용하면이 작업이 쉬워집니다. 이미지의 각 파티션에 대해 / dev / mapper에 루프 장치를 만듭니다. 그런 다음 오프셋을 수동으로 계산하지 않고도 원하는 파티션에 해당하는 루프 장치를 마운트 할 수 있습니다.
예를 들어 디스크 이미지의 첫 번째 파티션을 마운트하려면
kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage
이미지 작업이 끝나면 루프 장치를 제거하십시오.
umount /mnt/myimage
kpartx -d -v myimage.disk
또는 최신 커널이 있고 부팅시 (루프가 내장 된 경우) 또는 modprobe (루프가 모듈 인 경우)에 loop.max_part = 63을 전달하면 다음과 같이 할 수 있습니다.
losetup /dev/loop0 myimage.disk
partprobe /dev/loop0 # Re-read partition table if /dev/loop0 was used with a different image before
mount /dev/loop0p1 /mnt/myimage
루프가 끝나면 :
losetup -d /dev/loop0
-o loop
위의 것을 필요로하지 않으며 , /dev/mapper/loop0p1
이미 블록 장치입니다 (루프 장치 위에 매퍼 장치, 그 위에 다른 루프 장치 레이어를 원하지 않습니다).
/dev/loop0p1
실행 후 파티션 장치 등을 얻지 못하면을 losetup
실행하십시오 partprobe /dev/loop0
.
kpartx
Linux Mint 18에 기본적으로 설치되어있는 것 같습니다.
이것을 찾았습니다 :
http://www.andremiller.net/content/mounting-hard-disk-image-include-partitions-using-linux
정확히 내가 찾던 것 같습니다.
주요 부분은 다음과 같습니다.
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
여기서 offset 값은 바이트 단위입니다. 오프셋을 얻는 제안 된 방법 parted
은 이미지 를 가리킨 다음 단위 B를 바이트 단위로 지정하고 인쇄 출력에서 시작 값을 가져 오는 것입니다. 디스크 공간이 있다고 가정하면 오프셋과 크기가 확보되면 dd
각 파티션을 별도의 파일로 추출하기 만하면 됩니다.
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
값은 offset
바이트입니다. 오프셋을 얻는 제안 된 방법은 이미지에서 parted를 가리킨 다음 unit
B
바이트 start
를 사용하여 print
출력 에서 값을 가져 오는 것 입니다. 디스크 공간이 있다고 가정하면 오프셋과 크기가 확보되면 dd
각 파티션을 별도의 파일로 추출하기 만하면 됩니다.
mount
포함하는 선 offset
입니다.
local_image_file=/var/tmp/image.img
first_byte=$(parted -m ${local_image_file} unit B print | grep Linux | cut --fields 2 --delimiter ':' | sed 's/.$//')
loop_file=/var/tmp/loop
mkdir -p ${loop_file}
mount -o loop,ro,offset=${first_byte} ${local_image_file} ${loop_file}
요즘에는를 사용하여 작업을 최소화 할 수 있습니다 udisks
. ArchWiki의 솔루션 : udisk-마운트 루프 장치
ISO 이미지를 쉽게 마운트하려면 다음 명령을 사용하십시오.
udisksctl loop-setup -r -f image.iso
이렇게하면 루프 장치가 만들어지고 ISO 이미지를 마운트 할 준비가됩니다. 마운트 해제되면 루프 장치는 udev에 의해 종료됩니다.
-r
읽기 전용 옵션이 있습니다.
udisksctl
입니다.
losetup --partscan --find --show disk.img
다음과 같이 간단하게 사용하고 싶을 수도 있습니다mount /dev/loop0p1 /mnt/disk