dwipe 是一个用于擦除 Linux 磁盘和分区以帮助保护数据安全的工具。dwipe 旨在通过在设备选择过程中提供充足的信息来减少错误。

| 功能 | dwipe | nwipe | shred | dd |
|---|---|---|---|---|
| 固件擦除(SATA/NVMe 安全擦除) | ✓ | ✗ | ✗ | ✗ |
| 软件擦除(零、伪随机) | ✓ | ✓ | ✓ | ✗ |
| 交互式 TUI | ✓ | ✓ | ✗ | ✗ |
| 同时多设备擦除 | ✓ | ✗ | ✗ | ✗ |
| 持续擦除状态 | ✓ | ✗ | ✗ | ✗ |
| 热插拔检测/释放 | ✓ | ✗ | ✗ | ✗ |
| 设备/分区阻止 | ✓ | ✗ | ✗ | ✗ |
| 恢复中断的软件擦除 | ✓ | ✗ | ✗ | ✗ |
| 擦除操作日志 | ✓ | ✗ | ✗ | ✗ |
| 挂载检测/阻止 | ✓ | ✓ | ✗ | ✗ |
| 快速统计抽样验证 | ✓ | ✗ | ✗ | ✗ |
| 认证销毁(DoD/Gutmann 标准、全面验证、证书) | ✗ | ✓ | ✗ | ✗ |
- 固件擦除(SATA/NVMe)是最完整且最快的:硬件加速擦除在控制器级别运行(数秒至数分钟),清除所有驱动器映射,但需要全设备擦除,没有进度报告或可见验证。
- 软件擦除的单次零填充已足够:现代驱动器(2001年后)通过单次零填充即可可靠擦除(NIST SP 800-88)。多遍模式可用于提高信心,但不提供额外的安全保证。
- 验证采用智能统计抽样:即使 1% 的验证也会通过 100 个分区对整个磁盘进行采样,提供全面覆盖,无需完全顺序读取。
/dev/、/sys/、/proc/ 接口)可选(历史屏幕中用于剪贴板复制):
apt install xclip 或 xsel)apt install wl-clipboard)pipx install dwipedwipe --helppipx uninstall dwipedwipedwipe(会自动请求 sudo)w 擦除驱动器时,必须输入缩写(例如 Rand、Zero、Crypto);擦除方式从最不推荐到最推荐显示,最后一个标记有 *。通常选择最后一个选项,但...Rand 或 Zero(可中断,显示进度)。dwipe 会自动检测恢复并重新扫描。或按 r 手动重新扫描。驱动器应解除冻结。dwipe 锁定的,密码为 NULL;否则使用锁定时的密码。DEL 分离,物理更换驱动器,然后按 r 重新扫描(如果需要)。dwipe 提供全面的磁盘擦写能力及安全特性:
注意:
dwipe会显示文件系统标签,若没有则显示分区标签。最佳实践是给分区和文件系统做好标签,以便于选择。
简单地在命令行运行 dwipe 即可,无需参数:dwipe
注意: 所有偏好选项都使用您上次保存的值作为默认值。这些默认值在 --help 中显示,并可通过键盘快捷键交互更改。命令行参数会覆盖已保存的偏好。
--mode {-V,+V} - 验证模式(默认:您上次的偏好)
-V - 擦除后不自动验证+V - 擦除完成后验证设备--passes {1,2,4} - 软件擦除的遍数(默认:您上次的偏好)
--verify-pct {1,3,10,30,100} - 验证百分比(默认:您上次的偏好)
--dense {True,False} - 紧凑视图模式(默认:您上次的偏好)
True - 紧凑间距(磁盘之间空白行较少)False - 间隔视图(磁盘之间空白行以提高可读性)--port-serial {Auto,On,Off} - 磁盘端口/序列号显示(默认:您上次的偏好)
Auto - 仅对整个磁盘显示端口/序列号(推荐)On - 始终显示端口和序列号Off - 从不显示端口和序列号--slowdown-stop {0,4,16,64,256} - 如果磁盘减速则停止(默认:您上次的偏好,毫秒)
0 = 禁用--stall-timeout {0,60,120,300,600} - 停滞超时秒数(默认:您上次的偏好)
0 = 禁用(永不超时)--firmware-wipes 或 -F - 启用固件擦除
--dump-lsblk - 转储解析的设备信息并退出(用于调试)--help - 显示带所有可用选项的帮助信息dwipe 使用颜色编码提供设备及操作状态的即时视觉反馈:
dwipe 支持多种颜色主题,以提高可视性和美观性。
可用主题:
default - 终端默认(基本 ANSI 颜色)dark-mono - 暗色单色(接近白色在接近黑色上,搭配亮色)light-mono - 亮色单色(接近黑色在接近白色上,搭配亮色)solarized-dark - Solarized 暗色板solarized-light - Solarized 亮色板(适合浅色终端背景)gruvbox - Gruvbox 暗色板nord - Nord 色板更改主题:
主题特性:
STATE 列显示每个设备的当前状态:
| 状态 | 含义 |
|---|---|
| - | 设备已准备就绪可以擦除 |
| ^ | 设备已准备就绪可以擦除且是在 dwipe 启动后添加的(热插拔) |
| Mnt | 分区已挂载或磁盘有已挂载的分区 - 无法擦除 |
| N% | 擦除正在进行中(显示完成百分比,0-100%) |
| vN% | 验证正在进行中(显示完成百分比,v0-v100%) |
| STOP | 擦除或验证正在停止 |
| s | 擦除已停止 - 设备已部分擦除(可重新开始或验证) |
| W | 擦除成功完成(可再次擦除或验证) |
| Blk | 磁盘被手动阻止 - 分区被隐藏且无法擦除 |
| Unbl | 磁盘刚刚被解除阻止(过渡状态) |
顶行显示可用操作。某些操作是上下文相关的(仅对特定设备可用):
| 按键 | 操作 | 描述 |
|---|---|---|
| w | wipe | 擦除所选设备(需要确认) |
| v | verify | 验证已擦除设备或检测未标记磁盘上的模式(上下文相关) |
| s | stop | 停止正在进行的所选擦除(上下文相关) |
| S | Stop All | 停止所有正在进行的擦除 |
| DEL | delete | 从系统中移除磁盘(仅限整个磁盘,上下文相关) |
| b | block/unblock | 阻止或解除阻止磁盘以防误擦除 |
| / | filter | 按正则表达式模式过滤设备(显示匹配设备 + 所有活动擦除) |
| r | rescan | 重新扫描所有设备并重置硬件能力检测 |
| h | history | 显示擦除历史日志 |
| t | themes | 打开主题预览屏幕查看和更改颜色主题 |
| q 或 x | quit | 退出应用程序(先停止所有擦除) |
| ? | help | 显示帮助屏幕,包含所有操作和导航键 |
| ESC | clear filter | 清除过滤器并跳转到列表顶部 |
| ESC | back | 如果在嵌套屏幕中,返回上一屏幕 |
| a | time format | 切换擦除历史时间显示格式(ago+time, ago, time) |
按 h 查看擦除历史日志。历史屏幕显示所有擦除和验证操作,包含时间戳、设备信息和结果。
历史屏幕操作:
/ 前缀进行深度 JSON 搜索)剪贴板复制方法(自动检测):
| 环境 | 方法 | 备注 |
|---|---|---|
| SSH 会话 | OSC 52 | 终端转义序列;需要终端支持(iTerm2, kitty, alacritty, Windows Terminal, tmux 并启用 set-clipboard on) |
| Wayland | wl-copy | 需要 wl-clipboard 软件包 |
| X11 | xclip/xsel | 需要 xclip 或 xsel 软件包 |
| 后备 | 终端 | 退回到 shell,打印条目供手动复制 |
注意: 如果 OSC 52 在您的终端上不起作用,文本仍会显示在屏幕上供手动选择。对于 tmux,在
.tmux.conf中启用set -g set-clipboard on。
dwipe 支持固件擦除(硬件加速)和软件擦除。固件擦除需要 --firmware-wipes 或 -F 标志。下表列出的擦除方法从最推荐(排名 1)到最不推荐。
| 排名 | 缩写 | 官方名称 | 备注 |
|---|---|---|---|
| 1 | Crypto | Sanitize Cryptographic Erase | 最快;擦除加密密钥;即时数据失效 |
| 2 | Block | Sanitize Block Erase | 快速;将所有块重置为释放状态 |
| 3 | FCrypto | Format with Crypto Erase | 快速;通过密钥擦除重新格式化命名空间 |
| 4 | FErase | Format with User Data Erase | 快速;通过简单数据擦除重新格式化;不如加密彻底 |
| 5 | Ovwr | Sanitize Overwrite | 数分钟;向所有块写入模式;最彻底但很少需要 |
| 6 | Rand | Software Random Write | 备用;通过软件写入随机数据;大容量驱动器需数小时 |
| 7 | Zero | Software Zero Write | 备用;通过软件写入零;可验证但较慢 |
| 排名 | 缩写 | 官方名称 | 备注 |
|---|---|---|---|
| 1 | SCrypto | Sanitize Cryptographic Erase | 最快;擦除加密密钥;需要 SANITIZE 功能 |
| 2 | Enhanced | ATA Security Erase Enhanced | 快速;供应商特定深度擦除,含加密密钥销毁 |
| 3 | SBlock | Sanitize Block Erase | 快速;将块重置为出厂状态;需要 SANITIZE 功能 |
| 4 | Erase | ATA Security Erase Normal | 数分钟;向所有扇区写入零;广泛支持 |
| 5 | SOverwrite | Sanitize Overwrite | 数分钟;用模式覆盖;需要 SANITIZE 功能 |
| 6 | Rand | Software Random Write | 备用;无法触及磨损均衡或重映射的块 |
| 7 | Zero | Software Zero Write | 备用;无法触及磨损均衡或重映射的块 |