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

| 功能 | dwipe | nwipe | shred | dd |
|---|---|---|---|---|
| 固件擦除(SATA/NVMe 安全擦除) | ✓ | ✗ | ✗ | ✗ |
| 软件擦除(零填充、伪随机) | ✓ | ✓ | ✓ | ✗ |
| 交互式 TUI | ✓ | ✓ | ✗ | ✗ |
| 多个同时擦除 | ✓ | ✗ | ✗ | ✗ |
| 持久化擦除状态 | ✓ | ✗ | ✗ | ✗ |
| 热插拔检测 / 释放 | ✓ | ✗ | ✗ | ✗ |
| 设备/分区阻止 | ✓ | ✗ | ✗ | ✗ |
| 恢复中断的软件擦除 | ✓ | ✗ | ✗ | ✗ |
| 擦除操作日志记录 | ✓ | ✗ | ✗ | ✗ |
| 挂载及 LUKS/LVM/RAID/swap 检测 | ✓ | ✓ | ✗ | ✗ |
| 快速统计抽样验证 | ✓ | ✗ | ✗ | ✗ |
| 认证销毁(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 - 启用固件擦除
--auto-block-containers {on,off} - 首次见到加密/堆叠容器时自动阻止(默认:on)
off,以避免逐个解除阻止--dump-lsblk - 转储解析的设备信息并退出(用于调试)--help - 显示包含所有可用选项的帮助信息dwipe 使用颜色编码提供关于设备和操作状态的即时视觉反馈:
dwipe 支持多种颜色主题以提高可见性和美观性。
可用主题:
default - 终端默认(基本 ANSI 颜色)dark-mono - 深色单色(近白在近黑上,带亮色)light-mono - 浅色单色(近黑在近白上,带亮色)solarized-dark - Solarized 深色调色板solarized-light - Solarized 浅色调色板(用于浅色终端背景)gruvbox - Gruvbox 深色调色板nord - Nord 调色板更改主题:
主题特性:
STATE 列显示每个设备的当前状态:
| 状态 | 含义 |
|---|---|
| - | 设备已准备好擦除 |
| ^ | 设备已准备好擦除,且在 dwipe 启动后添加(热插拔) |
| Mnt | 分区/磁盘已挂载,或通过 swap/LUKS/LVM/RAID 映射正在使用 - 无法擦除 |
| N% | 擦除正在进行(显示完成百分比,0-100%) |
| vN% | 验证正在进行(显示完成百分比,v0-v100%) |
| STOP | 擦除或验证正在停止 |
| s | 擦除已停止 - 设备部分擦除(可重新启动或验证) |
| W | 擦除已成功完成(可再次擦除或验证) |
| Blk | 设备/磁盘已阻止(使用 b,或当它是 LUKS/LVM/RAID/swap 容器时自动阻止)- 无法擦除 |
| Unbl | 磁盘刚刚解除阻止(过渡状态) |
MOUNTS/STATUS 列显示设备当前的使用方式:
| 显示 | 含义 |
|---|---|
| /, /data | 真实挂载点(直接挂载,或通过 LUKS/LVM/RAID 映射挂载) |
| \busy | 正在使用但未挂载 — 例如打开的 LUKS 容器、活动的 LVM 卷组、运行中的 RAID 阵列或活动 swap |
两者都被视为已挂载:设备变暗,且不提供 w(擦除)。\busy 使用反斜杠(而非 /)以明确它不是真实挂载点,但出于安全考虑仍像挂载点一样对待。要擦除此类设备,请先释放持有它的层(参见擦除问题)。
注意: 由较低层(dm-crypt/LUKS、LVM、md/RAID、swap)持有的设备即使自身未挂载也受到保护。在映射活动时擦除底层设备会损坏容器,因此
dwipe将其视为已挂载。通过映射到达的挂载点会归属回底层设备,因此 LUKS 分区会显示其解锁映射的挂载。
dwipe 会在首次见到持有加密或堆叠容器的设备时自动阻止它们,无论它们当前是否正在使用。这可以保护那些否则容易被意外擦除的数据,因为关闭的容器除了其类型外几乎不显示任何提示:
crypto_LUKS(dm-crypt/LUKS)LVM2_member(LVM 物理卷)linux_raid_member / isw_raid_member / ddf_raid_member(RAID 成员)swap此类设备显示状态 Blk 及 auto-blocked 状态,其整个磁盘也受到保护(继承阻止)。要擦除它,按 b 解除阻止 — 解除阻止会被记住,因此后续扫描不会重新阻止。
自动阻止默认开启。在批量重新配置时使用 --auto-block-containers off 禁用它(保存为偏好)。
顶行显示可用操作。有些是上下文敏感的(仅对某些设备可用):
| 按键 | 操作 | 描述 |
|---|---|---|
| w | 擦除 | 擦除选定的设备(需要确认) |
| v | 验证 | 验证已擦除的设备或检测未标记磁盘上的模式(上下文敏感) |
| s | 停止 | 停止选定的正在进行的擦除(上下文敏感) |
| S | 全部停止 | 停止所有正在进行的擦除 |
| DEL | 删除 | 从系统移除磁盘(仅整盘,上下文敏感) |
| b | 阻止/解除阻止 | 阻止或解除阻止磁盘以防止意外擦除 |
| / | 过滤 | 使用正则表达式模式过滤设备(显示匹配的设备 + 所有活动擦除) |
| r | 重新扫描 | 重新扫描所有设备并重置硬件能力检测 |
| h | 历史 | 显示擦除历史日志 |
| t | 主题 | 打开主题预览屏幕以查看和更改颜色主题 |
| q 或 x | 退出 | 退出应用程序(先停止所有擦除) |
| ? | 帮助 | 显示包含所有操作和导航键的帮助屏幕 |
| ESC | 清除过滤 | 清除过滤并跳转到列表顶部 |
| ESC | 返回 | 如果在嵌套屏幕上则返回上一屏幕 |
| a | 时间格式 | 循环切换擦除历史时间显示格式(之前+时间、之前、时间) |
按 h 查看擦除历史日志。历史屏幕显示所有擦除和验证操作及其时间戳、设备信息和结果。
历史屏幕操作:
/ 进行深度 JSON 搜索)剪贴板复制方法(自动检测):
| 环境 | 方法 | 备注 |
|---|---|---|
| SSH 会话 | OSC 52 | 终端转义序列;需要终端支持(iTerm2、kitty、alacritty、Windows Terminal、带 set-clipboard on 的 tmux) |
| Wayland | wl-copy | 需要 wl-clipboard 软件包 |
| X11 | xclip/xsel | 需要 xclip 或 xsel 软件包 |
| 回退 | 终端 | 退出到 shell,打印条目以供手动复制 |
注意: 如果 OSC 52 与您的终端不兼容,文本仍会显示在屏幕上以供手动选择。对于 tmux,在
.tmux.conf中使用set -g set-clipboard on启用剪贴板。