Jac*_*ack 12 ssd secure-erase ubuntu hdparm
我正在尝试对hdparm
我的 512GB SSD SK Hynix 进行安全擦除。SSD 中安装了 Windows 10。
我从 USB 闪存驱动器启动 Ubuntu。
sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)
我得到了很多不同的磁盘,结果/dev/sda
是我的 8GB 闪存驱动器,而不是 SSD。
SSD被列为:
Run Code Online (Sandbox Code Playgroud)Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt
现在,当我尝试运行时hdparm -I /dev/nvme0n1
,终端给了我错误:
Run Code Online (Sandbox Code Playgroud)/dev/nvme0n1: HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
如何hdparm
在我的 SSD 上使用安全擦除选项?根据互联网上另一个页面的建议,建议使用 nvme-cli 包,但我不明白这有什么帮助。
不建议对 SSD 使用 shred 命令,因为 SSD 的读/写周期有限,而且它的工作方式与 HDD 非常不同。
更新:我的 SSD 是 NVMe 设备,而不是 ATA,因此hdparm
命令不合适,请nvme -format
改用。
use*_*686 10
要使用 nvme-cli擦除 NVMe 设备,请运行nvme format -s1 <device>
.
建议使用 nvme-cli 包,但我不明白这有什么帮助。
hdparm 仅适用于使用ATA协议的设备,但您的 SSD 是为使用NVMe协议而构建的。
这种差异不仅限于物理连接(如 IDE/SATA)——相反,操作系统在与设备通信时必须使用一组完全不同的命令。没有任何 ATA 命令适用于 NVMe(存在“安全擦除”的一般概念,但实现方式不同)。
因此向您推荐了 nvme-cli,因为 hdparm 从一开始就是错误的工作工具。
理论上,操作系统可以在命令集之间进行转换(拦截 ATA 命令并发出等效的 NVMe 命令),实际上 Linux 内核内部在某种程度上为 SCSI 到 ATA 执行了此操作。在某些时候,Linux 甚至曾经支持基本的 SCSI 到 NVMe 转换,但由于系统差异太大,这最终被删除。
但是,它对您没有帮助,因为 Linux 不会反过来做:您已经无法对 SCSI 磁盘使用特定于 ATA 的 hdparm,同样您也无法对 NVMe 使用 hdparm磁盘。
归档时间: |
|
查看次数: |
15556 次 |
最近记录: |