Câu trả lời:
Sẽ
dd if=/dev/zero of=/dev/sda
xóa sạch một bảng phân vùng có sẵn?
Có, bảng phân vùng nằm trong phần đầu tiên của ổ đĩa, vì vậy viết lên nó sẽ phá hủy nó. Điều đó dd
sẽ ghi trên toàn bộ ổ đĩa nếu bạn để nó chạy (vì vậy sẽ mất khá nhiều thời gian).
Một cái gì đó tương tự dd bs=512 count=50 if=/dev/zero of=/dev/sda
sẽ đủ để ghi đè lên 50 lĩnh vực đầu tiên, bao gồm bảng phân vùng MBR và GPT chính. Mặc dù ít nhất là theo Wikipedia, GPT có một bản sao thứ cấp của bảng phân vùng ở cuối ổ đĩa, do đó, việc ghi đè chỉ phần trong đầu ổ đĩa có thể không đủ.
(Tuy nhiên, bạn không phải sử dụng dd
. head -c10000 /dev/zero > /dev/sda
Hoặc cat /bin/ls > /dev/sda
sẽ có tác dụng tương tự.)
thực hiện
fdisk /dev/sda g
(đối với GPT) quét sạch các số không được viết bởi / dev / zero?
Cũng có (với điều kiện bạn lưu các thay đổi).
(Tuy nhiên, cụm từ trong tiêu đề chỉ gây nhầm lẫn, /dev/zero
bản thân nó không làm gì hơn bất kỳ bộ lưu trữ thông thường nào.)
/bin/ls
đủ ngắn, thì thao tác ghi có thể chỉ ghi đè lên một vài byte của MBR và phần quan trọng nhất (bắt đầu và kết thúc các phân vùng) có thể vẫn còn nguyên. Mặc dù cài đặt lại MBR (phổ biến nhất grub --install /dev/sda
) , vẫn được yêu cầu để làm cho hệ thống có thể khởi động lại.
ls
nhị phân thực tế chứ không phải đầu ra từ việc chạy nó. Nhị phân ELF "Hello World" nhỏ nhất có thể là 98 byte (ít hơn MBR), nhưng tôi nghĩ rằng sẽ an toàn khi giả định rằng bất kỳ nhị phân nào có tính năng thực tế phải lớn hơn MBR (triển khai FreeBSD nhỏ nổi tiếng ls
là 32784 byte dài, thậm chí đủ lớn để ghi đè lên phần bắt đầu của đĩa GPT). ;)
ls
quá. Một danh sách /usr/bin
có lẽ sẽ đủ dài. Tôi sẽ sử dụng echo
như một ví dụ, nhưng IIRC bạn cần gần 500 byte để ghi đè lên bảng phân vùng MBR, vì vậy sẽ hơi mệt khi gõ. (bất kể con số chính xác là gì)
Bảng phân vùng được lưu trữ gần đầu 1 của thiết bị đĩa (logic 2 ).
Ghi đè khu vực đó bằng bất cứ thứ gì (số không từ /dev/zero
hoặc bất kỳ dữ liệu nào khác) sẽ thay thế bảng phân vùng bằng chữ vô nghĩa, do đó sẽ không còn rõ ràng khi các phân vùng trên thiết bị bắt đầu.
Tuy nhiên, người ta vẫn có thể quét toàn bộ đĩa và cố gắng xác định "byte ma thuật" đánh dấu sự khởi đầu của các hệ thống tệp.
Ngược lại, nếu bạn sử dụng fdisk
(hoặc bất kỳ công cụ phân vùng nào khác) để tạo bảng phân vùng mới, công cụ sẽ ghi đè lên một vài byte đầu tiên của đĩa để lưu trữ bảng mới đó.
Chỉ có một khởi đầu cho đĩa, vì vậy bất cứ điều gì bạn làm cuối cùng sẽ "dính" vào đó.
Tuy nhiên, lưu ý rằng một số định dạng bảng phân vùng (như GPT) sẽ giữ các bản sao lưu ở các vị trí khác nhau (ví dụ: ở cuối đĩa cho GPT), từ đó một số thông tin phân vùng có thể được phục hồi.
1: ví dụ như trong 512 byte đầu tiên cho một MBR hoặc đầu tiên và cuối cùng 17.408 byte cho một GPT
2: ổ đĩa nội bộ có thể remap các khối logic đến các bộ phận khác nhau của môi trường vật lý, nhưng bản đồ đó là vô hình (và không quan trọng cho) hệ điều hành.
/dev/zero
xóa sạch thứ gì đó, nó sẽdd
xóa sạch nó bằng cách sao chép nó. Sự thật là các byte xảy ra bằng 0 và các byte bằng 0 xảy ra/dev/zero
thay vì một số nguồn khác là các chi tiết nhỏ.