Nếu lệnh kết thúc thành công, thì bản sao lưu là chính xác, loại bỏ lỗi phần cứng (có thể ảnh hưởng như nhau đến bất kỳ xác minh nào bạn có thể thực hiện). Nó sau này có thể trở nên không chính xác nếu phần cứng bị lỗi, nhưng hầu hết phần cứng lưu trữ phát hiện tham nhũng.
Có một cảnh báo ở đây: trong một đường ống, vỏ không báo cáo lỗi từ phía bên trái. (Điều này là vì một kịch bản khá phổ biến nơi phía bên phải không cần phải đọc tất cả các dữ liệu, ví dụ some_command | head
, và phía chết trái tay vì sản lượng của nó không còn muốn.) Vì vậy, đây là một lỗi đọc từ dd
Would được bỏ qua. Trong bash, đặt pipefail
tùy chọn để báo cáo lỗi từ tất cả các phần của đường ống.
Ngoài ra, hãy cẩn thận mà dd bs=…
bỏ qua một số lỗi và dd
thường chậm hơn so với các lựa chọn thay thế . Tôi khuyên bạn không nên sử dụng dd
tất cả: không có lợi ích gì khi chỉ sao chép toàn bộ tệp. Trái ngược với những gì bạn có thể đã đọc ở đâu đó, dd
không phải là lệnh truy cập đĩa cấp thấp với thuộc tính đặc biệt, hoàn toàn không có phép thuật nào dd
, phép thuật nằm trong /dev/hda
.
shopt -s pipefail
set -e
</dev/hda buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Tuy nhiên, nếu bạn muốn kiểm tra bản sao lưu, cách tốt nhất là lấy một tổng kiểm tra mật mã ở mỗi bên và so sánh chúng. Ví dụ:
ssh myuser@myhost "sha1sum image.img" &
sudo sha1sum /dev/hda
Kiểm tra xem hai tổng kiểm tra có giống nhau không.
Lưu ý rằng điều này kiểm tra xem bản sao lưu và bản gốc có giống nhau tại thời điểm kiểm tra hay không. Bất cứ điều gì bạn thay đổi /dev/hda
, bao gồm cả việc gắn và ngắt kết nối hệ thống tệp ngay cả khi không thực hiện bất kỳ thay đổi nào (sẽ cập nhật ngày gắn kết cuối cùng trên nhiều hệ thống tệp), sẽ thay đổi tổng kiểm tra. Nếu bạn muốn xác minh tính toàn vẹn sau này, hãy ghi lại tổng kiểm tra của đĩa tại thời điểm sao lưu ở đâu đó.