두 개의 파일을 연결하여 그 안에 파일 시스템을 루프 마운트합니다.

두 개의 파일을 연결하여 그 안에 파일 시스템을 루프 마운트합니다.

diskimage.part1느린 외부(USB 2) 하드 드라이브에 두 개의 파일 이 있는데 diskimage.part2다음과 같은 작업을 수행해야 합니다.

cat diskimage.part{1,2} > diskimage
mount -o ro,loop diskimage /tmp/mountpoint

하지만 이 작업을 cat완료하는 데 몇 시간이 걸리고 디스크 이미지는 크기 때문에 어디에도 맞지 않습니다.

이 디스크 이미지와 함께 사용할 수 있는 "cat의 게으른 버전"이 있습니까? 그것은 마치

losetup --readonly /dev/loopX --concatenate diskimage.part*
mount -o ro /dev/loopX /tmp/mountpoint

(그러나 losetup --concatenate존재하지 않음)

답변1

어쩌면 당신은 사용하고 싶을 수도 있습니다mdadm

$ losetup --readonly /dev/loop1 diskimage.part1 
$ losetup --readonly /dev/loop2 diskimage.part2 
$ mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/loop1 /dev/loop2
$ mount -o ro /dev/md0 /tmp/mountpoint

답변2

diskimage와 diskimage2에 최소한 충분한 여유 공간이 있는 경우 후자를 이전 파일에 추가할 수 있습니다.

cat diskimage.part2 >> diskimage.part1 && mv diskimage.part1 diskimage

또한 많은 데이터를 이동할 필요가 없기 때문에 둘 다 복사하는 것보다 빠릅니다. 그러나 속도상의 이유로 다른 빠른 장치를 계단식으로 연결하는 것이 좋습니다.

여유 공간이 충분하지 않으면 다른(아마도 외부) 장치를 사용하여 디스크 이미지 파일을 만드세요.

답변3

mdadm --create루프 장치에 작성하고 싶었지만 작동하는지(아마 작동하지 않을지) 확인할 만큼 용기가 없었기 때문에 dmsetup을 사용하여 더 나은 솔루션을 찾았습니다. 예, LVM은 그럴 것 같습니다. 직업에 더 적합하다:

losetup --read-only /dev/loop1 diskimage.part1 # For this example, 5120 bytes
losetup --read-only /dev/loop2 diskimage.part2 # For this example, 2560 bytes
echo -e "0 10 linear /dev/loop1 0 \n10 5 linear /dev/loop2 0" | dmsetup create merge0
mount -o ro /dev/mapper/merge0 /tmp/mountpoint

설명: dmsetupLVM을 관리하는 명령입니다. 새 매핑된 장치를 생성할 때 사용하며 dmsetup create <dev_name>매핑을 설명하는 테이블도 필요합니다. 기본적으로 테이블은 표준 입력에서 제공됩니다.

테이블은 다음 형식의 행으로 구성됩니다 start_sector number_sectors target_type [target_type_arguments]. 섹터는 512바이트로 구성됩니다. 이 예에서는 linear매핑할 파일과 매핑할 파일의 오프셋(또한 섹터 단위)을 매개 변수로 사용하는 맵을 사용합니다. 이 예에서는 파일의 어떤 항목도 건너뛰지 않으려고 가정하므로 값은 0으로 설정됩니다.

이 명령은 새 장치의 경우 merge0처음 10개 섹터가 에 매핑되고 /dev/loop1다음 5개 섹터가 에 매핑됨을 의미합니다 /dev/loop2.

새로운 장비가 시장에 출시될 예정입니다 /dev/mapper/merge0. partprobe이미지에 파티션이 포함된 경우 이를 실행하여 파티션을 읽어야 합니다.

더 많은 정보를 확인하실 수 있습니다여기(특히 TABLE_FORMAT 섹션에서) 몇 가지 매우 유용한 예를 찾을 수 있습니다.여기.

완전히 잘못된 명령을 제공했지만 올바른 방향을 알려준 chatGPT에게 감사드립니다.

관련 정보