我正在运行 ubuntu 18.04。没有 lvm 或加密。我正尝试在全新的外部 sdd(西部数据 wd green 120 gb,装在 USB 外壳 ADATA ED600 中)上运行 trim,该外壳显示 hdparm 上可用 trim。
然而弗斯特里姆报道称
sudo fstrim -v /media/****/644f7d88-df12-4d0e-9423-bdf787d0fd78 fstrim:/media/****/644f7d88-df12-4d0e-9423-bdf787d0fd78:不支持丢弃操作
我不知道还能做什么来让 fstrim 运行。
下面是 hdparm 输出。
****:~$ sudo hdparm -I /dev/sdb /dev/sdb: ATA 设备,带有不可移动介质 型号:WDC WDS120G2G0A-00JH30 序列号:1821B3802831 固件修订版本:UE450000 介质序列号: 媒体制造商: 传输:串行、ATA8-AST、SATA 1.0a、SATA II 扩展、SATA Rev 2.5、SATA Rev 2.6、SATA Rev 3.0 标准: 使用:未知(小修订代码 0x0110) 支持:9 8 7 6 5 可能使用:9 配置: 逻辑最大电流 气缸 16383 0 头 16 0 扇区/磁道 63 0 -- LBA 用户可寻址扇区:234455040 LBA48 用户可寻址扇区:234455040 逻辑扇区大小:512 字节 物理扇区大小:512 字节 逻辑扇区 0 偏移量:0 字节 设备大小为 M = 1024*1024:114480 MBytes 设备大小为 M = 1000*1000:120040 MBytes (120 GB) 缓存/缓冲区大小 = 未知 尺寸:2.5 英寸 标称介质旋转速率:固态设备 功能: LBA、IORDY(可禁用) 队列深度:32 待机定时器值:由标准指定,没有设备特定的最小值 R/W 多扇区传输:最大 = 1 当前 = 1 高级电源管理级别:禁用 DMA:mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 周期时间:最小=120ns 建议=120ns PIO:pio0 pio1 pio2 pio3 pio4 周期时间:无流量控制=120ns IORDY流量控制=120ns 命令/功能: 已启用支持: * SMART 功能集 安全模式功能集 * 电源管理功能集 * 写入缓存 * 展望 * 主机保护区功能集 * WRITE_BUFFER 命令 * READ_BUFFER 命令 * 下载微代码 高级电源管理功能集 SET_MAX 安全扩展 * 48位地址功能集 * 设备配置覆盖功能集 * 强制 FLUSH_CACHE *刷新缓存 * SMART 错误日志 * 智能自我检测 * 通用日志功能集 * 64 位全球名称 * WRITE_UNCORRECTABLE_EXT 命令 * {READ,WRITE}_DMA_EXT_GPL 命令 * 分段 DOWNLOAD_MICROCODE 未知 119[8] * Gen1 信号速度 (1.5Gb/s) * Gen2 信号速度 (3.0Gb/s) * Gen3 信号速度 (6.0Gb/s) * 本机命令队列 (NCQ) * 物理事件计数器 * READ_LOG_DMA_EXT 相当于 READ_LOG_EXT 设备启动的接口电源管理 软件设置保存 设备睡眠 (DEVSLP) * SANITIZE 功能集 * BLOCK_ERASE_EXT 命令 * SET MAX SETPASSWORD/UNLOCK DMA 命令 * 写入缓冲区 DMA 命令 * 读取缓冲区 DMA 命令 * 设备配置设置/识别 DMA 命令 * 支持数据集管理TRIM(限制8个块) * TRIM 之后确定性读取数据 安全: 主密码修改代码 = 65534 支持的 未启用 没有锁定 没有冻结 未过期:安全计数 不支持:增强擦除 安全擦除单元需要 2 分钟。 逻辑单元 WWN 设备标识符:5001b448b60a0235 乙酰辅酶A:5 IEEE OUI : 001b44 唯一 ID :8b60a0235 设备睡眠: DEVSLP 退出超时 (DETO):50 毫秒(驱动器) 最短 DEVSLP 断言时间 (MDAT):31 毫秒(驱动) 校验和:正确
补充评论
最终让它工作了。
****:/媒体$ sudo hdparm --user-master u --security-set-pass 123456 /dev/sdb 安全密码:“123456” /dev/sdb: 发出 SECURITY_SET_PASS 命令,密码 =“123456”,用户 = 用户,模式 = 高 ****:/媒体$ sudo hdparm --user-master u --security-erase 123456 /dev/sdb 安全密码:“123456” /dev/sdb: 发出SECURITY_ERASE命令,密码=“123456”,用户=用户 SG_IO:坏的/缺失的检测数据,sb[]:70 00 01 00 00 00 00 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
它等待了大约 10 秒钟,没有返回任何进一步的信息。安全“已启用”标志变为“未启用”。我假设这能解决问题。
答案1
市场上有支持修剪的 USB 外壳。例如,如果您的外壳使用 JMICRON JMS583 芯片,则它支持修剪。我不知道您的外壳是否支持,但如果支持:
如果受支持,以下是使其工作所需的步骤,但如果您想要更详细的演练,请参阅下面的源链接。
- 获取供应商和产品 ID
lsusb
- 使用以下内容创建
/etc/udev/rules.d/50-usb-ssd-trim.rules
,但将供应商和产品 ID 更改为与步骤 1 中找到的 ID 相匹配:
ACTION=="add|change", ATTRS{idVendor}=="152d", ATTRS{idProduct}=="0583", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"
- 重新加载 udev 配置
sudo service udev force-reload
- 确保您没有安装 USB 外壳,然后重新插入 USB 外壳。
- 您可以检查是否支持
lsblk --discard /dev/sda
看:https://www.glump.net/howto/desktop/enable-trim-on-an-external-ssd-on-linux