Raspbian 이미지 의 루트 및 부팅 파티션 을 마운트 하려고합니다 .
mount -v -o offset="70254592" -t ext4 /mnt/X/raspbian-jessie.img /tmp/raspbian
mount -v -o offset="4194304" -t vfat /mnt/X/raspbian-jessie.img /tmp/boot
루트가 마운트 될 때 마운트 부팅 :
mount: /mnt/X/raspbian-jessie.img: overlapping loop device exists
하나의 디스크 이미지에 여러 파티션을 동시에 마운트하는 방법은 무엇입니까? (디스크의 경우 파일이 아닌 이유는 무엇입니까?)
답변
losetup 2.21 -P 옵션
losetup -P -f --show my.img
/dev/loopXpY
파티션 당 하나를 만듭니다 .
장점 : 많은 배포판에 사전 설치된 실행 파일 (util-linux 패키지).
단점 : kpartx를 사용하기 전에 Ubuntu 14.04에없는 매우 최근의 옵션 : https://unix.stackexchange.com/a/405639/32558
losetup -P
오토메이션
용법:
$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2
$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there
$ sudo losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop1 0 0 0 0 /full/path/to/my.img
$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0
출처:
los() (
img="$1"
dev="$(sudo losetup --show -f -P "$img")"
echo "$dev"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
echo "$dst"
sudo mkdir -p "$dst"
sudo mount "$part" "$dst"
done
)
losd() (
dev="/dev/loop$1"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
sudo umount "$dst"
done
sudo losetup -d "$dev"
)
답변
겹치지 않도록 파티션의 길이를 지정해야합니다. 옵션 sizelimit
을 참조 man mount
, man losetup
.
답변
kpartx
도구를 사용하십시오 . /dev/mapper
직접 마운트 할 수있는 이미지 파티션을 매핑 합니다.
$ sudo kpartx -a disk.img
$ sudo mount -o loop /dev/mapper/loop0p2 /mnt
추신. 완료된 후 맵핑을 제거하는 것을 잊지 마십시오.sudo kpartx -d disk.img