dd 사용하여 만든 전체 디스크의 이미지가 있습니다. 디스크 구조는 다음과 같습니다.
kent@cow:~$ sudo fdisk -l
Disk /dev/sda: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b8508
Device Boot Start End Blocks Id System
/dev/sda1 * 5 90872 729929303+ 83 Linux
/dev/sda2 90873 91201 2642692+ 5 Extended
/dev/sda5 90873 91201 2642661 82 Linux swap / Solaris
이미지는 다음을 사용하여 작성되었습니다.
dd if=/dev/sda of=image750.img
가능한 경우 이미지에서 / dev / sda1을 마운트하여 내용을 읽을 수 있도록하려면 어떻게해야합니까?
HDD를 다시 복제하는 옵션은 아닙니다. 단일 파티션 만 복제 한 경우 어떻게해야하는지 알고 있습니다. 현재 이미지로 여전히 가능하기를 바랍니다.
답변
요즘 더 좋은 방법이 있습니다. 더 이상 오프셋이나 kpartx를 사용할 필요가 없습니다.
losetup --partscan --find --show disk.img
mount /dev/loop0p1 /mnt
loop0을 해제하려면 umount 후에 사용하십시오.
losetup -d /dev/loop0
답변
나는 오늘이 문제에 부딪 쳤고 나 자신을 상기시키기 위해 대답을 업데이트하고 싶었다. 직접 오프셋을 계산하는 대신 dd 이미지에서 마운트 가능한 장치를 제공하는 도구를 사용할 수 있습니다 : kpartx
http://robert.penz.name/73/kpartx-a-tool-for-mounting-partitions-within-an-image-file/
http://linux.die.net/man/8/kpartx
주어진 경우에는 다음과 같은 것이 필요합니다.
sudo kpartx -a image750.img
sudo mount /dev/mapper/loop1p1 /mount/point -o loop,ro
여기서 loop1p1은 첫 번째 파티션을 나타내고 loop1p2는 두 번째 파티션을 나타냅니다.
답변
첫 번째 부분 인 fdisk -l이 시작 오프셋을 찾습니다. 이 숫자에 512를 곱하면 오프셋 옵션을 얻을 수 있습니다. 따라서 귀하의 경우 sda1의 경우 5 * 512 = 2560입니다. 그런 다음 마운트를 실행하십시오.
mount -o loop,offset=2560 -t auto /path/to/image.dd /mount/point
답변
루프 마운팅은 답의 일부일뿐입니다.
파티션 지정에 대한 도움말 은 http://wiki.edseek.com/guide:mount_loopback#accessing_specific_partitions_in_the_image 를 참조하십시오 . 나는 생각한다 , -o 루프를 장착 당신을 위해 작동합니다 = 32256 /path/to/image750.img을 / mnt 오프셋. 그러나 언급 된 자습서를 읽어야합니다.
답변
losetup -P
오토메이션
https://superuser.com/a/684707/128124 (util-linux v2.21에 추가, Ubuntu 16.04에 추가)에 언급 된 방법 은 다음과 같습니다. 용법:
$ 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"
)
루프 모듈 max_part 구성
util-linux v2.21 이전의 적절한 방법.
loop
Ubuntu 14.04의 커널에 내장 된 커널 모듈입니다.
올바르게 구성하면 Linux가 자동으로 장치를 분할합니다.
cat /sys/module/loop/parameters/max_part
loop
디바이스가 생성 할 수있는 파티션 수를 나타냅니다.
그것은이다 0
더 자동 분할이 발생하지 이유입니다 우분투 14.04에서 기본적으로.
변경하려면 다음을 추가하십시오.
options loop max_part=31
의 파일 /etc/modprobe
또는
GRUB_CMDLINE_LINUX="loop.max_part=31"
에 /etc/default/grub
다음 sudo update-grub
.
모듈 매개 변수를 설정하는 방법은 https://askubuntu.com/questions/51226/how-to-add-kernel-module-parameters를 참조하십시오.
재부팅 후 수행 할 때 :
sudo losetup -f --show my.img
이미지를 /dev/loopX
장치에 마운트하고 파티션을 /dev/loopXpY
장치에 자동으로 마운트합니다 .
따라서 재부팅하려는 경우 가장 편리한 방법입니다.
참조
답변
퓨즈와 같은 사용자 모드 파일 시스템이있는 경우 데스크탑 환경에서 Gnome을 좋아하고 gnome-disk-image-mounter와 같은 도구를 설치 한 경우 마우스 오른쪽 버튼을 클릭하여 루트 없이도 열 수 있습니다.
답변
나는 루프 마운트 가 답 이라고 믿는다.
sudo mkdir /path/to/dir/
mount -o loop example.img /path/to/dir/
위는 해당 디렉토리에 마운트해야합니다.
마운트를 해제해야합니다.
umount /path/to/dir