更新:已解决
看来问题出在驱动器上。通过保留它非常冷静下来,慢慢地移动,休息片刻,我就能一次恢复一个文件的所有数据。感谢大家的帮助!
我的系统包含一个 Mushkin MKNSSDPE2TB-D8 系统驱动器(2TB NVMe SSD)和两个 SATA 驱动器,它们位于镜像 RAID 阵列中。Ubuntu Server 22.04 于 4 周前(10 月 7 日,前后几天)安装,没有出现问题。
我最近开始向系统驱动器写入文件,在过去 48 小时内写入了约 200GB。注意到多次系统崩溃,系统变得无响应,每次都需要硬重启。为了诊断,我开始监控内核消息缓冲区 ( sudo dmesg -wH
)。
然后,我于 11 月 7 日 18:11 将一个小文件(339 KB)写入系统驱动器(供以后参考)。
此时,系统变得无响应。内核消息缓冲区中积累了多个错误,表明 nvme 系统驱动器(或可能是控制器?)存在问题:
[ +0.000027] nvme nvme0: I/O 257 QID 5 timeout, aborting
[ +0.000006] nvme nvme0: I/O 258 QID 5 timeout, aborting
[ +0.000005] nvme nvme0: I/O 259 QID 5 timeout, aborting
[ +0.000004] nvme nvme0: I/O 260 QID 5 timeout, aborting
[ +30.719233] nvme nvme0: I/O 256 QID 5 timeout, reset controller
[Nov 7 18:12] nvme nvme0: I/O 2 QID 0 timeout, reset controller
随后多个服务开始出现故障。最后,我看到了以下内容:
[ +0.032544] systemd[1]: Unmounting /boot/efi...
[ +0.000100] systemd[1]: Stopped Journal Service.
[ +0.001581] systemd[1]: Starting Journal Service...
[ +0.005176] systemd[1]: Stopping LVM event activation on device 259:3...
[ +0.000097] systemd[1]: Stopping Unattended Upgrades Shutdown...
[ +0.004093] systemd[1]: lvm2-pvscan@259:3.service: Deactivated successfully.
[ +0.000122] systemd[1]: Stopped LVM event activation on device 259:3.
[ +0.000869] systemd[1]: Started Journal Service.
[ +0.031798] FAT-fs (nvme0n1p1): unable to read boot sector to mark fs as dirty
[Nov 7 18:21] Core dump to |/usr/share/apport/apport pipe failed
[Nov 7 18:22] EXT4-fs warning: 126 callbacks suppressed
[ +0.000001] EXT4-fs warning (device dm-0): ext4_dx_find_entry:1791: inode #5375122: lblock 2: comm PMS ReqHandler: error -5 reading directory block
[ +0.001141] EXT4-fs warning (device dm-0): ext4_dx_find_entry:1791: inode #5375072: lblock 3: comm PMS ReqHandler: error -5 reading directory block
[ +0.000044] EXT4-fs warning (device dm-0): dx_probe:820: inode #5374089: lblock 0: comm PMS ReqHandler: error -5 reading directory block
[ +0.001368] EXT4-fs warning (device dm-0): ext4_dx_find_entry:1791: inode #5375122: lblock 6: comm PMS ReqHandler: error -5 reading directory block
[ +0.000895] EXT4-fs warning (device dm-0): dx_probe:820: inode #5374089: lblock 0: comm PMS ReqHandler: error -5 reading directory block
[ +0.012023] EXT4-fs warning (device dm-0): ext4_dx_find_entry:1791: inode #5375072: lblock 1: comm PMS ReqHandler: error -5 reading directory block
[Nov 7 18:26] Core dump to |/usr/share/apport/apport pipe failed
此时,系统完全崩溃,没有响应。需要硬重启才能让系统恢复运行。
完整日志可见于这个 Pastebin 文档。
我是不是看到我的 NVMe 出现故障了?或者这可能是主板/控制器的问题?有什么想法可以继续吗?我没有其他可以用来测试 NVMe 驱动器的系统,也没有其他 NVMe 驱动器来测试系统。:/
谢谢!!!!:D
答案1
我刚刚看了一下你的 pastebin ,看起来不太好 :(
无论如何,我都会向你提出一些想法:
- NVME 在频繁使用时容易发热。如果过热,可能会导致过早磨损和异常行为。添加散热器(带导热垫)可能会有所帮助。
- 查看驱动器是否正确就位。您可能还需要卸下驱动器,并用手电筒检查插槽是否干净,所有电线(连接)是否正常。您可以尝试在其中喷洒压缩空气,以确保万无一失。
- 如果可能的话,作为最后的手段,尝试将驱动器安装在不同的主板或外部机箱中(如果有),看看会发生什么。
如果驱动器上的数据很重要/没有备份,我会先将驱动器从主板上卸下,然后尝试将其放入外部机箱中。NVME USB 机箱的价格约为 20 美元,通过这种方式,您可能有最大的机会恢复数据。
编辑:您提到无法访问其他系统,因此您始终可以使用 USB 棒(实时分发)启动系统。这样您就可以转到控制台,安装驱动器(直接从主板安装,或者,在我看来,最好是从 USB-NVME 外壳安装),然后查看文件是否在那里。备份数据后,您可以测试驱动器并查明问题所在。我会从 smartctl(smartmontools)开始。