有時您可能需要刪除或格式化硬盤以進行某些操作。 完全且不可撤銷地擦除設備的最常見用例是設備將被贈送或出售時,因為這對於數據保護非常重要。 有一些命令可以幫助您在 Linux 中執行這些操作。
本文展示了在 Linux 系統上擦除硬盤或分區數據的 4 個命令
1) dd
dd 命令可以幫助您複製和轉換文件。 該命令可以用零覆蓋整個磁盤,並且比生成千兆字節的隨機數據快得多。 它提供了一些操作數,您可以使用這些操作數來指定所需的格式類型。 語法是:
dd if=<source> of=<target> [Options]
只有超級用戶才能運行此命令,因為使用不當可能會導致大量數據丟失。
# dd if=/dev/zero of=/dev/sda2 bs=512 count=1
1+0 records in
1+0 records out
512 bytes copied, 0.0116875 s, 43.8 kB/s
您可以通過在每一位寫入新數據來擦除磁盤。 為了進一步複雜化恢復過程,我們將用隨機數據覆蓋整個驅動器。
# dd if=/dev/urandom of=/dev/sda2 bs=4096
2)切碎
shred 命令用於重複覆蓋指定文件,使軟件難以恢復數據。 語法如下
shred [option] <target>
該命令還會用隨機位覆蓋文件或整個設備中的數據,使其幾乎無法恢復。 此命令永久擦除數據。 該命令有一些可用於擦除磁盤的選項:
- -F 如果需要,更改權限以允許寫入
- -n (iterations=N) 覆蓋 N 次而不是默認值 (3)
- -s (size=N) 指定字節數 到 撕碎
- -u 覆蓋後截斷和刪除文件
- -v 顯示有關進度的詳細信息
- -X 不會將文件大小四捨五入到下一個完整塊
- -和 添加帶有零的最終覆蓋以隱藏粉碎
- -u 覆蓋後刪除文件
因此,要擦除您可以使用的分區
# shred -vfz -n 10 /dev/sda2
shred: /dev/sda2: pass 1/11 (random)...
shred: /dev/sda2: pass 2/11 (ffffff)...
shred: /dev/sda2: pass 3/11 (249249)...
shred: /dev/sda2: pass 4/11 (000000)...
shred: /dev/sda2: pass 5/11 (555555)...
shred: /dev/sda2: pass 6/11 (random)...
shred: /dev/sda2: pass 7/11 (6db6db)...
shred: /dev/sda2: pass 8/11 (aaaaaa)...
shred: /dev/sda2: pass 9/11 (db6db6)...
shred: /dev/sda2: pass 10/11 (random)...
shred: /dev/sda2: pass 11/11 (000000)...
可以將 shred 與隨機數據一起使用,如下所示
# shred -v --random-source=/dev/urandom -n10 /dev/sda2
shred: /dev/sda2: pass 1/10 (random)...
shred: /dev/sda2: pass 2/10 (db6db6)...
shred: /dev/sda2: pass 3/10 (aaaaaa)...
shred: /dev/sda2: pass 4/10 (ffffff)...
shred: /dev/sda2: pass 5/10 (6db6db)...
shred: /dev/sda2: pass 6/10 (random)...
shred: /dev/sda2: pass 7/10 (249249)...
shred: /dev/sda2: pass 8/10 (555555)...
shred: /dev/sda2: pass 9/10 (000000)...
shred: /dev/sda2: pass 10/10 (random)...
3)擦拭
擦除命令可用於從磁介質中安全地擦除文件。 您可以使用wipe 命令來擦除磁盤上的數據。 擦除命令具有以下命令
wipe [options] <target>
該命令默認不存在,您需要安裝它。
在 Ubuntu 16.04/18.04
# apt install wipe
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
wipe
0 upgraded, 1 newly installed, 0 to remove and 322 not upgraded.
Need to get 41.8 kB of archives.
在 Centos 7 上, 你需要先下載rpmforge
# wget https://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
安裝它
# rpm -Uvh rpmforge-release*rpm
warning: rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:rpmforge-release-0.5.3-1.el7.rf ################################# [100%]
然後,安裝wipe命令
# yum install wipe
Loaded plugins: fastestmirror
rpmforge | 1.9 kB 00:00:00
rpmforge/primary_db | 125 kB 00:00:15
您可以按如下方式擦除分區:
# wipe /dev/sda2
Okay to WIPE 1 special file ? (Yes/No) yes
Operation finished.
1 file wiped and 0 special files ignored in 0 directories, 0 symlinks removed but not followed, 0 errors occured.
4) 擦洗
擦洗命令可用於使用模式覆蓋數據。 該命令默認不可用,您需要在您的 Linux 系統上安裝它。 語法是
scrub [option] <target>
要擦洗硬盤,您可以執行以下操作
# scrub /dev/sda5
scrub: using NNSA NAP-14.1-C patterns
scrub: please verify that device size below is correct!
scrub: scrubbing /dev/sda5 1071644672 bytes (~1022MB)
scrub: random |................................................|
scrub: random |................................................|
scrub: 0x00 |................................................|
scrub: verify |................................................|
Scrub 使用一些方法對磁盤進行操作。 您可以使用 dod 方法來擦除磁盤。
# scrub -p dod /dev/sda5 -f
scrub: using DoD 5220.22-M patterns
scrub: please verify that device size below is correct!
scrub: scrubbing /dev/sda5 1071644672 bytes (~1022MB)
scrub: random |................................................|
scrub: 0x00 |................................................|
scrub: 0xff |................................................|
scrub: verify |................................................|
擦除驅動器很危險,因為您可能會永久丟失數據。 您必須確保選擇正確的磁盤。 此外,根據您對有人竊取數據的擔心程度,可能很難確保某些驅動器確實不可恢復。