濒临损坏的SSD可被lspci识别但无法被lsblk识别,如何临时挂载以抢救数据?
这种SSD濒临挂掉的情况真的让人捏一把汗,先别急,咱们一步步试试这些方法,看能不能把那一周的新数据捞回来:
试试用NVMe专用工具直接访问设备
先安装nvme-cli工具(比如Debian/Ubuntu系可以用sudo apt install nvme-cli),然后执行nvme list看看能不能识别到故障的NVMe设备。从你的dmesg日志里能看到它被识别过nvme1,如果工具能找到它,先试试nvme id-ctrl /dev/nvme1获取控制器的基本信息,确认设备还能和系统通信。
如果通信正常,可以尝试用nvme read命令直接读取扇区数据,比如先读第一个扇区(分区表所在位置):sudo nvme read /dev/nvme1 --block-count=1 --start-block=0 --output-file=sector0.bin之后可以用工具解析这个文件里的分区表信息,再针对性地读取对应分区的扇区,保存成镜像文件后再恢复数据。
用数据恢复工具扫描底层PCIe设备
推荐试试开源的TestDisk工具,它可以绕过系统的块设备识别,直接扫描PCIe总线的存储设备。安装后启动TestDisk,选择「Create」新建日志文件,然后在设备选择界面,找找那个型号为Samsung Electronics Co Ltd Device a80c的NVMe控制器。
如果能选中它,就启动分区扫描——哪怕系统没识别出块设备,TestDisk也有可能直接读取底层扇区,找到残留的分区结构,进而恢复里面的文件。调整NVMe驱动参数,强制重新识别
从你的dmesg日志看,系统因为I/O超时直接禁用了控制器,你可以试试重新加载NVMe驱动并放宽超时限制:sudo rmmod nvme sudo modprobe nvme nvme_timeout=300这里把超时时间改成了300秒,之后再用
lsblk或nvme list看看设备能不能被正常识别。另外也可以进BIOS把NVMe的电源管理模式改成高性能(关闭节能模式),有时候节能策略会让故障设备更难被系统识别。硬件层面的最后尝试
你之前试过烘烤焊点,那可以试试换个PCIe插槽,把故障SSD插到主板上其他空闲的PCIe x4插槽里,有时候插槽接触不良或兼容性问题也会导致识别异常。如果有其他台式机,尽量直接把SSD插到那台机器的PCIe插槽上,别用USB转接器——很多转接器对故障设备的兼容性很差,反而会阻碍识别。关于刷控制器固件的风险提示
刷固件这个操作风险极高!现在你的设备已经不稳定,刷固件过程中一旦出现中断,设备会直接变砖,彻底失去恢复数据的可能。而且目前你连设备都没法正常识别,固件工具大概率无法和控制器建立有效通信,所以绝对不建议尝试这个方法,除非你已经做好了彻底丢失数据的准备。
备注:内容来源于stack exchange,提问作者WesH

