从写这个系列的第一篇开始,我就没打算把“操作系统”讲成一本教材的复读机。前面十几篇聊了进程、内存、文件系统、中断、设备驱动,到了第十七篇,该说说现在几乎每台机器里都躺着的那块东西了——固态硬盘SSD。很多人对SSD的理解停留在“比机械硬盘快”,但真到了操作系统这一层,事情远不止快慢这么简单。你装系统、迁移系统、调优、排查掉盘卡顿、看SMART、修固件,每一步都绕不开操作系统和SSD之间的那套约定:块设备抽象、队列模型、TRIM指令、分区对齐、IO调度器。这篇就按我自己的实操顺序,把操作系统视角下的SSD从头到尾拆一遍,包括我做系统迁移时踩过的坑和修盘时不敢乱按的按钮。不管你是正在复习操作系统的学生,还是准备给老笔记本换盘、给台式机扩容的动手党,看完都能直接照着做。
1. 先搞清楚操作系统到底管不管SSD
1.1 块设备抽象:操作系统眼里根本没有“闪存”
站在操作系统的角度,SSD和机械硬盘在很长一段时间里是被一视同仁对待的,原因就是块设备抽象。内核不关心你背后是盘片加磁头,还是NAND闪存加主控,它只认一件事:这个设备能按固定大小的扇区读写数据,能随机寻址,读写的单位是块。Linux里用lsblk看到的sda、nvme0n1,Windows里“磁盘管理”里看到的磁盘0、磁盘1,都是这层抽象的具体表现。
这个设计的好处非常直接:文件系统只要对着块设备接口写代码,就能同时支持机械盘、SSD、U盘、甚至一块内存盘。但坏处也同样明显——SSD的内部行为跟机械盘差得太远,操作系统如果完全不知道对面是闪存,就会做出一些在机械盘上合理、在SSD上很伤的操作。最典型的就是机械盘时代的“碎片整理”,把文件在物理上重新排布以减少寻道时间;闪存根本没有寻道时间,反复搬动数据反而增加写入量、消耗寿命。
所以现代操作系统都在这层抽象上加了一些“旁路信息”。Linux通过/sys/block/*/queue/下面的一堆参数告诉内核这个设备的特性,比如rotational为0表示非旋转介质,discard_max_bytes不为0表示支持TRIM。Windows则通过设备枚举时读取的ATA/NVMe特性位来决定要不要开启TRIM、要不要把碎片整理改成“优化驱动器”。理解这一点,后面所有调优操作才有立足点:操作系统不是不认SSD,而是需要你确认它认对了。
1.2 从SATA到NVMe:驱动栈完全不是一回事
同样是SSD,走SATA接口和走NVMe接口,在操作系统里的路径可以说是两套东西。SATA盘的控制器遵循AHCI规范,挂在一个模拟的PCI设备下面,内核用libata加ahci驱动去管它,队列深度只有1个命令队列、32个未完成命令,一次提交要经过主机内存里的命令列表和命令表两级结构。这套东西是为机械盘设计的,一根命令队列就够用。
NVMe盘就完全不一样了。它是直接挂在PCIe总线上的设备,有自己的驱动nvme,支持多队列,队列数量可以做到跟CPU核心数对齐——比如16核的机器,可能开出来16个提交队列加16个完成队列,每个队列深度上千。中断用MSI-X,可以绑到不同核心上,避免单核成为瓶颈。这也是为什么同一代NAND颗粒,NVMe盘的高队列深度随机读写能甩SATA盘好几条街,而低队列深度单线程场景下差距没那么夸张。
这个差异在排查问题时特别有用。SATA盘掉盘,你去看dmesg里常见的报错是ata1: hard resetting link、failed command: READ FPDMA QUEUED,方向是检查SATA线、供电、主板接口。NVMe盘出问题,日志里出现的多是nvme nvme0: I/O 123 QID 4 timeout、controller is down,方向就变成PCIe链路、散热降速、固件版本。两条路的排查手法完全不同,先分清接口,再谈修。
1.3 别把硬盘SSD和检测模型SSD搞混
这里插一句题外话,但我觉得有必要。搜“SSD”的时候,除了固态硬盘,你还会撞见一堆看起来毫不相关的结果:ssd目标检测、ngram ssd offload。前者的SSD是 Single Shot MultiBox Detector,一个经典的单阶段目标检测网络;后者的SSD在推荐系统里指代某种共享嵌入结构。它们和闪存一点关系都没有,纯粹是缩写撞车。
之所以提这个,是因为我自己在整理笔记标签时就被坑过。搜资料的时候最好带上限定词,比如“SSD 固态硬盘 操作系统”“SSD NVMe 驱动”,否则你会在深度学习论文和硬件手册之间反复横跳。这一点对写系列文章的人尤其重要,同一个缩写在不同领域指的东西差得离谱,标签打错了,读者找过来一脸懵。
2. SSD内部原理:操作系统看不到的那一层
2.1 先擦后写:NAND闪存的物理约束
要理解操作系统为什么要给SSD开那么多小灶,得先知道NAND闪存的三条硬规矩。第一,读写的单位是页,擦除的单位是块,一个块通常包含几百个页,页大小常见4KB到16KB。第二,写入只能把bit从1变成0,不能从0变回1,想把0改回1必须整块擦除。第三,每个块的擦写次数有上限,SLC大概几万次,MLC几千次,TLC一千到三千次,QLC更低。
这三条规矩合起来就产生了一个后果:你不能像改机械盘某个字节那样改闪存里的某个字节。要覆盖写入一个已经写过的页,主控必须先把这一页所在的整个块里的有效数据读出来,写到一个新的、已经擦干净的块里,然后把老块整个擦掉。这个过程叫读改写,是SSD一切复杂行为的根源。操作系统如果直接对着物理地址写,会立刻撞上“这块还没擦”的死路,所以中间必须有一层翻译,这就是下一节要讲的FTL。
顺便说一个很多人误会的点:SSD“越用越慢”不是因为闪存磨损导致读写变慢,而是因为可用空闲块变少、垃圾回收压力变大,每次写入都要先腾地方,表现出来的就是写入延迟升高。理解了机制,你就知道“留出空闲空间”不是玄学,是有物理依据的。
2.2 FTL、垃圾回收与写放大
**FTL(Flash Translation Layer)**是主控固件里最核心的一层,它维护一张映射表,把操作系统发过来的逻辑块地址LBA翻译成闪存上的物理页地址PBA。操作系统以为自己在写“第1000号扇区”,实际上主控把它写到了某个全新的页上,然后更新映射表说“第1000号扇区现在在这个新位置”。老位置的数据直接标记为无效,等垃圾回收来处理。
**垃圾回收(GC)**就是主控在后台找那些无效页比例高的块,把里面还活着的有效页搬到别的块,然后整个擦掉这个块,变成可用的空闲块。搬家的过程会产生额外的写入,这部分写入不是你要求的,是主控自己干的。写放大就是用来衡量这个额外开销的:主机写入1GB,主控实际往闪存写了2GB,写放大就是2.0。写放大越高,寿命消耗越快,性能也越容易波动。
影响写放大的因素有几个:剩余空间越少,GC越频繁,写放大越高;随机小写入比顺序大写入更容易造成碎片,写放大更高;OP预留空间越大,GC越从容,写放大越低。所以给SSD留出10%到20%的未分配空间,或者开启厂商的过度配置,本质上是给GC留出操作余地,这是有明确物理意义的一条建议,不是都市传说。
2.3 OP预留空间与寿命估算,算给你看
**OP(Over-Provisioning)**是闪存上不暴露给操作系统的容量,只给主控自己用。它分两部分,一部分是厂商出厂就留的,比如标称1TB的盘,实际闪存颗粒可能是1024GiB,换算和预留之后用户可见931GiB左右;另一部分是用户可以手动划出来的,比如把分区只分到容量的90%,剩下10%不分配。
寿命估算我用一个具体例子算。假设一块标称1TB的TLC盘,质保写的是5年或600TBW。这个TBW意思是总写入字节数,600TBW代表在质保期内总共可以写入600TB的数据。如果按每天写入量算,600TB / (5 × 365) ≈ 0.33TB/天,也就是每天写330GB左右。如果你是普通办公加游戏,一天写入很少超过30GB,那这块盘理论上能用几十年,主控和电容先坏的概率比闪存磨损更大。
| 容量 | DWPD | 质保年限 | TBW计算 | 适合场景 |
|---|---|---|---|---|
| 500GB TLC | 0.3 | 5年 | 约274TBW | 办公、轻度使用 |
| 1TB TLC | 0.3 | 5年 | 约548TBW | 主流家用、游戏 |
| 1TB TLC | 1 | 5年 | 约1825TBW | 视频剪辑、虚拟化 |
| 2TB TLC | 1 | 5年 | 约3650TBW | 工作站、小型服务器 |
注意:DWPD是“每天全盘写入次数”,厂商数据中心盘的DWPD标得很高,消费盘普遍在0.3左右。看TBW比看“MLC还是TLC”更实在,因为主控和固件的影响同样大。
3. 操作系统侧必须打开的开关
3.1 分区对齐:那个2048不是随便写的
机械盘时代,分区起始扇区从63开始是历史遗留,因为早期的柱面/磁头/扇区寻址方式导致第一个磁道放不下完整63个扇区。到了SSD和4K扇区硬盘时代,如果分区还是从63扇区开始,就会造成每一次逻辑写入跨越两个物理页,主控要读写两个页才能完成一次操作,性能直接打折,寿命也白白消耗。
解决办法就是1MiB对齐,也就是起始扇区用2048。因为2048 × 512字节 = 1MiB,是4K的整数倍,也是大多数NAND页大小的整数倍。Linux下用fdisk -l或者parted看分区起始位置,Windows下在磁盘管理的分区属性里能看到“起始偏移”。现在主流的分区工具,包括Windows安装程序自带的分区、DiskGenius、GParted,默认都是1MiB对齐,所以新建分区基本不用操心。真正容易出问题的是从很老的系统迁移过来的分区表,或者是手动用dd克隆时把老分区表原样搬了过去。
检查方法很简单,Linux下:
sudo parted /dev/nvme0n1 align-check optimal 1返回1 aligned就是对的。Windows下用diskpart选中分区后执行detail partition,看偏移量能不能被1048576整除。查出来不对,最稳妥的办法是备份数据后重建分区,而不是用工具强行调整——调整起始位置本质上就是全盘搬数据,风险不比重新分区小。
3.2 TRIM:让操作系统告诉SSD“这块我不要了”
TRIM要解决的问题很具体。你在文件系统里删掉一个文件,文件系统只是在元数据里标记这些块空闲了,但SSD并不知道。主控还认为这些页里存着有效数据,垃圾回收的时候还要费劲把它们搬走。TRIM就是操作系统主动发一条指令告诉SSD:“这些LBA范围的数据我永远不要了,你可以直接标无效。”
Linux下检查是否支持:
lsblk -D -o NAME,DISC-GRAN,DISC-MAX,DISC-ZERODISC-MAX不为0就说明支持。手动执行一次全盘TRIM:
sudo fstrim -av挂载参数里加discard可以让删除操作实时触发TRIM,但我个人不建议在NVMe盘上开discard挂载选项,因为每次删除都要发指令,小文件频繁删除时会有额外开销。更好的做法是用systemd的定时任务,systemctl enable --now fstrim.timer,默认每周跑一次,对绝大多数场景够用。Windows下用这条命令查:
fsutil behavior query DisableDeleteNotify返回DisableDeleteNotify = 0表示TRIM已启用,返回1表示被禁用了。正常情况下Win10、Win11默认都是开的,某些老旧的RAID驱动或者克隆过来的系统可能被关掉,值得查一下。
3.3 IO调度器和文件系统挂载参数
Linux的块层有一层IO调度器,作用是在把请求交给驱动前排个序、合并一下。机械盘时代cfq很合适,因为它会做寻道优化。SSD上这套逻辑就不太必要了,因为闪存没有寻道成本。现在主流内核里可选的有none(也叫noop,直接透传)、mq-deadline、kyber、bfq。对NVMe盘我个人习惯用none,让多队列直接发挥作用;如果同时跑很多不同优先级的任务,mq-deadline也稳。
查看和修改:
cat /sys/block/nvme0n1/queue/scheduler echo none | sudo tee /sys/block/nvme0n1/queue/scheduler想永久生效,在/etc/udev/rules.d/下加一条规则,或者在GRUB里加nvme_core.default_ps_max_latency_us=0之类的参数控制电源状态。文件系统挂载参数上,noatime是我强烈建议加的,它能避免每次读文件都更新访问时间,减少不必要的元数据写入。/etc/fstab里的写法:
UUID=xxxx / ext4 defaults,noatime,errors=remount-ro 0 1errors=remount-ro是出问题时把文件系统重新挂成只读,避免错误扩散,这个在SSD上比机械盘更重要,因为闪存出错往往是成片而不是单点。
3.4 Windows这边的对应开关
Windows不像Linux那样把参数摊在明面上,它把优化都收进了“碎片整理和优化驱动器”这个界面,但内部逻辑已经和机械盘时代不同了。对SSD,它执行的是retrim,也就是重新发一遍TRIM指令,而不是真的去搬数据。你可以在优化界面点“优化”,也可以手动跑:
defrag C: /L/L参数就是retrim,不是碎片整理。另外几个值得确认的点:Superfetch/SysMain服务在新版Windows上对SSD会自动调整行为,不用手动关;系统还原和休眠文件会占用写入量,如果内存很大,休眠文件hiberfil.sys可能占几十GB,介意写入量的可以关掉休眠;存储感知打开后能自动清理临时文件,间接减少无效数据。
还有一个容易被忽略的:Windows的“优化驱动器”计划任务默认是每周一次,如果你用的是NVMe盘且写入量敏感,可以改成每月一次。方法是打开优化驱动器,点“更改设置”,把频率调低。这些都是很细的操作,但对一块要用五年的盘来说,积少成多。
4. 实战:换更大的SSD并迁移系统
4.1 迁移前必须算清楚的几笔账
换盘之前我一般会先算三件事。第一是容量账,新盘要装得下老盘所有分区加起来的总量,注意是已用空间加未来余量,不是老盘标称容量。第二是接口账,主板有没有多余的M.2插槽、是PCIe Gen3还是Gen4、长度是2280还是2242,这些不确认清楚买回来装不上。第三是引导方式账,老系统是UEFI+GPT还是Legacy+MBR,新盘必须按同样的方式建分区表,否则克隆过去直接进不了系统。
UEFI+GPT的情况下,硬盘开头会有一个ESP分区,通常是100MB到300MB的FAT32,里面放着引导文件。迁移的时候如果只克隆了C盘而漏掉ESP,开机就是“找不到操作系统”。另一个容易翻车的是恢复分区,Windows自动创建的恢复分区如果被漏掉,系统还能用,但重置功能会失效。所以我的习惯是整盘克隆,而不是只克隆某个分区,除非新盘容量小于老盘、必须做压缩。
提示:克隆前把BitLocker关掉,把页面文件暂时禁用,把休眠也关掉,能少很多麻烦。克隆完再重新开启。
4.2 Windows 11迁移:我用过的两条路线
路线一是分区助手这类图形工具的“迁移系统到固态硬盘”功能。它的优点是傻瓜化,会自动处理ESP和恢复分区,还能在新盘上重新分配空间。操作流程大概是:把新盘通过USB硬盘盒或者第二M.2槽接上,打开工具,选“迁移系统到固态硬盘”,选目标盘,勾选“让目标磁盘支持UEFI引导”,然后等进度条。整个过程视数据量可能要十几分钟到一小时。
路线二是整盘克隆,用Macrium Reflect或者Clonezilla。Macrium的“Clone this disk”可以逐分区指定目标大小,还能把老盘大分区缩小一点塞进小盘。Clonezilla更硬核,但胜在免费且对Linux双系统友好。克隆过程中我遇到过一次坑:老盘是1TB,新盘也是1TB,但新盘是标称1TB实际931GiB,而老盘分区分到了999GB,结果克隆工具报“目标空间不足”。解决办法是把最后的恢复分区缩小,或者干脆在克隆后重建恢复分区。
克隆完第一次开机,建议先进BIOS确认引导顺序指向新盘,再确认ESP分区的引导项存在。如果直接进了老盘,说明引导项还指着老的。这时候可以用Windows安装U盘进修复模式,执行:
bcdboot C:\Windows /s S: /f UEFI其中S是挂载后的ESP分区盘符。这条命令会重建引导文件,比重装系统省事得多。
4.3 Linux迁移:dd、rsync和Clonezilla怎么选
Linux下迁移系统我有三种用过的方案,适用场景完全不同。
dd整盘镜像最简单粗暴,sudo dd if=/dev/nvme0n1 of=/dev/nvme1n1 bs=64M status=progress,速度取决于接口带宽。缺点是目标盘必须不小于源盘,而且它会连分区表、空扇区一起复制,40GB的已用空间可能写出500GB的镜像。另外dd不做文件系统层面的检查,源盘有坏块会一起搬过去。
rsync方案适合新盘已经分好区、挂载好的情况。核心命令是:
sudo rsync -aAXH --info=progress2 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/newroot/-aAXH保留权限、ACL、扩展属性、硬链接,排除的目录都是运行时生成的,不需要复制。复制完还要改/etc/fstab里的UUID,装grub,重建initramfs。这套流程灵活,但每一步都不能漏,适合对系统比较熟的人。
Clonezilla介于两者之间,图形化引导,支持分区到分区、盘到盘的克隆,还能处理LVM。它对双系统用户比较友好,菜单里能选只克隆某个系统所在的分区。我一般推荐给不想敲命令又要迁双系统的朋友。
迁移Linux后最常见的两个问题,一个是grub找不到,用Live USB挂载根分区后chroot进去重跑grub-install和update-grub;另一个是fstab里的UUID变了,导致开机进紧急模式,从Live环境里blkid查出新UUID换上就行。
4.4 迁移后的验收清单
迁完不是能开机就完事,我每次都会按这个清单过一遍:
lsblk -f或者Windows的磁盘管理,确认分区布局、文件系统类型、挂载点都对;- 确认ESP分区被正确识别,
efibootmgr -v里能看到新盘的引导项; - 跑一次
sudo fstrim -av,确认TRIM在新盘上可用; - 关掉BitLocker再重新开一遍,让密钥绑定新硬件;
- 用AS SSD或者CrystalDiskMark跑一次顺序读写,确认性能符合新盘规格,如果Gen4盘跑出Gen3的速度,多半是插槽或通道问题;
- 看SMART确认新盘健康,
sudo smartctl -a /dev/nvme0n1里Percentage Used应该是0或者个位数。
这些做完,老盘可以格式化当仓库盘,或者装进硬盘盒当移动盘,算是一次完整的升级。
5. 故障排查与修盘实录
5.1 症状速查表:先对号入座
SSD的故障表现五花八门,但按症状归类能省很多时间。我把这几年遇到的整理成一张表。
| 症状 | 可能原因 | 优先排查方向 |
|---|---|---|
| BIOS里不认盘 | 接触不良、供电不足、插槽通道冲突 | 重插、换插槽、换线、看主板手册 |
| 只有盘符没有容量,打不开 | 分区表损坏、文件系统变成RAW | 用TestDisk或DiskGenius修复分区表 |
| 用着用着突然掉盘 | 主控过热、固件bug、供电波动 | 加散热片、更新固件、换电源 |
| 读写速度断崖下跌 | 接近写满、GC频繁、SLC缓存耗尽 | 留出空闲空间、跑trim |
| 删掉的文件重启又回来 | TRIM被禁用、掉电保护缓存没刷 | 检查TRIM状态、更新固件 |
| 系统卡顿但盘测速正常 | 内存不足、驱动冲突、后台IO | 看资源监视器、换驱动 |
“只有盘符没有容量”这种情况我遇到过一次,是一块移动SSD,拔盘时没安全弹出导致分区表写坏了。用DiskGenius的“搜索已丢失分区”功能扫出来,重建分区表后数据完好。“删掉的文件重启又回来”听着玄乎,其实原理很简单:TRIM没开,主控收回映射表之前数据还在;如果是掉电导致映射表没来得及落盘,重启后固件回滚到旧映射,数据就“复活”了。这类现象在劣质硬盘盒或者突然断电的场景下更容易出现。
5.2 SMART到底该看哪几项
SMART属性一大堆,真正有用的就那几个。NVMe盘和SATA盘的SMART结构不一样,我分开说。
SATA盘重点看这几项:ID 05重分配扇区数,非0就要警惕;ID 09通电时间,判断盘的新旧;ID C7 UDMA CRC错误计数,这个数值涨说明数据线或者接口有问题,跟闪存无关;ID E7或E8是厂商定义的剩余寿命百分比,不同品牌编号不同,需要查对应手册。NVMe盘用smartctl -a看,重点是Available Spare可用备用块、Percentage Used已用寿命百分比、Data Units Written主机写入总量、Media and Data Integrity Errors介质错误计数。
sudo smartctl -a /dev/nvme0n1 sudo smartctl -a /dev/sda我的经验是,Percentage Used涨得快不一定有问题,因为它跟写入量挂钩;但Available Spare掉到100%以下、或者Media Errors非0,就要开始备份数据了。另外温度也别忽略,NVMe盘主控上90度很常见,持续高温会触发降速,smartctl里能看Temperature和Warning Temperature Time。加个几块钱的铜片散热片,很多时候比换盘管用。
5.3 量产工具:什么时候能用,风险在哪
量产工具是主控厂商提供给生产环节的开卡工具,能把SSD恢复到出厂状态、重建映射表、设置OP、刷固件。常见的对应关系比如慧荣主控配SM系列工具、群联配PS系列、瑞昱配RTS系列,热词里提到的RM1135也是这类主控的固件工具。它能解决一部分“变砖”问题,比如固件损坏导致不识别、映射表错乱导致容量异常。
但必须说清楚风险:量产基本等于全盘擦除,数据救不回来,而且必须有正确的固件包和参数配置,配错了可能把主控彻底写死。我的态度是,量产是最后手段,不是日常维修工具。真要用,先确认三件事:主控型号和闪存颗粒型号对得上、有对应版本的固件和配置文件、这块盘里的数据已经备份或者确认不要了。流程一般是短接ROM点位让主控进工程模式,工具识别后加载配置、开始量产、等进度完成、断电重插验证。
普通用户我更建议先走保修,或者找专业数据恢复。量产工具在网上流传的版本很多,来路不明的包我不敢往自己机器上插。这不是技术问题,是安全和责任的边界问题。
5.4 数据恢复的边界:TRIM开了就基本没戏
最后说一个很多人关心的问题:SSD删掉的文件能不能恢复。答案取决于TRIM。如果TRIM开启并且已经执行过,被删数据对应的物理页很可能已经被主控标记无效,再经过一轮垃圾回收就被擦除了,恢复工具扫到的只是零。如果TRIM没开、或者删除后立刻断电拔盘、GC还没跑,那还有恢复窗口。
所以遇到误删,第一步是立刻停止对这块盘的一切写入,能关机就关机,把它挂到别的机器上做只读镜像再分析。用WinHex这类工具直接看扇区是可以的,但别在盘上装恢复软件,也别让系统自动挂载。至于“清除数据对SSD卡顿有没有用”,如果你指的是对整盘做一次全盘写零,那要看你目的:修逻辑坏块可以做,日常优化完全没必要,还会白白消耗一次全盘写入寿命。
6. 调优与长期使用的一点个人心得
6.1 OP到底该不该手动开
厂商自带的OP一般够用,1TB盘通常留了几十GB。要不要手动再划10%出来,我的判断标准是看用途。如果这块盘做系统盘、日常就是办公和游戏,写入量不大,手动开OP收益有限;如果这块盘拿来做虚拟机、视频剪辑缓存、数据库临时目录,写入压力大,留10%到20%未分配空间能明显降低写放大,长期看是值的。做法很简单,分区的时候不把剩余空间分完就行,不需要任何特殊工具。
6.2 散热这件事被严重低估
我见过太多“新买的Gen4盘跑分很猛,用半年之后掉速严重”的案例,最后查出来都是散热。Gen4、Gen5的NVMe盘满载功耗能到8瓦以上,笔记本里塞在无线网卡和电池之间的狭小空间,主控轻轻松松上百度,固件为了保护自己就降速。加一块薄铜散热片、换用带散热马甲的主板插槽、或者笔记本里贴一层导热硅胶垫到后盖,成本几十块,效果立竿见影。台式机的话,机箱风道别把显卡热风直接吹到M.2槽上,这个细节很多人不注意。
6.3 几条反直觉的实操经验
第一,不要迷信跑分。同一块盘在不同主板、不同BIOS版本、不同驱动下跑分能差20%,但日常使用感知不到。我的判断标准是实际开机时间、软件加载时间、大文件拷贝时间。
第二,SSD不需要碎片整理,但需要“优化”。Windows的优化驱动器对SSD做的是retrim,该跑还是要跑,只是频率不用太高。
第三,系统迁移后如果感觉变慢,先查分区对齐和TRIM,十有八九是其中一个没到位,而不是盘的问题。
第四,老盘别急着扔。换下来的SATA SSD装个硬盘盒就是一块很抗摔的移动盘,拿来放系统镜像、备份照片,比机械移动盘靠谱得多。
第五,固件更新要谨慎但别逃避。厂商放出的固件多半是为了修bug或者改善兼容性,但刷固件有掉电变砖的风险。我的做法是:确认当前没有已知的严重问题就先不刷;要刷就接稳电源、用官方工具、刷完校验一次SMART。
我自己从机械盘一路换到NVMe,最大的体会是,SSD这东西性能上限由硬件决定,但能不能长期稳定跑在这个上限附近,很大程度上取决于操作系统这一侧的配置有没有做对。分区对齐、TRIM、调度器、挂载参数、散热,这五件事做齐了,一块普通消费盘也能安安稳稳用很多年。