2009年10月25日 星期日

Ubuntu密技 - 徹底刪除資料

有的時候,徹底消滅磁碟機內的資料是非常重要的。例如:使用者打算將舊電腦賣掉,拿一些殘餘價值回來;或是將其捐贈給慈善團體,甚至是直接丟棄。如果磁碟機內已刪除的檔案被恢復了怎麼辦?如果隱私因此外洩了怎麼辦!想著都不心安。

將文件拖到垃圾桶內、清除垃圾桶、或是delete命令並不能保證安全,有太多的軟體可以恢復刪除的文件,最佳的方式就是用沒有意義的數據填滿整個磁碟(反覆多次),才能保證數據被永久刪除了。

除此之外,使用者可能並不想永久刪除整個磁碟,只是想永久刪除某一個檔案,讓它無法再「起死回生」。

Ubuntu的shred可以應付這些時機,它可以將硬碟或可攜式磁碟的整個內容或部份檔案用隨機產生的0與1覆寫多次,保證相關文件的內容無法被復原。

永久刪除磁碟

例如,使用者的大容量隨身碟(Flash記憶卡)上存放許多禎私人照片,朋友要去國家公園旅遊,想借那張記憶卡備用。在將照片另外存檔後,則可依下列三個步驟將整個隨身碟抹除乾淨:

  1. 首先要找出這個隨身碟在Ubuntu系統下的稱呼。先將其插入(連接)電腦,然後桌面會自動出現其圖示,將其名稱記住。再打開終端機視窗,鍵入mount命令,查看所有已掛載的磁碟機。例如:若隨身碟的名稱為KINGSTON,則注意一行類似如下的文字:
    /dev/sdb1 on /media/KINGSTON type vfat (rw,nosuid,nodev,……)
    然後記住句首類似/dev/sdb的文字,它會隨使用者的系統不同而有所不同。其後的數字可忽略,亦即不僅消滅隨身碟上的某一個分區,而是整個隨身碟內容。
    還有,這是不可逆的動作,用shred抹除的資料是救不回來的!
  2. 卸載該隨身碟。用滑鼠右鍵單擊其在桌面上的圖示,再由選單中選擇Unmount Volume (正體中文環境稱為「卸載」)即可。
  3. 自命令列鍵入如下命令:
    $ sudo shred -v /dev/sdb
    注意:/dev/sdb只是範例,會隨使用者的系統不同而有所不同。千萬不要搞錯或打錯字,否則誤殺其它磁碟就千金難以挽回了!

shred的執行時間視磁碟容量及主機速度而定,它每隔數秒就會在螢幕上更新進度報告。

shred預設為反覆寫入隨機數據25次,如果嫌太慢或太快,可用-n參數選項來指定次數。除非擔心CIA找上門,一般而言用-n1-n3應已足夠。(sudo shred -v -n1 /dev/sdb)

完成之後,還要將該磁碟機重新格式化才能再使用,因為原來的格式資料也已被抹除。

如果要刪除一台硬碟,還有一個方法,就是使用Ubuntu的開機光碟(Live CD)。先將欲抹除的硬碟接上主機成為唯一硬碟,然後以開機光碟「試用」Ubuntu,進入桌面系統之後,開啟終端機視窗,鍵入如下兩個命令:

$ sudo swapoff

$ sudo shred -v /dev/sda

這很合適清除原先為Windows單開機的系統磁碟。若是清除第一台軟碟機內的軟碟片,將 /dev/sda換成/dev/sda即可。

永久刪除檔案

相比之下,這就簡單多了,只要使用-u參數選項,例如:欲徹底清除的某個相片檔案名稱是partypicture.jpg,則鍵入如下命令:

$ shred -v -n1 -u partypicture.jpg

此時無需在命令之前加上sudo,因為使用者應擁有該檔案,掌握著生殺大權。若是需要加上sudo,那就要好好想想,抹除的是系統檔案還是別的使用者的檔案。

密技以Ubuntu 8.04長期支援版本(Hardy Heron)測試,有可能不適用於新版本,或需做配合微調。

0 留言:

張貼留言