我正在玩三星SSD(MZ7WD240型号)的trim / unmap命令。 要检查此设备上的unmap支持,我运行了以下命令:
hdparm -I /dev/sda | grep TRIM
和预期的一样,输出显示我的设备/ dev / sda支持修剪:
* Data Set Management TRIM supported (limit 8 blocks) * Deterministic read ZEROs after TRIM
所以我想用scsi接口手动发送一些unmap命令,所以:
我得到了文件的开始LBA:
hdparm --fibmap /mnt/MyDeviceMountPoint/testFile /mnt/MyDeviceMountPoint/testFile: filesystem blocksize 4096, begins at LBA 0; assuming 512 byte sectors. byte_offset begin_LBA end_LBA sectors 0 274432 274439 8
我使用sg_unmap包中的sg_unmap将unmap命令发送到使用与我的设备关联的scsi接口的文件的第一个块:
# sg_unmap --lba=274432 --num=1 /dev/sg0 UNMAP not supported
即使尝试直接发送命令到设备,但我总是得到UNMAP不支持输出:
# sg_unmap --lba=274432 --num=1 /dev/sda UNMAP not supported
该设备连接使用SATA控制器,我试过其他scsi命令,他们完美的工作! 我错过了什么?