Chuyển nội dung của thiết bị khối


7

Với mục đích sao lưu, tôi muốn chuyển (một số) toàn bộ phân vùng đĩa qua liên kết ssh. Nguồn là một thiết bị đặc biệt khối và mục tiêu phải là một tệp thông thường. Các công cụ phổ biến có vẻ không phù hợp cho việc này, mặc dù:

  • scp sẽ phàn nàn not a regular file
  • tar sẽ cố gắng tạo lại các nút thiết bị ở phía đích
  • rsync nói skipping non-regular file

Đặt cược tốt nhất của tôi hiện tại là ncchuyển tiếp cổng hoặc một lệnh catgọi ở phía xa trên mỗi phân vùng, có nghĩa là một mục nhập mật khẩu cho mỗi phân vùng trừ khi một thiết lập khóa công khai. Có một giải pháp thanh lịch hơn?

Môi trường sẽ là bất kỳ hệ thống sống Linux hợp lý. Hiện tại tôi có một cơn khò khè Debian nằm xung quanh, nhưng nó không quá cụ thể cho điều đó.


Vui lòng cung cấp HĐH, phân phối và phiên bản bạn đang làm việc. Mặc dù tôi có thể có một giải pháp thay thế, tôi muốn chắc chắn rằng nó có thể áp dụng cho trường hợp cụ thể của bạn.
mdpc

@mdpc: Linux, ví dụ Debian khò khè. Cập nhật câu hỏi của tôi để bao gồm thông tin đó.
MvG

Câu trả lời:


10

Bạn có thể chuyển qua SSH. Ví dụ sử dụng dd:

dd bs=1M if=/dev/disk | ssh -C target dd bs=1M of=disk.img

Nếu kết nối mạng bị ngắt trong khi chuyển, bạn có thể tiếp tục nếu bạn biết số lượng đã được sao chép. Ví dụ: nếu bạn chắc chắn ít nhất 1000MiBđã được chuyển (kiểm tra kích thước tệp của disk.img):

dd bs=1M skip=1000 if=/dev/disk | ssh -C target dd bs=1M seek=1000 of=disk.img

dd chỉ là một ví dụ, nó hoạt động tốt với các lệnh khác, miễn là chúng hoạt động với các đường ống.


Tại sao bạn sẽ sử dụng dd? Để làm chậm mọi thứ?
Gilles 'SO- ngừng trở nên xấu xa'

Tôi yêu dd . Nó hoạt động rất tốt và tôi không có bất kỳ phàn nàn nào về hiệu suất của nó. YMMV.
frostschutz

Lợi thế nào mang lại so với đơn giản hơn, ít lỗi hơn </dev/disk ssh -C target 'cat >disk.img', sẽ bù đắp cho rủi ro lỗi bổ sung (lỗi ifđánh máy oflà một vấn đề lớn)?
Gilles 'SO- ngừng trở nên xấu xa'

2
Nó cho phép bạn tiếp tục, cho một điều. Nhưng chúng tôi đang tranh luận ý kiến ​​ở đây. Nó là vô nghĩa. Bạn không thích dd, bạn sử dụng một cái gì đó khác. Nó đơn giản mà. Đối với lỗi chính tả, bạn có thể chỉ cần cũng nhầm lẫn <>và trong nhiều trường hợp nó chỉ như thảm khốc.
frostschutz

Nếu bạn có kết nối nhanh giữa các máy, -Ctùy chọn sshcó thể sẽ làm chậm quá trình chuyển của bạn.
Cameron Tacklind

3

Tôi sẽ cài đặt chương trình bộ đệm (nếu nó chưa có trong bản phân phối của bạn) nếu bạn đang cố gắng chuyển qua liên kết ethernet. Nó giống như dd nhưng FAR tốt hơn và nhanh hơn. Về cơ bản, nó được lập trình để thực hiện đọc và ghi đồng thời bằng cách sử dụng bộ đệm chia sẻ. Tôi đã từng sử dụng điều này cho các bãi băng và nó đã tiết kiệm khoảng 10% thời gian chuyển. Dòng lệnh sẽ là:

  buffer -i /dev/disk -m 100m | ssh -C target buffer -o disk.image -m 100m

Có nhiều tùy chọn có sẵn kích thước khối mặc định là 10K. Ở trên phân bổ 100 MB tế bào được chia sẻ, bạn có thể phải điều chỉnh tham số này hoặc cấu hình của mình để cho phép điều này.

CẢNH BÁO: Việc truyền phân vùng HOẠT ĐỘNG theo cách này sẽ có vấn đề. Vì vậy, hãy chắc chắn rằng phân vùng được truyền đi KHÔNG được gắn kết.


2
Làm thế nào để tiếp tục nếu kết nối mạng bị ngắt trong khi chuyển?
cốc896

Nếu bạn có kết nối nhanh giữa các máy, -Ctùy chọn sshcó thể sẽ làm chậm quá trình chuyển của bạn.
Cameron Tacklind
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.