Ở đâu đó trên mạng quốc tế tôi đọc rằng gddresTHER vượt trội hơn dd ít nhất là về khả năng phân biệt giữa số lượng đĩa đọc được thực hiện trên một khu vực gặp khó khăn. Đây đúng là tình trạng đó phải không?
thời gian dd if = / dev / sda bỏ qua = 900343967 of = a.bin Count = 4 iflag = direct conv = noerror, sync
dd: đọc `/ dev / sda ': Input / lỗi đầu ra
2 + 0 hồ sơ trong
2 + 0 hồ sơ ra
1024 bytes (1.0 kB) sao chép, 18,6057 s, 0,1 kb / s
3 + 1 bản ghi trong
4 + 0 hồ sơ ra
2048 byte (2.0 kB) được sao chép, 18.6707 s, 0.1 kB / s
người dùng thực 0m18.672s 0m0.000s
sys 0m0.004s
Btw, cờ trực tiếp thực sự có ích, nhưng tôi chỉ có thể đọc 1 sector trong số 4 (so với 3/4 với nó). Tuy nhiên, điều đó đáng chú ý làm chậm tốc độ truyền xuống - nó chậm hơn ít nhất khoảng 5 lần đối với tôi: 5MB / s so với 25MB / s nếu không có cờ này. Nhưng dù sao, bây giờ là phần gddresTHER ( ddresTHER ) ..
thời gian ddresTHER -b512 -c1 -s4b -dnvD -i900343967b -o0b / dev / sda b.bin
Sắp sao chép 2048 byte từ / dev / sda sang b.bin
Vị trí bắt đầu: infile = 460976 MB, outfile = 0 B
Sao chép kích thước khối: 1 khối
cứng Kích thước khối cứng: 512 byte
Max_retries: 0
Direct: yes Spzzy : no Split: không cắt ngắn: khôngNhấn Ctrl-C để ngắt liên tục
: 1536 B, errsize: 512 B, tốc độ hiện tại: 53 B / s
ipose: 460976 MB, lỗi: 1, tốc độ trung bình: 53 B / s
opos: 1536 B, thời gian kể từ lần đọc thành công cuối cùng: 0 giây kết
thúc
người dùng thực 0m18.736s 0m0.004s
sys 0m0.000s
Như được hiển thị ở trên, nó đã mất cùng một khoảng thời gian để thực hiện. Như mong đợi - cùng thống kê: 3/4. Tuy nhiên, trong khi tôi có thể đệm các khu vực gặp rắc rối với 0x00 cho dd (conv = sync), gddresTHER dường như thiếu chức năng này? Thay vào đó, nó chỉ bỏ qua khu vực gặp khó khăn khi viết bất cứ điều gì vào vị trí của nó và tiếp tục với khu vực tiếp theo (nếu tôi đã có dữ liệu được ghi trên khu vực đó trong tệp đầu ra - nó sẽ không bị ghi đè: đôi khi điều đó có thể không được mong muốn ). Tôi không chắc tùy chọn -t (cắt ngắn) sẽ hoạt động như thế nào đối với một thiết bị khối với gddresTHER(tôi đoán, nó sẽ ghi đè hoàn toàn bằng 0x00), nhưng trên một tệp thông thường, như dự đoán, sẽ cắt toàn bộ tệp chỉ thực hiện trong các kích thước bù (ví dụ -o1). Vì vậy, điều đó hơi giống với đồng bộ hóa dd , nhưng khác xa vì nó sẽ chỉ bắt chước chức năng nhận dạng NẾU bạn đã sẵn sàng ghi đè lên toàn bộ thiết bị / tệp đầu ra.
Mặc dù, nhờ có sự hiện diện của tùy chọn dài dòng và khả năng ghi lại các thành phần / khối xấu - gddresTHER có vẻ như là một lựa chọn tốt hơn. Điều quan trọng cần lưu ý là cả hai ứng dụng đã được khởi chạy với (khá nhiều) thông số giống hệt nhau.
Đầu ra của
khác?
trống (thoát 0), có nghĩa là các tệp hoàn toàn giống nhau.
Bây giờ đây là phần tôi KHÔNG hiểu:
dd chậm ngay cả trên các công cụ không có lỗi vì nó đọc và ghi rất nhỏ. Nó dành rất nhiều thời gian để nhai qua các phần lỗi của ổ đĩa, thay vì đọc càng nhiều thứ không có lỗi càng tốt, THÌ quay trở lại để làm những việc khó khăn.
Đó là những gì tất cả về? Đặc biệt là phần " nó dành nhiều thời gian để nhai qua các phần lỗi của ổ đĩa, thay vì đọc càng nhiều thứ không có lỗi càng tốt, THÌ sẽ quay lại làm những việc khó khăn "? Phải mất cùng một khoảng thời gian như được hiển thị ở trên (mặc dù tôi đã kiểm tra một phần rất nhỏ của dữ liệu, nhưng điều đó có quan trọng không?).
gddresTHER cung cấp công tắc -r , sẽ kiểm soát lượng đọc lại trên một "khu vực xấu", tuy nhiên, dd dường như đang chạy với -r0 (vì nó mất cùng thời gian). Vì vậy, tùy chọn này chỉ đơn thuần là "xử lý hậu kỳ"? Những gì tôi đang nhận được là ban đầu cả dd và gddresTHER dường như đang chạy với -r0 và dd dường như không nhai qua các phần sai lầm hơn bất kỳ gddresTHER (cả hai dường như dừng lại trên một khối xấu trong 15-18 Vài giây cho hoặc nhận, vậy thỏa thuận là gì, làm thế nào là gddresTHER nhanh hơn ???)
Ngoài ra, tùy chọn -D (sử dụng ghi đồng bộ cho tệp đầu ra) để làm gì? Tôi đã không nhận thấy bất kỳ sự khác biệt từ một số thử nghiệm được tiến hành.
Bất cứ ai có thể nhận xét về tất cả mọi thứ? Cảm ơn.