Làm thế nào để xóa không gian đĩa trống trong Linux?


145

Khi một tệp bị xóa, nội dung của nó vẫn có thể bị bỏ lại trong hệ thống tệp, trừ khi được ghi đè rõ ràng bằng thứ khác. Các wipelệnh một cách an toàn có thể xóa các tập tin, nhưng dường như không cho phép xóa không gian đĩa miễn phí không được sử dụng bởi bất kỳ tập tin.

Tôi nên sử dụng những gì để đạt được điều này?


Giải pháp an toàn duy nhất có thể là lưu các tệp của bạn ở nơi khác, xóa toàn bộ phân vùng, tạo lại hệ thống tệp và sau đó khôi phục các tệp của bạn. Tôi đã chạy photorec và bị sốc bởi có bao nhiêu thứ có thể được lấy ngay cả sau khi 'xóa sạch' không gian trống. Một giải pháp thỏa hiệp là di chuyển ranh giới bên trái của phân vùng của bạn bằng 6% kích thước của nó sau khi xóa sạch không gian trống rõ ràng.
dùng39559

Câu trả lời:


107

Cảnh báo: Phần cứng đĩa / SSD hiện đại và hệ thống tệp hiện đại có thể thu thập dữ liệu ở những nơi bạn không thể xóa chúng, vì vậy quá trình này vẫn có thể để lại dữ liệu trên đĩa. Các cách xóa dữ liệu an toàn duy nhất là lệnh ATA Secure Erase (nếu được thực hiện đúng cách) hoặc hủy vật lý. Ngoài ra hãy xem Làm thế nào tôi có thể xóa tất cả thông tin trên ổ cứng một cách đáng tin cậy?

Bạn có thể sử dụng một bộ công cụ gọi là an toàn-xóa.

sudo apt-get install secure-delete

Điều này có bốn công cụ:

srm- xóa an toàn một tệp hiện có
smem- xóa an toàn dấu vết của tệp khỏi ram
sfill- xóa tất cả khoảng trống được đánh dấu là trống trên ổ cứng của bạn
sswap- xóa tất cả dữ liệu khỏi không gian hoán đổi của bạn.

Từ trang người đàn ông của srm

srm được thiết kế để xóa dữ liệu trên các phương tiện một cách an toàn mà kẻ trộm, thực thi pháp luật hoặc các mối đe dọa khác không thể phục hồi. Thuật toán xóa dựa trên bài báo "Xóa dữ liệu an toàn khỏi bộ nhớ trạng thái rắn và từ tính" được trình bày tại Hội nghị chuyên đề bảo mật Usenix lần thứ 6 của Peter Gutmann, một trong những nhà mật mã dân sự hàng đầu.

Quá trình xóa dữ liệu an toàn của srm diễn ra như sau:

  • 1 lượt với 0xff
  • 5 đường chuyền ngẫu nhiên. /dev/urandomđược sử dụng cho RNG an toàn nếu có.
  • 27 đường chuyền với giá trị đặc biệt được xác định bởi Peter Gutmann.
  • 5 đường chuyền ngẫu nhiên. /dev/urandomđược sử dụng cho RNG an toàn nếu có.
  • Đổi tên tệp thành giá trị ngẫu nhiên
  • Cắt bớt tập tin

Là một biện pháp bảo mật bổ sung, tệp được mở ở chế độ O_SYNC và sau mỗi lần vượt qua, một fsync()cuộc gọi được thực hiện. srmghi các khối 32k cho mục đích tốc độ, lấp đầy bộ đệm của bộ đệm đĩa để buộc chúng xóa và ghi đè dữ liệu cũ thuộc về tệp.


5
Thật khó để xác định trang chủ "chính thức" hiện tại của xóa an toàn. Một phiên bản có lẽ cũ hơn tuyên bố không có báo cáo lỗi, nhưng đồng thời không có hệ thống sửa lỗi mở, nơi tôi có thể báo cáo một lỗi mà tôi đã tìm thấy. Trang chủ xóa an toàn cũng chỉ ra rằng nó có thể không xóa sạch tất cả các khối dữ liệu không sử dụng, tùy thuộc vào hệ thống tệp mà bạn sử dụng, điều này là đúng.
dùng39559

11
Với các đĩa cứng hiện đại (lớn hơn khoảng 20 GB), việc thực hiện vài lần và chờ đợi lâu là hoàn toàn vô ích. Vì vậy, cài đặt các công cụ chuyên dụng cũng trở nên vô dụng (điều này có thể giải thích tại sao xóa an toàn không có trang chủ nữa). Chỉ cần làm điều này từ phân vùng thích hợp : cat /dev/zero >nosuchfile; rm nosuchfile.
mivk

1
@mivk: Tại sao làm nhiều hơn một lần là vô ích? Và tại sao sử dụng / dev / zero thay vì / dev / ngẫu nhiên? Đó có phải là do mối quan tâm về tốc độ?
nè 101

5
Sử dụng / dev / zero nhanh hơn nhiều. Nếu bạn viết không gian trống từ / dev / ngẫu nhiên, hạt nhân phải tạo ra tất cả dữ liệu ngẫu nhiên đó một cách nhanh chóng. Đó là một cách thú vị để xem trung bình tải của bạn tăng lên tối đa ...
dafydd


71

Cách nhanh nhất, nếu bạn chỉ cần một lần duy nhất và chỉ muốn thay thế mọi thứ bằng số không, là:

cat /dev/zero > zero.file
sync
rm zero.file

(chạy từ một thư mục trên hệ thống tệp bạn muốn xóa)
( synclệnh là thước đo hoang tưởng đảm bảo tất cả dữ liệu được ghi vào đĩa - trình quản lý bộ đệm thông minh có thể hoạt động để có thể hủy ghi cho bất kỳ khối đang chờ xử lý nào khi tệp không được liên kết )

Sẽ có một khoảng thời gian trong hoạt động này khi không có không gian trống trên hệ thống tập tin, có thể là hàng chục giây nếu tệp kết quả lớn và bị phân mảnh nên phải mất một thời gian để xóa. Để giảm thời gian khi freespace hoàn toàn bằng không:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
cat /dev/zero > zero.file
sync
rm zero.small.file
rm zero.file

Điều này là đủ để ngăn chặn ai đó đọc nội dung tệp cũ mà không cần một hoạt động pháp y đắt tiền. Để an toàn hơn một chút, nhưng chậm hơn, biến thể thay thế /dev/zerobằng /dev/urandom. Đối với nhiều hoang tưởng hơn, hãy chạy nhiều bước với /dev/urandom, mặc dù nếu bạn cần nhiều nỗ lực đó thì shredtiện ích từ gói coreutils là cách để đi:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
shred -z zero.small.file
cat /dev/zero > zero.file
sync
rm zero.small.file
shred -z zero.file
sync
rm zero.file

Lưu ý rằng ở trên, tệp nhỏ được băm nhỏ trước khi tạo tệp lớn hơn, vì vậy nó có thể được gỡ bỏ ngay khi tệp lớn hơn hoàn thành thay vì phải chờ nó được băm nhỏ để lại hệ thống tệp không có không gian trống trong thời gian đó. Quá trình cắt nhỏ mất nhiều thời gian trên một tệp lớn và trừ khi bạn đang cố gắng giấu thứ gì đó khỏi NSA không thực sự cần thiết IMO.

Tất cả các bên trên nên làm việc trên bất kỳ hệ thống tập tin.

Giới hạn kích thước tệp:

Như DanMoulding chỉ ra trong một bình luận bên dưới, điều này có thể có vấn đề với giới hạn kích thước tệp trên một số hệ thống tệp.

Đối với FAT32, đây chắc chắn sẽ là một mối lo ngại do giới hạn tệp 2GiB: hầu hết các ổ đĩa đều lớn hơn so với hiện nay (8TiB là giới hạn kích thước âm lượng IIRC). Bạn có thể giải quyết vấn đề này bằng cách dẫn cat /dev/zerođầu ra đầu ra lớn splitđể tạo ra nhiều tệp nhỏ hơn và điều chỉnh các giai đoạn cắt nhỏ và xóa cho phù hợp.

Với ext2 / 3/4 thì điều đó không đáng lo ngại: với khối 4K mặc định / phổ biến, giới hạn kích thước tệp là 2TiB, do đó bạn phải có một khối lượng lớn để điều này trở thành một vấn đề (kích thước âm lượng tối đa trong các điều kiện này là 16TiB).

Với btrfs (vẫn đang thử nghiệm), cả kích thước tệp và âm lượng tối đa là 16EiB lớn.

Trong NTFS, độ dài tệp tối đa lớn hơn chiều dài âm lượng tối đa trong một số trường hợp.

Điểm bắt đầu để biết thêm thông tin:
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability

Thiết bị ảo

Như đã đề cập trong các ý kiến ​​gần đây, có những cân nhắc thêm cho các thiết bị ảo:

  • Đối với các đĩa ảo được phân bổ thưa thớt, các phương thức khác, chẳng hạn như các phương thức được sử dụng zerofreesẽ nhanh hơn (mặc dù không giống như catddđây không phải là một công cụ tiêu chuẩn mà bạn có thể dựa vào việc có sẵn trong hầu hết mọi hệ điều hành không giống nhau).

  • Xin lưu ý rằng việc chặn một khối trên thiết bị ảo thưa thớt có thể không xóa sạch khối trên thiết bị vật lý cơ bản , thực tế tôi sẽ đi xa để nói rằng điều đó không thể xảy ra - trình quản lý đĩa ảo sẽ chỉ tạo khối như không sử dụng nữa để nó có thể được phân bổ cho một cái gì đó khác sau này.

  • Ngay cả đối với các thiết bị ảo có kích thước cố định, bạn có thể không kiểm soát được nơi thiết bị sống vật lý để có thể di chuyển xung quanh vị trí hiện tại của nó hoặc trên một bộ đĩa vật lý mới bất cứ lúc nào và hầu hết bạn có thể xóa là vị trí hiện tại, không phải bất kỳ vị trí nào trước đó, khối có thể đã cư trú trong quá khứ.

  • Đối với các sự cố trên trên thiết bị ảo: trừ khi bạn kiểm soát (các) máy chủ và có thể xóa sạch không gian chưa được phân bổ của chúng sau đó xóa sạch các đĩa trong VM hoặc di chuyển thiết bị ảo xung quanh, bạn không thể làm gì về điều này sau thực tế. Cách duy nhất là sử dụng mã hóa toàn bộ đĩa từ đầuvì vậy không có gì không được mã hóa là mọi thứ được viết cho phương tiện vật lý ở nơi đầu tiên. Dĩ nhiên, vẫn có thể có lệnh xóa không gian trống trong VM. Cũng lưu ý rằng FDE có thể làm cho các thiết bị ảo thưa thớt ít hữu ích hơn vì lớp ảo hóa thực sự không thể nhìn thấy khối nào không được sử dụng. Nếu lớp hệ thống tập tin của hệ điều hành gửi các lệnh cắt tới thiết bị ảo (như thể đó là SSD) và bộ điều khiển ảo diễn giải những điều này, thì điều đó có thể giải quyết điều này, nhưng tôi không biết bất kỳ trường hợp nào thực sự xảy ra và rộng hơn thảo luận về vấn đề đó là một vấn đề cho những nơi khác (chúng tôi đã gần như lạc đề về câu hỏi ban đầu, vì vậy nếu điều này đã khơi gợi sự quan tâm của bạn, một số câu hỏi thử nghiệm và / hoặc câu hỏi tiếp theo có thể theo thứ tự).


4
Việc tạo số 0 đơn giản rõ ràng cũng có thể được thực hiện bằng các secure-deletecông cụ: sử dụng sfill -llzlàm giảm toàn bộ quy trình xuống một lần mà chỉ ghi '0'.
trả trước

Điều này mất một lúc. Có thực sự là cách nhanh nhất? Tôi đoán văn bản GB dữ liệu sẽ luôn luôn phải mất một thời gian ...
endolith

2
@endolith: nếu bạn muốn làm trống không gian trống trên hệ thống tệp đang hoạt động thì bạn không thể giải quyết được nhu cầu ghi nhiều dữ liệu đó qua chi phí hệ thống tệp. Các công cụ xóa an toàn được đề xuất bởi fnord_ix có thể nhanh hơn, vì chúng được tối ưu hóa cho loại tác vụ này.
David Spillett

2
@endolith: từ mô tả trong trang man Tôi mong muốn biến thể của zerofree chỉ nhanh hơn đối với các đĩa ảo được phân bổ thưa thớt, trên thực tế, nó có thể chậm hơn trên các đĩa ảo thực hoặc có kích thước cố định nếu nó đang đọc trước khi ghi để xác nhận rằng khối không có nội dung. Việc khinh khí cầu cho một đĩa ảo không nên xảy ra vì hầu hết các trình điều khiển đĩa thưa thớt đều lấy số không là "không phân bổ khối này". Ngoài ra, catddcó sẵn trên hầu hết mọi hệ điều hành không giống nhau vì chúng được coi là các công cụ tiêu chuẩn zerofreecó thể không có trừ khi nó được thêm vào rõ ràng.
David Spillett

1
@endolith: đã nói ở trên, zerofreetất nhiên sẽ hoạt động, "toàn bộ hệ thống tập tin tạm thời đầy đủ" được đề cập trong trang người đàn ông (hầu như không được giảm nhẹ bởi trò đùa chọc cười của small.file trong ví dụ của tôi) một mối quan tâm thực sự nếu bạn đang làm điều này trên một hệ thống hiện đang hoạt động và zerofreethực sự sẽ nhanh hơn trong trường hợp cụ thể, nó được tối ưu hóa cho: các thiết bị khối ảo được phân bổ thưa thớt. Mặc dù bạn không thể dựa vào bất kỳ thao tác xóa nào trên thiết bị ảo vì mục đích bảo mật: câu trả lời đúng duy nhất trong trường hợp đó là mã hóa toàn bộ thiết bị ngay từ đầu.
David Spillett

45

CẢNH BÁO

Tôi đã bị sốc bởi có bao nhiêu tập tin photorec có thể lấy từ đĩa của tôi, ngay cả sau khi xóa.

Cho dù có nhiều bảo mật hơn trong việc lấp đầy "không gian trống" chỉ 1 lần với 0x00 hoặc 38 lần với các tiêu chuẩn cabalistic khác nhau sẽ là một cuộc thảo luận học thuật. Tác giả của bài báo bán kết năm 1996 về việc băm nhỏ đã tự viết cho mình một đoạn kết nói rằng điều này đã lỗi thời và không cần thiết cho phần cứng hiện đại. Không có trường hợp nào được ghi nhận là dữ liệu được thay thế bằng 0 và được phục hồi sau đó.

Liên kết dễ vỡ thực sự trong thủ tục này là hệ thống tập tin . Một số hệ thống tập tin dành không gian cho mục đích sử dụng đặc biệt và nó không được cung cấp dưới dạng "không gian trống". Nhưng dữ liệu của bạn có thể ở đó . Điều đó bao gồm hình ảnh, email văn bản đơn giản cá nhân, bất cứ điều gì. Tôi vừa mới googled reserved + space + ext4 và biết rằng 5% homephân vùng của tôi đã được bảo lưu. Tôi đoán đây là nơi photorectìm thấy rất nhiều thứ của tôi. Kết luận: phương pháp băm nhỏ không phải là quan trọng nhất, ngay cả phương pháp multi-pass vẫn để nguyên dữ liệu .

Bạn có thể thử # tune2fs -m 0 /dev/sdn0trước khi gắn nó. (Nếu đây sẽ là phân vùng gốc sau khi khởi động lại, hãy đảm bảo chạy -m 5hoặc -m 1sau khi ngắt kết nối nó).

Tuy nhiên, bằng cách này hay cách khác, có thể còn một khoảng trống.

Cách duy nhất thực sự an toàn là xóa toàn bộ phân vùng, tạo lại hệ thống tệp và sau đó khôi phục các tệp của bạn từ bản sao lưu.


Cách nhanh chóng (khuyên dùng)

Chạy từ một thư mục trên hệ thống tập tin bạn muốn xóa:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

Lưu ý: mục đích của tệp nhỏ là giảm thời gian khi không gian trống hoàn toàn bằng không; mục đích của đồng bộ hóa là để đảm bảo dữ liệu được ghi thực sự.

Điều này là đủ tốt cho hầu hết mọi người.

Con đường chậm (hoang tưởng)

Không có trường hợp tài liệu nào được phục hồi sau khi làm sạch ở trên. Nó sẽ là tốn kém và đòi hỏi tài nguyên, nếu có thể.

Tuy nhiên, nếu bạn có lý do để nghĩ rằng các cơ quan bí mật sẽ dành nhiều tài nguyên để khôi phục các tệp của bạn, thì điều này là đủ:

dd if=/dev/urandom of=random.small.file bs=1024 count=102400
dd if=/dev/urandom of=random.file bs=1024
sync ; sleep 60 ; sync
rm random.small.file
rm random.file

Phải mất nhiều thời gian hơn.

Cảnh báo. Nếu bạn đã chọn cách hoang tưởng, sau này bạn vẫn muốn thực hiện việc lau nhanh, và đó không phải là hoang tưởng. Sự hiện diện của dữ liệu hoàn toàn ngẫu nhiên rất dễ dàng và rẻ tiền để phát hiện, và làm tăng sự nghi ngờ rằng nó thực sự là dữ liệu được mã hóa. Bạn có thể chết vì bị tra tấn vì không tiết lộ khóa giải mã.

Cách rất chậm (hoang tưởng điên rồ)

Ngay cả tác giả của bài báo bán kết năm 1996 về việc băm nhỏ đã viết một đoạn kết nói rằng điều này đã lỗi thời và không cần thiết cho phần cứng hiện đại.

Nhưng nếu bạn có nhiều thời gian rảnh và bạn không lãng phí đĩa của mình với quá nhiều ghi đè, thì nó sẽ xuất hiện:

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
sync ; sleep 60 ; sync
shred -z zero.small.file
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
shred -z zero.file
sync ; sleep 60 ; sync
rm zero.file

Lưu ý: điều này về cơ bản tương đương với việc sử dụng công cụ xóa an toàn.


Trước khi chỉnh sửa, bài đăng này là một bản viết lại của David Spillett. Lệnh "cat" tạo thông báo lỗi, nhưng tôi không thể viết bình luận trên bài đăng của người khác.


Bạn có thể bình luận dưới bài viết của người khác với 50 danh tiếng .
Gnoupi

1
Các catlệnh được dự kiến sẽ đưa ra một "không gian còn lại" lỗi trong ví dụ của tôi, ở phần cuối của chạy của nó. Bạn có thể che giấu điều này bằng cách chuyển hướng stderr đến /dev/nullnếu nó là một vấn đề. Tôi thường sử dụng pvchứ không phải cathoặc ddcho loại điều này, để có được chỉ dẫn tiến trình hữu ích.
David Spillett

4
...raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.Heh, đó chính xác là những gì tôi đã nghĩ. Tôi đoán điều đó có nghĩa là tôi bị hoang tưởng ...
Navin 14/12/13

2
Root luôn có thể sử dụng không gian dành riêng. Vì vậy, nếu bạn thực hiện điền 0 của bạn với quyền root, bạn cũng có thể lấp đầy không gian dành riêng 5%; các tunefs là không cần thiết. Vẫn có thể hình dung rằng có thể có dữ liệu trong các phần khác của hệ thống tập tin.
Nate Eldredge

1
@NateEldredge Bạn có nguồn nào cho biết việc ddchạy dưới dạng root cung cấp quyền truy cập vào nhiều hệ thống tệp hơn là ddkhông có root không? Tôi muốn tin điều này là đúng, nhưng có thể thấy không có lý do gì vào lúc này.
Hashim

27

Có tiện ích zerofree ít nhất trong Ubuntu:

http://manpages.ubfox.com/manpages/natty/man8/zerofree.8.html

   zerofree — zero free blocks from ext2/3 file-systems

   zerofree  finds  the  unallocated, non-zeroed blocks in an ext2 or ext3
   filesystem (e.g. /dev/hda1) and fills them with zeroes. This is  useful
   if  the  device  on  which this file-system resides is a disk image. In
   this case, depending on the type of disk image, a secondary utility may
   be  able  to  reduce the size of the disk image after zerofree has been
   run.

   The usual way to achieve  the  same  result  (zeroing  the  unallocated
   blocks)  is to run dd (1) to create a file full of zeroes that takes up
   the entire free space on the drive, and then delete this file. This has
   many disadvantages, which zerofree alleviates:

      ·  it is slow;

      ·  it makes the disk image (temporarily) grow to its maximal extent;

      ·  it  (temporarily)  uses  all  free  space  on  the disk, so other
         concurrent write actions may fail.

   filesystem has to be unmounted or mounted  read-only  for  zerofree  to
   work.  It  will exit with an error message if the filesystem is mounted
   writable. To remount the  root  file-system  readonly,  you  can  first
   switch to single user runlevel (telinit 1) then use mount -o remount,ro
   filesystem.

Đồng thời kiểm tra liên kết này về zerofree: Giữ hình ảnh hệ thống tập tin thưa thớt - đó là từ tác giả của nó - Ron Yorston (ngày 9 tháng 8 năm 2012)


3
Điều quan trọng là hệ thống tập tin phải được ngắt kết nối hoặc gắn kết chỉ đọc để zerofree hoạt động.
AntonioK

1
Sẽ rất tốt nếu bao gồm một số thông tin về cách thực hiện việc này trên hệ thống tệp gốc. Cảm giác của tôi là điều này sẽ không hoạt động, bởi vì bạn phải ngắt kết nối hệ thống tệp, trong khi chạy đồng thời công cụ từ hệ thống tệp đã nói.
Ant6n

Điều này cũng đi kèm với CentOS
davidgo

3

Đây là cách thực hiện với GUI.

  1. Cài đặt BleachBit
  2. Chạy bằng root bằng cách nhấp vào Ứng dụng - Công cụ hệ thống - BleachBit với tư cách Quản trị viên.
  3. Trong các tùy chọn, cho nó biết con đường nào bạn muốn. Nói chung nó đoán họ tốt. Bạn muốn bao gồm một đường dẫn có thể ghi cho mỗi phân vùng. Nói chung đó là / home / tên người dùng và / tmp, trừ khi chúng là cùng một phân vùng, trong trường hợp này chỉ cần chọn một.
  4. Chọn hộp Hệ thống - Xóa dung lượng đĩa trống.
  5. Nhấp vào Xóa.

Sự tiến bộ của BleachBit so với dd (nếu không thì rất hay) là khi đĩa cuối cùng đã đầy, BleachBit tạo các tệp nhỏ để xóa các nút (chứa siêu dữ liệu như tên tệp, v.v.).


Kiểm tra mã python mã nguồn mở của Bleachbit để xóa tự do khỏi ổ đĩa cho chính bạn.
Shadowbq

2

Tôi sử dụng ddđể phân bổ một hoặc nhiều tệp lớn để lấp đầy không gian trống, sau đó sử dụng tiện ích xóa an toàn.

Để phân bổ tệp với dd hãy thử:

dd if=/dev/zero of=delete_me bs=1024 count=102400

Điều này sẽ tạo ra một tệp có delete_mekích thước 100 MB. (Đây bslà "kích thước khối" được đặt thành 1k và countlà số khối cần phân bổ.)

Sau đó, sử dụng tiện ích xóa an toàn yêu thích của bạn (Tôi đã sử dụng shred) trên các tệp được tạo.

Nhưng LƯU Ý NÀY: bộ đệm có nghĩa là ngay cả khi bạn làm toàn bộ đĩa, bạn có thể không nhận được tất cả mọi thứ!


Liên kết này khuyến nghị scrubđể xóa không gian miễn phí. Không thử nó.


Ồ, nếu bộ nhớ phục vụ cho tôi, tôi đã thử scrubmột lần và nó làm hỏng toàn bộ hệ thống tệp. May mắn thay, tôi đã có ý thức tốt về thử nghiệm đầu tiên trên một hệ thống tệp thử nghiệm, KHÔNG phải trên dữ liệu thực của tôi.
Landroni

2

Lau một ổ đĩa ở tốc độ cao nhất.

Các hướng dẫn điển hình để mã hóa ổ đĩa hiện nay sẽ cho bạn biết trước tiên WIPE ổ đĩa.

Lệnh dưới đây sẽ lấp đầy ổ đĩa của bạn bằng bản mã AES.

Sử dụng đĩa CD trực tiếp nếu bạn cần xóa sạch ổ đĩa khởi động chính của mình.

Mở một thiết bị đầu cuối và nâng cao đặc quyền của bạn:

sudo bash

Hãy để chúng tôi liệt kê tất cả các ổ đĩa trên hệ thống để được an toàn:

cat /proc/partitions

LƯU Ý: Thay thế /dev/sd{x}bằng thiết bị bạn muốn lau.

CẢNH BÁO: Điều này không dành cho người nghiệp dư! Bạn có thể làm cho hệ thống của bạn không thể khởi động !!!

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sd{x}

Tôi sững sờ trước sự nhanh chóng của nó.


2

Bạn có thể đã có gói GNU coreutils được cài đặt trên hệ thống của bạn. Nó cung cấp lệnh shred .


4
Shred sẽ không dọn sạch không gian đĩa không sử dụng mà không biến nó thành tập tin trước ...
dmckee

2

Bạn có thể xóa sạch không gian trống của mình bằng cách sử dụng gói xóa an toàn.

Trong gói đó, bạn có thể tìm thấy sfillcông cụ được thiết kế để xóa dữ liệu nằm trên không gian đĩa có sẵn trên phương tiện một cách an toàn mà kẻ trộm, thực thi pháp luật hoặc các mối đe dọa khác không thể phục hồi.

Để cài đặt gói xóa an toàn trong Linux (Ubuntu), hãy cài đặt nó bằng lệnh sau:

$ sudo apt-get install secure-delete

Sau đó, để xóa dữ liệu của bạn không còn dung lượng trống, hãy thử lệnh sau:

sfill -f -v -ll /YOUR_MOUNTPOINT/OR_DIRECTORY

Trong đó / Your_MOUNTPOINT / OR_DIRECTORY là điểm gắn kết ( df -h, mount) hoặc thư mục của bạn để xóa không gian trống.

Đọc hướng dẫn tại http://manpages.ubfox.com/manpages/hardy/man1/sfill.1.html


1

sử dụng dd và chỉ cần không có không gian trống. đó là dữ liệu huyền thoại cần được ghi lại nhiều lần (chỉ cần hỏi peter guntmann) và dữ liệu ngẫu nhiên, trái ngược với 1 rồi 0 là ngụ ý hoạt động không tự nhiên. sau đó kết quả cuối cùng là một ổ đĩa sạch với thời gian viết ít hơn. bên cạnh đó, các chương trình xóa an toàn không thể đảm bảo họ thậm chí còn ghi đè lên tệp thực trên các hệ thống tệp hiện đại (được ghi lại). làm cho mình một ưu tiên và nhận photorec, quét ổ đĩa của bạn để xem mớ hỗn độn, lau nó bằng 1 và tùy chọn bằng các số 0 để làm cho nó trông không bị ảnh hưởng. Nếu photorec vẫn tìm thấy nội dung, hãy nhớ rằng nó đang quét mọi thứ có sẵn, vì vậy hãy làm lại cẩn thận với người dùng root.

hãy nhớ rằng, cia / fbi / nsa không có một máy ưa thích có thể đọc trạng thái thực tế của các bit phương tiện từ tính của bạn. tất cả chỉ là một tờ giấy được viết từ lâu. một "what-if". bạn chỉ cần lau 1 lần.


1
Có vài điều thú vị mà bạn đã nói, nhưng bạn có thực sự có nguồn nào để sao lưu thông tin này không? Thật khó để tin rằng tất cả những gì ghi đè là vô ích. Ngoài ra, vui lòng cải thiện bài viết của bạn, thật khó để đọc với dấu chấm câu như thế.
gronostaj

@gronostaj: Yêu cầu "đó là dữ liệu huyền thoại cần được ghi lại nhiều lần" cho các ổ đĩa hiện đại ít nhất đã được chứng minh bởi nhiều nghiên cứu. Tất cả hơn 30 đường chuyền được đề xuất bởi Gutmann không còn cần thiết, như chính tác giả thừa nhận.
Karan

1

Dễ dàng hơn là sử dụng chà :

scrub -X dump

Điều này sẽ tạo một dumpthư mục ở vị trí hiện tại và tạo tập tin cho đến khi đĩa đầy. Bạn có thể chọn một mẫu với -ptùy chọn ( nnsa|dod|bsi|old|fastold|gutmann).

Không dễ để cài đặt chà ( xem Diễn đàn Ubuntu về điều này ), nhưng sau khi cài đặt xong, bạn đã có một công cụ thực sự ĐƠN GIẢN và hiệu quả trong tay.


Nếu bộ nhớ phục vụ cho tôi, tôi đã thử scrubmột lần và nó làm hỏng toàn bộ hệ thống tệp. May mắn thay, tôi đã có ý thức tốt về thử nghiệm đầu tiên trên một hệ thống tệp thử nghiệm, KHÔNG phải trên dữ liệu thực của tôi.
Landroni

Không biết những gì bạn đã làm hoặc những gì xảy ra, nhưng về cơ bản, hãy tạo tập tin mới cho đến khi nó lấp đầy hệ thống tập tin. Nó không chơi với tệp hiện có, nó cũng không xóa bất kỳ tệp nào trong số chúng (ít nhất không phải là lệnh tôi đã đưa ra) ...
FMaz008

1
Thật. Đã thử scrub -X dump_dirvà nó dường như đã làm việc tốt. BTW, cài đặt trên Ubuntu 14.04 rất đơn giản : apt-get install scrub.
Landroni

1

Đây là tập lệnh "sdelete.sh" mà tôi sử dụng. Xem ý kiến ​​để biết chi tiết.

# Install the secure-delete package (sfill command).

# To see progress type in new terminal:
# watch -n 1 df -hm

# Assuming that there is one partition (/dev/sda1). sfill writes to /.
# The second pass writes in current directory and synchronizes data.
# If you have a swap partition then disable it by editing /etc/fstab
# and use "sswap" or similar to wipe it out.

# Some filesystems such as ext4 reserve 5% of disk space
# for special use, for example for the /home directory.
# In such case sfill won't wipe out that free space. You
# can remove that reserved space with the tune2fs command.
# See http://superuser.com/a/150757
# and https://www.google.com/search?q=reserved+space+ext4+sfill

sudo tune2fs -m 0 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

sudo sfill -vfllz /

# sfill with the -f (fast) option won't synchronize the data to
# make sure that all was actually written. Without the fast option
# it is way too slow, so doing another pass in some other way with
# synchronization. Unfortunately this does not seem to be perfect,
# as I've watched free space by running the "watch -n 1 df -hm"
# command and I could see that there was still some available space
# left (tested on a SSD drive).

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

sudo tune2fs -m 5 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

1

Tôi tìm thấy một giải pháp đơn giản hoạt động trên Linux và trên MacOS. Di chuyển trong thư mục gốc của đĩa của bạn và khởi chạy lệnh này:

for i in $(seq 1 //DISKSPACE//); do dd if=/dev/zero of=emptyfile${i} bs=1024 count=1048576; done; rm emptyfile*;

trong đó // DISKSPACE // là kích thước tính bằng GB của đĩa cứng của bạn.


0

Đôi khi tôi sử dụng bash one-liner này:

while :; do cat /dev/zero > zero.$RANDOM; done

Khi nó bắt đầu nói rằng đĩa đã đầy, chỉ cần nhấn Ctrl+ Cvà xóa các zero.*tệp đã tạo .

Nó hoạt động trên mọi hệ thống, bất kể giới hạn kích thước tệp.
Bỏ qua mọi cat: write error: File too largelỗi.


0

Đây không phải là một câu trả lời! Chỉ là một nhận xét cho những người muốn sử dụng pv... vì vậy đừng bận tâm bỏ phiếu.

Trên Linux Mint 17.3, bạn có thể sử dụng pv( chế độ xem ống ) để có được tiến trình viết. Ví dụ:

# Install pv (pipe view)
sudo apt-get install pv

# Write huge file of approximate size of /dev/sdb, using urandom data:
pv --timer --average-rate --progress --numeric --eta --interval 5 --size "$(blockdev --getsize64 /dev/sda )" /dev/urandom >rand.file

Ưu điểm ở đây là bạn có được một thanh tiến trình, ETA và tốc độ dữ liệu được cập nhật liên tục. Nhược điểm là điều này được ghi trên một dòng và khi đĩa đầy (trả lại lỗi) thì nó biến mất. Điều này xảy ra bởi vì kích thước đầy đủ là gần đúng vì HĐH có thể sẽ sử dụng đĩa trong khi hoạt động rất dài này đang diễn ra, đặc biệt là về khối lượng HĐH.

Trên một HD rất cũ, tôi nhận được tốc độ dữ liệu khoảng 13 MB / s khi sử dụng /dev/urandomvà khoảng 70 MB / s khi sử dụng /dev/zero. Điều này có thể sẽ cải thiện hơn nữa khi sử dụng thô ddhoặc catkhông pv.


-13

Khi tệp bị tắt khỏi bản ghi của hệ thống tệp, dữ liệu còn lại trên đĩa cứng là chuỗi vô nghĩa 1 và 0. Nếu bạn đang tìm cách thay thế chuỗi vô nghĩa đó bằng một chuỗi vô nghĩa khác, tôi có thể tư vấn một số sản phẩm thương mại để xóa ổ đĩa một cách an toàn, như arconis.


22
Các đoạn liền kề của nội dung tệp cũ vẫn còn trên đĩa và không có ý nghĩa gì nếu dữ liệu đĩa thô được kiểm tra trực tiếp.
Alex B
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.