Arch-Linux

硬槃無故從睡眠中喚醒

  • August 4, 2019

我有一個 SATA 擴展塢(實際上是我的 PC 機箱的一部分)並且經常使用它。我的 SATA 磁碟之一是WD Caviar SE16 WD2500,一個 250GB 7200 RPM SATA3 硬碟。塢站連接到在 UEFI 中標記為外部的 SATA 埠。

當我插入它並得到我想要的任何東西時,我會sudo hdparm -Y /dev/sdd在我的終端上發出它並立即進入睡眠模式。

只有在隨機時間(從 2 分鐘到幾個小時不等)之後,它才會恢復。

我的其他驅動器不會出現這種行為並保持睡眠模式,直到我再次嘗試從它們訪問文件。

我很肯定我沒有訪問驅動器,我的系統中也沒有任何使用者空間程序。

我該如何診斷,更重要的是,我如何確保它保持睡眠狀態?

好吧,驅動器喚醒的原因可能不計其數。

例如,我的新 WD80EZAZ 驅動器出現了這個問題。結果是一個簡單的smartctl -a喚醒他們(只需查詢 SMART 數據,甚至不執行任何測試)。我的舊 WD20EARS 驅動器不是這種情況,您可以在不正常旋轉的情況下查詢它們。所以我不得不添加-n standby到我smartd.conf在待機時忽略驅動器。

其他流行的原因是文件系統,例如ext4惰性初始化可能會定期訪問驅動器。您可以設置/proc/sys/vm/block_dump或使用其他工具來查找,或使用mount -o loop,ro只讀掛載來排除文件系統本身的定期(寫入)訪問。

如果您有一個無效/etc/fstab條目,指定一個不存在的 UUID,這也可能導致掃描所有驅動器以查找失去的 UUID,從而喚醒程序中的所有內容。這就是為什麼你有時會看到人們使用/dev/disk/by-uuid/the-thing而不是UUID=the-thing因為它會阻止額外的掃描:by-uuid 符號連結要麼存在,要麼不存在,不像findfs它不會每次都遍歷所有驅動器。

還要檢查dmesg定期匯流排重置或其他此類問題。不穩定的電纜也會導致奇怪的副作用。

不幸的是,這個問題沒有簡單的答案,而且很難確定確切的原因。

引用自:https://unix.stackexchange.com/questions/533789