디지털 오션의 dd 이미지를 장착하는 방법? block not found at offset 23018 on

다음 명령을 사용하여 dd/ 이미지를 만들었습니다 dev/vda.

ssh root@1.2.3.4 “dd if = / dev / vda”| dd of = / home / backup / vda.img

로컬 Ubuntu 서버에 전송할 수 없습니다.

나는 이것을 얻는다 dmesg | tail:

[763158.222159] EXT4-fs error (device loop0): ext4_map_blocks:504: inode #8:block 10541546: comm mount: lblock 23018 mapped to illegal pblock (length 1)
[763158.222299] jbd2_journal_bmap: journal block not found at offset 23018 on loop0-8
[763158.222367] JBD2: bad block at offset 23018
[763158.222581] JBD2: recovery failed
[763158.222588] EXT4-fs (loop0): error loading journal

내가 그것을 확인하려고하면 file나는 얻는다 :

vda.img : 데이터

그것이 무엇인지 알 수 있습니까?

Sven이 제안한대로 kpartx를 사용하면 다음과 같은 이점이 있습니다.

kpartx -l /home/backup/vda.img
루프 삭제 : / dev / loop0

시스템을 재부팅하고 명령을 다시 시도했습니다.

kpartx -lv /home/backup/vda.img
ioctl : LOOP_CLR_FD : 장치 또는 자원 사용 중
루프를 수행 할 수 없음 : / dev / loop0

그리고 dmesg에서 | 내가 얻는 꼬리

[73.445903] 장치 매퍼 : uevent : 버전 1.0.3
[73.446574] 장치 매퍼 : ioctl : 4.22.0-ioctl (2011-10-19) 초기화 됨 : dm-devel@redhat.com



답변

이미지 파일 안에 파티션을 마운트해야 할 수도 있습니다. 이 작업을 수행 할 수 있습니다 kpartx.

kpartx -l /path/to/image

파일 내부의 파티션을 나열하고

kpartx -a /path/to/image

로 마운트 할 수있는 /dev/mapper/loopXpY위치 X와 위치에 추가합니다 .Ymount

자세한 내용 man kpartx은 참조하십시오 .


답변

다음과 같은 방법으로 문제를 해결했습니다.

복사하려는 파티션의 크기를 확인한 다음 백업 서버에서 해당 크기의 로컬 파일을 만들고 다음 명령을 사용하여 그 안에 파티션을 만들었습니다.

fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
마운트 / dev / mapper / loop1p1 / mnt / test / -t ext4

그런 다음 dd를 사용하여 서버에서 백업 파티션으로 데이터를 복사했습니다.

주변의 모든 것을 확인하고 모두 괜찮아 보입니다.