快速擦除硬盤數據的一種方法


如何快速安全的徹底清除硬盤數據,使其不可恢復?

請訪問原文鏈接:https://sysin.org/blog/erase-or-wipe-disk-data/,查看最新版。原創作品,轉載請保留出處。

作者:gc(at)sysin.org,主頁:www.sysin.org

抄襲者 CSDN ID:qq_23930765 請遠離本站!!!

disk-wipe

安全刪除硬盤數據的一般方法

  • 物理摧毀硬盤(HDD、SSD)

    當然這是最安全的,但是我的硬盤還要用,沒有這么絕密😄。

  • 使用數據擦除軟件

    這類軟件通常是通過覆蓋的方式,徹底覆寫填充硬盤數據,根據安全等級可能需要填充多遍。

    主要缺點是速度太慢,安全不快速(SYSIN),對於現在主要使用 TLC、QLC 的閃存壽命是有一定損傷的。

筆者之前淘汰一塊磁盤,試圖徹底安全清除數據,琢磨了如下方法。數據量 1T 多,整個過程也就 1 分鍾左右完成了,不過琢磨過程卻是老半天😓。

實現思路

將所有的文件和文件夾都修改為隨機名稱,將所有的文件都填充隨機字符,然后再刪除。

前提條件

  • macOS:brew install fd; brew install rename

  • Ubuntu:sudo apt install fdfind && sudo ln -s /usr/bin/fdfind /usr/local/bin/fd; sudo apt instal rename

執行腳本

# 使用 /dev/random 或 /dev/urandom 隨機文件重命名目錄
fd -td |
    while read -r name; do
        sysin=$(head -20 /dev/urandom | cksum | cut -c 1-10)
        if [[ "$name" != "$sysin" ]]; then
            mv "$name" "$sysin"
            echo "$name ====> $sysin"
        fi
    done

## 用 OpenSSL 隨機字符重命名文件
fd -tf |
    while read -r name; do
        sysin=$(openssl rand -hex 8)
        if [[ "$name" != "$sysin" ]]; then
            mv "$name" "$sysin"
            echo "$name ====> $sysin"
        fi
    done

## 刪除文件名中的空格
rename 's/ /_/g' *

# 用隨機字符填充替代所有文件內容
fd -tf |
    while read -r name; do
        echo "$RANDOM" >"$name"
    done

# 刪除所有文件,然后將磁盤格式化數次為不同的文件系統
#rm -rf *

最后別忘了使用不同的文件系統格式化磁盤(心理上更加放心_)。

該方法是否確實安全,數據不可恢復?歡迎讀者提出意見和建議。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM