我有一个 SSD,我想在安装 Ubuntu 之前对其进行 TRIM。有人建议我留下一些未分区的空间,这样磨损均衡就有可用的块可以使用。但是我明白,因为驱动器之前安装了一些软件,所以仅仅重新分区并留下一些未分区的空间是不够的。而且 mkfs 不会 TRIM 未分区的区域。
在阅读hdparm
手册页时,我偶然发现了--trim-sector-ranges
,这听起来正是我需要使用的。它还有一个警告,内容是:极其危险。请勿使用此选项!!两次。
我见过建议建议改用 ATA 安全擦除命令。但我也读到安全擦除存在以下风险:使设备变砖。
是什么原因--trim-sector-ranges
导致设备变得如此危险以至于宁愿冒着损坏设备的风险?
答案1
修剪扇区基本上就是告诉 SSD,这些扇区不再包含有用的数据,可以将其作为垃圾收集(即擦除),以便将来可以重新用于写入操作。当磁盘已满时,这可以提高写入性能,因为 SSD 控制器的固件转换层在处理物理块/页面时有更多“余地”。
在 中hdparm
,要修剪的扇区以 LBA(逻辑块)的形式提供。如果您的 SSD 已使用文件系统格式化,修剪 LBA 肯定会损坏文件系统并使其无法使用(因为用户不知道底层文件系统到 LBA 的映射)。对于使用文件系统格式化的 SSD,修剪应在更高级别进行,使用 等工具fstrim
。
如果支持,“ATA 安全擦除”命令应擦除 SSD 的所有物理块。这可能大致相当于修剪 SSD 的所有扇区,但可能以更优化、更安全的方式进行。
引用的链接表明“安全擦除”命令在使用 USB 转 SATA 适配器时失败。这可能是由于 USB 转 SATA 控制器的实现不佳或存在错误,或者实现不符合最新的 SATA 规范。
要清除 SSD 的内容,SATA 安全擦除命令是首选方法。hdparm 选项--trim-sector-ranges
用于实验和基准测试目的。只有对于在 LBA 级别处理 SSD 的非常特定的应用程序(某些数据库系统)来说,修剪扇区才有hdparm
意义。
最后,建议留出一些未分区空间(称为过度配置)用于磨损均衡,这很有意思,前提是这些空间之前已经以某种方式被修剪过(“ATA 安全擦除”也可用于此目的)。如果不是这种情况,并且如果以前的数据存在于未分区空间的 LBA 范围内,SSD 控制器将假定它仍然是有效数据,并努力使其“存活”,可能通过移动相关的块和页面(从而增加整体磨损!)