dd
hoặc bất kỳ ứng dụng nào khác không có một số loại xác minh được xây dựng trong ý nghĩa mà bạn có thể nghĩ đến: nó không đọc lại dữ liệu từ phương tiện lưu trữ để so sánh với những gì được viết. Đó là công việc của hệ điều hành.
Không thể thực hiện đọc xác minh xuống phần cứng từ một ứng dụng. Nó sẽ hoạt động trong một số tình huống, nhưng trong hầu hết các trường hợp, nó sẽ chẳng đạt được gì. Ứng dụng có thể đọc lại những gì nó vừa viết nếu nó ghi trực tiếp vào phương tiện lưu trữ , nhưng thông thường sẽ đọc lại từ bộ nhớ cache trong bộ nhớ, điều này sẽ không đảm bảo hữu ích. Trong ví dụ bạn trích dẫn , dd
đang ghi vào một đường ống và trong trường hợp đó, nó không có quyền kiểm soát đối với những gì xảy ra với dữ liệu tiếp theo. Trong ví dụ rsync của bạn, vượt qua lần thứ hairsync --checksum
là vô nghĩa: về mặt lý thuyết nó có thể bắt lỗi, nhưng trên thực tế, nếu xảy ra lỗi, thì lần thứ hai có thể sẽ không báo cáo bất cứ điều gì sai, vì vậy bạn đang lãng phí nỗ lực vào thứ gì đó không thực sự mang lại sự đảm bảo hữu ích.
Tuy nhiên, các ứng dụng làm xác minh những gì xảy ra với dữ liệu, theo nghĩa là họ xác nhận rằng hệ điều hành có trách nhiệm chấp nhận cho dữ liệu. Tất cả các cuộc gọi hệ thống trả về một trạng thái lỗi. Nếu một cuộc gọi hệ thống trả về trạng thái lỗi, ứng dụng sẽ truyền lỗi đó cho người dùng, nói chung bằng cách hiển thị thông báo lỗi và trả về trạng thái thoát khác.
Coi chừng đó dd
là một ngoại lệ: tùy thuộc vào các tham số dòng lệnh, dd
có thể bỏ qua một số lỗi . Điều này là vô cùng bất thường: dd
là lệnh phổ biến duy nhất với tài sản này. Sử dụng cat
thay vì dd
, theo cách đó bạn không có nguy cơ tham nhũng và nó có thể nhanh hơn .
Trong một chuỗi sao chép dữ liệu, hai loại lỗi có thể phát sinh.
- Tham nhũng: một chút được lật trong quá trình chuyển. Không có cách nào để xác minh điều này ở cấp ứng dụng, bởi vì nếu điều đó xảy ra, đó là do lỗi lập trình hoặc lỗi phần cứng rất có thể gây ra lỗi tương tự khi đọc lại. Cách hữu ích duy nhất để xác minh rằng không có sự cố tham nhũng nào xảy ra là ngắt kết nối vật lý với phương tiện truyền thông và thử lại, tốt nhất là trên một máy tính khác trong trường hợp xảy ra sự cố với RAM.
- Cắt bớt: tất cả dữ liệu được sao chép đã được sao chép chính xác, nhưng một số dữ liệu hoàn toàn không được sao chép. Cái này là giá trị kiểm tra đôi khi, tùy thuộc vào mức độ phức tạp của lệnh. Bạn không cần phải đọc dữ liệu để làm điều đó: chỉ cần kiểm tra kích thước.