Sự khác biệt giữa sdelete -c và -z là gì?


24

Tôi đã học được từ bài viết này để sử dụng sdelete như một bước để thu nhỏ tệp VDI:

sdelete -c c:

Nhưng -c('Làm sạch không gian trống' như được mô tả bởi văn bản trợ giúp của nó) nghĩa là gì? Nó không viết không gian trống bằng không? Và những gì về -z(Không gian trống)? Sự khác biệt giữa sdelete -c và -z là gì?

Chỉnh sửa

Tôi đã thử bước trong bài viết được đề cập trước đó, nhưng không thể giảm kích thước của .vidtệp. Sau đó, tôi đã theo dõi bài đăng siêu người dùng này , và thay đổi tùy chọn -cthành -z, và đã thành công.

Vì vậy, nó dường như -zghi số không vào không gian trống, và -cviết một cái gì đó khác (có thể là các bit ngẫu nhiên).

Câu trả lời:


21

Tôi nghĩ rằng đây là một lỗi phổ biến. Có thể tùy chọn -z không có sẵn trong các phiên bản trước. SDelete 1.61 nói

-z         Zero free space (good for virtual disk optimization)

Lưu ý rằng làm như vậy trước tiên sẽ mở rộng đĩa cứng của bạn đến kích thước đầy đủ. Chỉ trong quá trình thu nhỏ của VMWare, nó sẽ trở nên nhỏ hơn một lần nữa.

Một thử nghiệm nhanh trên máy của tôi:

-z took 1:01 minutes
-c took 2:11 minutes

Điều đó chỉ ra rằng -z chỉ viết các số 0 đơn giản trong khi -c là tiêu chuẩn quân sự xóa sạch DoD 5220,22-M như được viết trên trang web SDelete .


Nó sẽ không làm phồng tập tin nếu phần mềm có phần thông minh. Hầu hết các ứng dụng ảo hóa là. Tôi mới thử nó trong VMware Fusion, nó không tăng kích thước tệp nào cả.
Daniel B

1
Thật không may, VMWare Workstation Pro 12 không mở rộng đĩa tới kích thước đầy đủ.
Lebenita

-c và -z đã được quảng cáo trong 1.51 chính xác theo cách khác (cho dù đó chỉ là một lỗi trong mô tả hoặc các chức năng cũng bị đảo ngược tôi không biết). Cách 1.61 có ý nghĩa hơn rất nhiều, rõ ràng.
Lebenita

Chỉ cần kiểm tra với Windows 2012 và tệp VHDX 20GB mới. Tùy chọn -z rất nhanh (giây) và tệp đĩa VHDX không tăng kích thước. Tùy chọn -c đang chạy chậm hơn nhiều và VHDX đang tăng kích thước. Vì vậy, -z là tùy chọn ưa thích cho cái gọi là đĩa cứng ảo mỏng / mở rộng, đặc biệt nếu bạn vượt quá dung lượng đĩa đã cam kết. Nhưng nó không an toàn như tùy chọn -c
munrobasher

1
Chỉ cần kiểm tra phiên bản mới nhất (2.0) và có hai sự khác biệt rõ ràng. Đầu tiên, có phiên bản 32 bit và 64 bit (sdelete.exe & sdelete64.exe). Nhưng cũng có một sự khác biệt tinh tế trong lệnh -c khiến bạn lo lắng. Trong v1.61, tùy chọn -c cho biết "Dọn sạch không gian trống" nhưng trong phiên bản 2.0, nó nói "Không gian trống". Tùy chọn -z cũng nói zeroing. Có phải nó đã mất tùy chọn dữ liệu ngẫu nhiên ??
munrobasher

5

Điều này đáng lẽ phải được đăng một cách thích hợp như một bình luận cho câu trả lời của Thomas, nhưng vì tôi chưa thể làm điều đó nên tôi đã đăng nó ở đây.

Trộn lẫn các tùy chọn "-z" và "-c" có lẽ là một "lỗi phổ biến", bởi vì SDelete đã thay đổi hành vi của các tùy chọn đã nói trong nhiều năm qua. Nhìn vào các tài liệu tham khảo được cung cấp dưới đây, có vẻ như SDelete trước tiên có tùy chọn "-z" đã thực hiện "xóa tiêu chuẩn quân sự", sau đó thêm tùy chọn "-c" để lấy không gian trống, sau đó ở đâu đó giữa v1.51 và v1. 61 chuyển hành vi đó sang hiện tại.

Tài liệu tham khảo: sysinternals.com diễn đàntrang web của sdelete cũ trên Microsoft TechNet qua archive.org.


Đây không phải là một câu trả lời cho câu hỏi ban đầu. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào .
DavidPostill

4
Đây không phải là một câu trả lời cho câu hỏi ban đầu. Vui lòng đọc lại dòng đầu tiên của bài viết mặc dù. Nếu có một quy trình tốt hơn để thêm thông tin hữu ích và / hoặc thích hợp vào câu trả lời đã có sẵn cho một người nào đó, người vừa đăng ký dịch vụ, vui lòng khai sáng cho tôi.
LN2

"Nếu có một quy trình tốt hơn để thêm thông tin hữu ích và / hoặc thích hợp vào câu trả lời đã có sẵn cho ai đó, người vừa đăng ký dịch vụ, vui lòng khai sáng cho tôi" - không, xin vui lòng đọc các liên kết tôi cung cấp.
DavidPostill

Thật thú vị khi lưu ý trong 1.61 bất kể bạn sử dụng công tắc nào, nó luôn luôn nói "Không có không gian trống" (và trong 1.51, nó luôn luôn ghi "Làm sạch không gian trống"). Điều đó hơi sai lệch, trong một thời gian, nó khiến tôi không tin rằng "-c" thực sự là "sạch" và không phải là "không".
rkagerer

5

Tài liệu hiện tại (và phiên bản chương trình 2.01):

  • -c: Làm sạch không gian trống. Chỉ định một lượng tùy chọn không gian trống để sử dụng bởi hệ thống đang chạy.
  • -z: Không gian trống (tốt cho tối ưu hóa đĩa ảo).

Nhưng trong các phiên bản cũ hơn, nó đã bị đảo ngược:

  • -c: Không gian trống (tốt cho tối ưu hóa đĩa ảo).
  • -z: Làm sạch không gian trống.

nhập mô tả hình ảnh ở đây

Nhưng họ làm gì?

Clean tạo tệp lớn nhất có thể và điền vào nó với dữ liệu ngẫu nhiên , sau đó điền vào nó bằng số không. Đây là những gì hầu hết mọi người nghĩ về việc lau , và nó quá mức cần thiết.

Nhược điểm là nếu bạn đang sử dụng đĩa ảo hoặc bên trong máy ảo hoặc chạy trên không gian lưu trữ: hệ thống lưu trữ bên dưới sẽ buộc phải phân bổ tài nguyên để giữ cho bạn dữ liệu ngẫu nhiên, sau đó giữ số không. Hy vọng sau đó hệ thống lưu trữ cơ bản sẽ nhận ra rằng tất cả không gian được phân bổ cho ổ đĩa của bạn có thể được thu hồi vì tất cả các khu vực đó chỉ chứa số không.

-z Zero: Đơn giản chỉ cần viết số không cho tất cả các lĩnh vực. Đây là tùy chọn bạn muốn, vì nhiều lý do:

  • xóa sạch dữ liệu ngẫu nhiên là quá mức cần thiết (đọc dữ liệu là không thể thực tế; tức là mỗi lần một bit mặc dù kính hiển vi là không khả thi)
  • một số ổ SSD có thể phát hiện ra rằng bạn đang viết số 0 cho một khu vực và có thể sử dụng số đó để đánh dấu khu vực đó là miễn phí (tương tự như TRIM)
  • hầu hết các hệ thống lưu trữ ảo (VMWare, Hyper-V, Windows Virtual Disks, Storage Spaces) nhận ra rằng bạn đang viết toàn bộ khu vực số không và tận dụng cơ hội để lấy lại không gian trong tệp lưu trữ bên dưới
  • SSD sẽ không biết rằng mục tiêu cuối cùng của bạn về cơ bản là TRIM được tôn vinh và (như các đĩa ảo) bị buộc phải điền vào các khu vực đã chứa số không, không có số không, chỉ để bạn điền lại số không. Điều đó thật tồi tệ cho ổ SSD của bạn.

Nguồn : Gắn một đĩa cứng ảo và xem các hoạt động I / O mà sdelete thực hiện ở cả hai chế độ.

tl; dr: Sử dụng -z Zero. Nó nhanh hơn, tốt hơn, an toàn hơn.

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.