我有一个类型为“linux-swap”的分区 /dev/sda3 (如 gparted 所示)。
该分区不再使用,也不再是 /etc/fstab 中的条目。
但我很担心,因为该分区上仍然可能存储有敏感信息。因为它可以包含正常情况下存储在 RAM 中的所有内容。例如密码或私人电子邮件。
我想擦除这个分区而不破坏文件系统。
我可以覆盖整个分区 /dev/sda3 然后重新格式化它。但我会丢失 uuid、分区标记和标签。
我想应该可以只擦除内容吧?
我想覆盖存储在该分区上的所有内容,这样它就真的消失了(用零覆盖)。
怎么做?
答案1
磁盘包含分区。标签是文件系统或分区上交换的一部分。 UUID 位于磁盘和分区上。
如果擦除,/dev/sda3
则只会擦除分区,不会擦除磁盘,不会擦除分区表,也不会擦除其他分区的标签或 UUID。我不知道为什么你会担心擦除UUID和标签,它们不包含任何关键信息,你可以随时记录它们(UUID只是一个数字,标签只是一个字符串)并将它们放在返回如果/当您重新格式化 sda3 或仅使用新的 UUID(如果您未指定),它将获得。
当你说它没有使用时,我认为它不会出现在/proc/swaps
.
答案2
这里的所有命令都必须以 root ( sudo -s
) 身份运行。
在您的情况下,交换分区是/dev/sda3。您可以通过列出带有 的活动交换分区来确认它未被使用swapon -s
。在我自己的系统之一的这个示例中,它仅列出/var/swap
:包含交换数据的文件(而不是设备)。没有列出其他文件或设备。
swapon -s
Filename Type Size Used Priority
/var/swap file 102396 880 -1
此时我可以说它/dev/sda3
绝对没有用作交换分区。通过写零以通常的方式擦除它:
cat /dev/zero >/dev/sda3
绝对没有必要用随机数据覆盖。零就可以了*。
(顺便说一句,与可以通过 、 等命令查看和操作单个文件和目录的文件系统不同ls
,cat
交换cp
分区应被视为不透明物体。也就是说,内容及其结构不可访问,应被视为单个实体。这意味着没有可访问的机制来从交换空间中删除单个项目,因此我们必须完全删除它,然后选择重新创建它。)
如果您之前记录了 UUID 和标签,您现在可以使用这些值重新创建交换:
mkswap --uuid {uuid} --label {label} /dev/sda3
和--uuid
都是--label
可选的,因此通过省略两者,您可以使用默认生成的值重新创建交换分区。
- 必须覆盖硬盘多少次才能完全删除数据?, 2019 年 8 月
- NIST 800-88,修订版 1 (PDF), 2014 年 12 月
- 覆盖硬盘数据:巨大的擦除争议,2008 年 12 月