我正在使用 Linux 服务器,想知道是否有办法可以确定我的 SSD 是否支持 fstrim。我尝试过hdparm -I /dev/sda
,但它不可用,我无法安装它。我还有其他方法可以做到吗?任何帮助表示赞赏。谢谢!
我也很想知道如果我在不支持修剪的设备上运行 fstrim 会发生什么?它会导致无操作吗?
答案1
您也可以尝试
lsblk --discard
DISC-GRAN
和下的非零值DISC-MAX
表示修剪支持。
$ lsblk --discard
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
nvme0n1 0 512B 2T 0
├─nvme0n1p1 0 512B 2T 0
├─nvme0n1p2 0 512B 2T 0
├─nvme0n1p3 0 512B 2T 0
└─nvme0n1p4 0 512B 2T 0
└─cryptswap 0 0B 0B 0
运行之前确保您的磁盘是修剪兼容的fstrim
。fstrim
在不提供修剪支持的 SSD 上运行可能会导致数据丢失。作为参考,请参阅拱门维基。
答案2
尝试
find /sys/devices -name trim -exec head {} +
...
==> /sys/devices/pci0000:00/0000:00:11.0/ata3/link3/dev3.0/ata_device/dev3.0/trim <==
unsupported
答案3
过去十年制造的每一款 SSD 都支持修剪/丢弃。如果不支持,该命令应该会失败并且不执行任何操作。我说“应该”是因为如果你真的有一个没有修剪的SSD,那么它的品牌血统很差,以至于磁盘固件质量是一个极其未知的数量。