Làm thế nào để gắn hình ảnh dd của đại dương kỹ thuật số?


8

Tôi đã tạo một ddhình ảnh của / dev/vdasử dụng lệnh sau:

ssh root@1.2.3.4 "dd if = / dev / vda" | dd của = / nhà / sao lưu / vda.img

và tôi không thể gắn nó trên máy chủ Ubuntu cục bộ nơi tôi đã chuyển nó.

Tôi nhận được điều này trong 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

Nếu tôi cố gắng kiểm tra nó với filetôi nhận được:

vda.img: dữ liệu

Bất cứ ý tưởng những gì nó có thể được?

Sử dụng kpartx như Sven đề nghị tôi nhận được:


vòng lặp kpartx -l /home/backup/vda.img đã bị xóa: / dev / loop0

Tôi đã khởi động lại hệ thống và thử lại lệnh:

kpartx -lv /home/backup/vda.img
ioctl: LOOP_CLR_FD: Thiết bị hoặc tài nguyên bận
không thể lặp vòng lặp: / dev / loop0

Và trong dmesg | đuôi tôi nhận được

[73.445903] thiết bị ánh xạ thiết bị: uevent: phiên bản 1.0.3
[73.446574] thiết bị ánh xạ thiết bị: ioctl: 4.22.0-ioctl (2011-10-19) đã khởi tạo: dm-devel@redhat.com


Thật là một điều buồn cười nếu chúng ta học cách sử dụng hexedit ... kiểm tra các byte thực tế của một đĩa rất hữu ích là các tình huống tương tự.
peterh - Phục hồi Monica

Chính xác làm thế nào bạn tạo ra hình ảnh này?
Michael Hampton

@MichaelHampton thêm lệnh trong câu hỏi
Debrian 20/03/2015

@Debrian: dding một đĩa trực tiếp rất khó có thể dẫn đến bất cứ điều gì hữu ích, điều này chỉ hoạt động đáng tin cậy trên các đĩa chưa được gắn (hoặc ít nhất là gắn trên ro).
Sven

@Sven Làm thế nào bạn có thể đề nghị làm một hình ảnh như vậy trên một giọt Digital Ocean sau đó?
Debrian

Câu trả lời:


6

Bạn có thể cần phải gắn kết phân vùng bên trong tập tin hình ảnh. Điều này có thể được thực hiện với kpartx.

kpartx -l /path/to/image

sẽ liệt kê các phân vùng bên trong tập tin và

kpartx -a /path/to/image

sẽ thêm chúng vào /dev/mapper/loopXpY(nơi XYthay đổi), từ nơi bạn có thể gắn kết chúng với mount.

Xem man kpartxđể biết thêm.


Tôi nhận được kết quả sau khi tôi cố gắng liệt kê chúng: vòng lặp kpartx -l /home/backup/vda.img đã bị xóa: / dev / loop0
Debrian 20/03/2015

@Debrian: Chỉnh sửa bất kỳ đầu ra nào vào câu hỏi của bạn, đừng đăng nó dưới dạng bình luận.
Sven

1

Tôi đã cố gắng khắc phục sự cố theo cách sau:

Tôi đã kiểm tra kích thước của phân vùng mà tôi muốn sao chép và sau đó tôi đã tạo một tệp cục bộ với kích thước đó trên máy chủ sao lưu và tạo phân vùng bên trong nó bằng các lệnh sau:

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

Sau đó, tôi đã sử dụng dd để sao chép dữ liệu từ máy chủ vào phân vùng sao lưu.

Kiểm tra mọi thứ xung quanh và tất cả có vẻ tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.