我有一台紧凑型 SoC(片上系统)戴尔笔记本电脑,DF4032 SanDisk eMMC 32 GB存储设备焊接在其唯一的 PCB 上,并且没有任何关于 TRIM 支持的信息。文件 fstrim 位于 /etc/cron.weekly/
#!/bin/sh
# trim all mounted file systems which support it
/sbin/fstrim --all || true
手动运行 fstrim 返回“30 GB('N' 字节)已修剪”(显然有效,对吧?)
sudo hdparm -I /dev/mmcblk0 | grep "TRIM supported"
但上述命令返回
HDIO_DRIVE_CMD(identify) failed: Invalid argument
那么,我还能如何检查 Ubuntu 是否为该 eMMC 开箱即用地执行 TRIM,或者它是否支持它?在 fstrim 文件中包含 --no-model-check 是否安全?我需要指定 /dev/mmcblk0 设备,这样它就不会干扰插入的 SDHC 卡。TRIM 对于一些不太流行的设备来说可能是致命的。
答案1
TRIM 无法通过 USB 工作,但通常,在这样的设备(外部 USB 磁盘盒)上运行它时,您会收到有关“不支持的 ioctl”的消息。确认您的 mmcblk0 确实不在 USB 上:
lsblk -o TRAN,SUBSYSTEMS,NAME,TYPE
mmcblk0 上的 SD 卡未列出 TRAN,但似乎出现在 USB 分支下,因为它遵循 USB。但是,添加 SUBSYSTEMS 显示它们不在 USB 上。如果您没有收到任何错误或投诉,则您的设备上的 TRIM 可能没有问题。我的输出:
sata block:scsi:pci sdb disk
block:scsi:pci sdb1 part
block:scsi:pci sdb2 part
block:scsi:pci sdb3 part
usb block:scsi:usb:pci sdc disk
block:scsi:usb:pci sdc1 part
block:mmc:mmc_host:pci mmcblk0 disk
block:mmc:mmc_host:pci mmcblk0p1 part
block:mmc:mmc_host:pci mmcblk0p2 part