我们运营着大约 35,000 台运行内核版本 3.7.0 和 udev 版本 171 的机器。该内核有 aufs 补丁和一些其他与 V4L2 相关的补丁。
大约有 200 台机器丢失了某些组合/dev/sdaX
,有时还丢失了其标签。其中绝大多数(约 90%)只是交换分区出了问题,其余 10% 是更严重的故障,会阻止启动或其他重要操作。
我调查了一些并发现下面的一些方法有时可以解决问题。
- 有时
partprobe
会导致丢失的 by-label 重新出现。例如,/dev/sda6
存在但/dev/disk/by-label/OVERLAYB
不存在。运行partprobe
可恢复OVERLAYB
。 - 有时,会出现相同的症状,但却
partprobe
没有任何效果。 - 有时,分区会以标签丢失的方式损坏。例如,
/dev/sda3
存在,但/dev/disk/by-label/SWAP
丢失并swapon /dev/sda3
失败read swap header failed: Invalid argument
。mkswap
纠正此问题。 - 有时,分区及其标签会丢失。
mknod
和的组合mkfs
可恢复预期行为。 - 在另一个案例中,
/dev/sdaX
和 的副标签丢失。在mknod
、mkfs
(使用适当的-L
)和偏执狂之后partprobe
,副标签仍然丢失。
值得注意的是,我从未见过/proc/partitions
不正确的情况,即使/dev/sdaX
缺少了 a。
还要注意的是,在某些情况下,当前根文件系统缺少/dev/sdaX
模式。这会阻止启动!这对我来说表明该节点在启动时存在,但后来消失了。 似乎没有什么奇怪的dmesg
。
我知道这里面有很多不同的东西,但我相信这些都是一些我们尚未发现的更深层次的失败的症状。我相信在纠正一个问题时,我只是消除了一个症状,而这个问题还会再次发生。
我真的不知道该看什么。以前有人见过这样的事情吗?潜在的问题可能是什么?我如何才能更多地了解情况,以帮助我缩小问题范围?
答案1
Crucial M500 SSD 驱动器也遇到了类似的问题。驱动器突然消失,但要再次看到它们,需要关闭/打开电源。将驱动器固件从 MU02 升级到 MU05(最新版本)可解决此问题。谜团也可能与 BIOS 和驱动器控制器固件版本有关。