實用工具SDelete

2022-01-10 12:18:07 字數 2205 閱讀 5037

安全地刪除沒有任何特殊屬性的檔案相對而言簡單而直接:安全刪除程式使用安全刪除模式簡單地覆蓋檔案。較為複雜的是安全地刪除 windows nt/2k 壓縮、加密和稀疏檔案,以及安全地清理磁碟可用空間。

壓縮、加密和稀疏檔案由 ntfs 以 16 群集塊方式管理。如果某個程式向此類檔案的現有部分寫入資料,則 ntfs 會分配磁碟上的新空間來儲存新資料,並在寫入新資料後取消分配該檔案先前占用的群集。ntfs 採取此保守方法的原因與資料完整性有關,而且對於壓縮和稀疏檔案,這樣可以在出現新分配大於現有分配(新的壓縮資料大於舊的壓縮資料)的情況下正確應對。因此,覆蓋此類檔案時將不能成功地從磁碟中刪除檔案的內容。

為了處理上述型別的檔案,sdelete 依賴碎片整理 api。利用碎片整理 api

,sdelete 可以精確地判斷磁碟中哪些群集由屬於壓縮、稀疏和加密檔案的資料占用。sdelete 在了解哪些群集包含該檔案的資料後,就可以開啟磁碟進行原始訪問並覆蓋這些群集。

可用空間的清理問題提出了另一項挑戰。由於 fat 和 ntfs 沒有為應用程式提供直接定址可用空間的方法,因此 sdelete 具有以下兩個選擇之一。第乙個選擇是它可以像處理壓縮、稀疏和加密檔案那樣,開啟磁碟以進行原始訪問並覆蓋可用空間。此方法面臨乙個很大的問題:即使 sdelete 被編碼為完全能夠計算 ntfs 和 fat 驅動器的可用空間部分(這並非微不足道),它也會遭遇與系統上發生的活動檔案操作發生衝突的風險。例如,假設 sdelete 確定某個群集可用,而就在此時檔案系統驅動程式(fat、ntfs)決定為另一應用程式正在修改的檔案分配該群集。檔案系統驅動程式會將新資料寫入該群集,然後 sdelete 跟隨而來並覆蓋了剛剛寫入的資料:該檔案的新資料丟失了。如果為檔案系統元資料分配該群集,則問題會更糟,因為 sdelete 會破壞檔案系統的磁碟結構。

第二種方法即 sdelete 所採用的方法是間接覆蓋可用空間。首先,sdelete 分配它所能分配的最大檔案。sdelete 使用非快取檔案 i/o 完成此任務,這樣就不會將 nt 檔案系統快取的內容扔掉,也不會用與 sdelete 的占用大量空間的檔案相關聯的無用資料替代這些內容。因為非快取檔案 i/o 必須是扇區(512 位元組)對齊的,所以可能存在一些不能為 sdelete 檔案分配的剩餘空間(即使 sdelete 無法進一步擴大該檔案)。為了獲取任何剩餘空間,sdelete 接下來會分配它能夠分配的最大快取檔案。對於這兩個檔案,sdelete 都執行安全覆蓋,並且確保所有以前可用的磁碟空間都被安全地清理。

在 ntfs 驅動器上,分配和覆蓋這兩個檔案並非 sdelete 的全部工作。sdelete 還必須用適合 mft 記錄的檔案填充 ntfs mft(主檔案表)的任何現有可用部分。乙個 mft 記錄的大小通常為 1kb,而磁碟上的每個檔案或目錄都至少需要乙個 mft 記錄。小檔案都整個儲存在各自的 mft 記錄中,而對於不適合乙個記錄的檔案,則會為其分配 mft 外部的群集。sdelete 為處理可用 mft 空間而必須完成的全部工作就是分配它能夠分配的最大檔案 - 當該檔案占用 mft 記錄中的所有可用空間時,ntfs 將防止該檔案增大,因為磁碟中沒有剩餘的可用群集(它們正被 sdelete 先前分配的兩個檔案占用)。然後,sdelete 將重複此過程。當 sdelete 甚至無法再建立新檔案時,它會知道 mft 中所有先前可用的記錄都已完全被安全覆蓋檔案填充。

為了覆蓋您刪除的檔案的檔名,sdelete 會將該檔案重新命名 26 次,每次都用連續的字母字元替換檔名中的每個字元。例如,「foo.txt」經過第一次重新命名後將變為「aaa.aaa」。

sdelete 在清理磁碟可用空間時不能安全刪除檔名的原因是,刪除檔名需要直接操作目錄結構。目錄結構可能具有包含已刪除檔名的可用空間,但可用目錄空間不能分配給其他檔案。因此,sdelete 無法分配此可用空間以便安全地覆蓋它。

sdelete 的用法

sdelete 是乙個帶有許多選項的命令列實用工具。按照任何給定用法,都可以使用它刪除乙個或多個檔案和/或目錄,或者清理邏輯磁碟上的可用空間。sdelete 將萬用字元接受為目錄或檔案說明符的一部分。

用法:sdelete [-p passes] [-s] [-q]

sdelete [-p passes] -z [drive letter]

-p passes

指定覆蓋操作的執行遍數

-s

對子目錄執行遞迴操作

-q

不顯示錯誤(靜默模式)

-z

清理可用空間

實用工具SDelete

安全地刪除沒有任何特殊屬性的檔案相對而言簡單而直接 安全刪除程式使用安全刪除模式簡單地覆蓋檔案。較為複雜的是安全地刪除 windows nt 2k 壓縮 加密和稀疏檔案,以及安全地清理磁碟可用空間。壓縮 加密和稀疏檔案由 ntfs 以 16 群集塊方式管理。如果某個程式向此類檔案的現有部分寫入資料,...

實用工具SDelete

安全地刪除沒有任何特殊屬性的檔案相對而言簡單而直接 安全刪除程式使用安全刪除模式簡單地覆蓋檔案。較為複雜的是安全地刪除 windows nt 2k 壓縮 加密和稀疏檔案,以及安全地清理磁碟可用空間。壓縮 加密和稀疏檔案由 ntfs 以 16 群集塊方式管理。如果某個程式向此類檔案的現有部分寫入資料,...

linux實用工具

基本實用工具 ls 顯示檔名 list cat 顯示文字檔案內容 rm i 刪除檔案 remove i開啟選項 less more 分屏顯示檔案 hostname 顯示系統名 檔案操作 cp sourcefile destinationfile 複製檔案copy mv oldname newname...