다음 명령을 사용하여 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
와 위치에 추가합니다 .Y
mount
자세한 내용 man kpartx
은 참조하십시오 .
답변
다음과 같은 방법으로 문제를 해결했습니다.
복사하려는 파티션의 크기를 확인한 다음 백업 서버에서 해당 크기의 로컬 파일을 만들고 다음 명령을 사용하여 그 안에 파티션을 만들었습니다.
fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
마운트 / dev / mapper / loop1p1 / mnt / test / -t ext4
그런 다음 dd를 사용하여 서버에서 백업 파티션으로 데이터를 복사했습니다.
주변의 모든 것을 확인하고 모두 괜찮아 보입니다.