Tại sao GNU shred nhanh hơn dd khi điền vào một ổ đĩa với dữ liệu ngẫu nhiên?


8

Trong khi xóa an toàn một ổ cứng trước khi ngừng hoạt động tôi nhận thấy, việc đó dd if=/dev/urandom of=/dev/sdamất gần cả ngày, trong khi shred -vf -n 1 /dev/sdachỉ mất vài giờ với cùng một máy tính và cùng một ổ đĩa.

Sao có thể như thế được? Tôi đoán rằng nút cổ chai là đầu ra hạn chế của /dev/urandom. Shred có sử dụng một số trình tạo giả ngẫu nhiên ít ngẫu nhiên và chỉ đủ cho mục đích duy nhất của nó (tức là hiệu quả hơn) urandomkhông?


Lưu ý rằng tùy chọn tốt nhất để xóa các ổ đĩa, đặc biệt là ổ đĩa ssd, là lệnh xóa an toàn SATA. Bất kỳ tùy chọn nào khác - chặn phá hủy - sẽ thất bại. Nó cũng nhanh hơn nhiều và có thể chỉ mất vài giây trên ổ SSD.
Maarten Bodewes

Câu trả lời:


11

Shred sử dụng một trình tạo giả ngẫu nhiên nội bộ

Theo mặc định, các lệnh này sử dụng một trình tạo giả ngẫu nhiên nội bộ được khởi tạo bởi một lượng nhỏ entropy, nhưng có thể được chuyển hướng để sử dụng nguồn bên ngoài với tùy chọn tệp --random-source =. Một lỗi được báo cáo nếu tập tin không chứa đủ byte.

Ví dụ: tệp thiết bị / dev / urandom có thể được sử dụng làm nguồn dữ liệu ngẫu nhiên. Thông thường, thiết bị này thu thập tiếng ồn môi trường từ trình điều khiển thiết bị và các nguồn khác vào một nhóm entropy và sử dụng nhóm này để tạo ra các bit ngẫu nhiên. Nếu nhóm thiếu dữ liệu, thiết bị sẽ sử dụng lại nhóm nội bộ để tạo ra nhiều bit hơn, sử dụng trình tạo số giả ngẫu nhiên được bảo mật bằng mật mã. Nhưng hãy lưu ý rằng thiết bị này không được thiết kế để tạo dữ liệu ngẫu nhiên hàng loạt và tương đối chậm .

Tôi không thuyết phục rằng dữ liệu ngẫu nhiên là bất kỳ hiệu quả hơn một pass duy nhất của zero (hoặc bất kỳ giá trị byte khác) tại che khuất nội dung trước.

Để ngừng hoạt động một cách an toàn một ổ đĩa, tôi sử dụng một nam châm lớn và một cái búa lớn.


2

Tôi đoán nó sẽ được gây ra thay vì ddsử dụng các phần nhỏ hơn để ghi dữ liệu. Hãy thử dd if=... of=... bs=(1<<20)xem nó hoạt động tốt hơn.


Tôi sẽ thử điều đó vào dịp tiếp theo và đăng kết quả.

+1 ddKích thước khối mặc định là 512. Nó thực hiện theo cách dưới giới hạn đĩa trên máy tính của tôi.
Piotr Findeisen

/ dev / urandom có ​​khả năng rất nhanh - kích thước khối dd gần như là vấn đề.
Dan Pritts

2
Khi bạn tăng kích thước khối, có vẻ như nó có /dev/urandomthể trở thành nút cổ chai - Tôi đang thử nghiệm một số ổ SSD qua USB 3.0 và với cùng một ddlệnh tôi nhận được 326 MB / giây if=/dev/zeronhưng chỉ 12,8 MB / giây choif=/dev/urandom
austinmarton
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.