踩坑:固態硬盤連接故障使系統假死崩潰

筆者的惠普Pavilion筆記本使用的是雙硬盤:原裝1TB西部數據機械硬盤,配上光驅位的ADATA SP550 240GB固態硬盤。EFI分區、Windows 10+Ubuntu 18.04雙系統及其應用軟件安裝在固態硬盤上,機械硬盤在刪除系統有關的分區後專門用來存放數據。如此一來,速度存儲兩不誤,重新定義了我對Windows和電腦速度的認識。

相對穩定運行兩年有餘,然而,就在昨天(2018年9月6日),意想不到的情況發生了。

故障:莫名變卡的機器

在像往常一樣用Ubuntu編譯內核時,我習慣性地關上筆記本蓋子去吃飯,回來打開蓋子,發現無論等多久、按多少次鍵盤,電腦怎麼也喚不醒。一段時間後,屏幕上出現了指針,而除此之外仍是一片黑屏,登錄界面出現後也無法輸入密碼繼續。想嘗試打開TTY模式(Ctrl+Alt+F1~F6)排除故障,結果更不管用。觀察硬盤燈,硬盤燈竟然一直常亮。

類似的問題也出現在Windows裏。運行某個程序之後,機器逐步陷入癱瘓狀態:先是當前運行的程序出現無響應提示,而其他程序沒事;接着,其他程序也中招了,紛紛陷入無響應;再後來,就是資源管理器(桌面)崩潰了。無響應提示窗口選擇“結束程序”,也沒有任何反應。觀察硬盤燈,硬盤燈同樣出現了常亮的情況。

本以爲這樣的死機,重啓一下就好,誰知一重啓問題就更嚴重了。惠普採用系微BIOS的筆記本,可以按ESC和功能鍵進入一些系統功能,例如ESC鍵暫停啓動進入功能菜單、F1顯示系統信息、F2打開惠普診斷工具、F9打開啓動菜單、F10打開BIOS設置;按下對應鍵後,屏幕左下角還會顯示出按下的鍵與對應的功能。結果,不管按下哪一個鍵,系統都會卡住許久,屏幕左下角的文字一直出現,始終未跳轉到下一個界面,直到等待約兩分鐘後才勉強出現。在等待過程中,硬盤燈也一直保持常亮。

即使成功進入了對應的界面,異常仍然存在。但是,比起根本不能動彈的操作系統,以下位於系統底層的程序反而直接告訴了我答案:

  • 啓動菜單界面中,沒有出現任何選項,也就是說系統沒有識別出任何的有效啓動設備。進一步,插入一個EFI啓動U盤,列表中有了顯示,但只有U盤對應的那一項。
  • 惠普診斷工具進入了核心模式,只有簡易的菜單和內存/磁盤檢測功能。而以往則會進入標準版,爲類似於Windows的圖形界面模式,功能更全面,還支持鼠標。
  • 診斷工具起初還能檢測出兩塊硬盤,但再一次重啓後只剩下了機械硬盤。

這裏有一個值得注意的細節:惠普診斷工具的標準版是位於EFI分區當中的(路徑爲EFI/HP/),核心模式則爲BIOS自帶,檢測不到EFI分區就會自動進入核心模式。而EFI分區在我的固態硬盤上,機械硬盤的EFI分區早已被我刪除。

以此,我可以判斷,問題很可能就出在固態硬盤上。

探究:拆掉固態硬盤後……

初步鎖定目標後,我二話不說,打開筆記本後蓋,卸下固態硬盤托架。然後適當扣好後蓋,裝上電池啓動,於是奇蹟發生了:三秒之內,“找不到啓動分區”的提示迅速出現,而再度重啓後按下功能鍵,進入對應功能的時候也是秒速,和正常情況無異。整個過程之中,硬盤燈也不再常亮,而只是象徵性地閃一下。

如此一來,問題出在固態硬盤上的這一推測也得到了證實。但是,光確定這一方向還不夠,還要具體分析關於固態硬盤的問題出在哪裏——硬盤元件、磁盤區塊損壞、硬盤的連接等,每個要素都有可能導致機器假死這一結果。

進一步分析前,要想辦法啓動系統。我有一個移動硬盤盒,把固態硬盤從托架上卸下來後裝進去,連接電腦並開機,結果打開啓動菜單後,選項仍是空空如也。試着將一個之前用於安裝Ubuntu的U盤插進去重啓,列表中出現了U盤的選項,用它引導進入LiveCD,再次重啓,選項裏就多出了固態硬盤中兩個操作系統的入口。

最容易排除的因素莫過於硬盤本身,尤其是損壞的區塊上,對此需要一款能夠檢查全盤錯誤的工具,首選就是HDTune。正好電腦中安裝了IT天空的Windows 8 PE(手工安裝,具體方法還會再出教程),於是從Windows Boot Manager中選擇PE,進入之,然後打開其附帶的HDTune。

在HDTune中選擇固態硬盤,然後打開“錯誤掃描”選項卡。確保不勾選“快速掃描”,以及掃描範圍的值爲最大。隨即開始掃描,耐心等待。

如此測試有兩個目的,首先就是檢查磁盤錯誤,其次是長時間考驗硬盤。第一部分中所提到的癱瘓問題,均發生在系統啓動後一小時之內,正好HDTune的錯誤掃描時間遠遠不止1小時,由此也可檢查磁盤的穩定性。

測試最終成功,進行到了最後。結果證明,問題並沒有出在固態硬盤本身——幸好固態硬盤沒問題。

防微杜漸:保證連接的穩定性

排除了固態硬盤本身的問題之後,我的目光即刻集中到硬盤與主板的連接上。光驅位硬盤托架本質上是接口規格的轉換,將臺式機的SATA+電源接口規格轉換爲筆記本的規格。它們接口排列相同,都是電源與數據並列,只是筆記本上的接口遠遠更加小巧。

然而,小巧也有其風險的地方:小巧意味着接觸面小,使得接口固定不牢。我的托架在不上螺絲的情況下插入接口中,稍微搖動一下,或者是往外一抽,即立刻鬆動。如此設計的初衷,即是允許用戶輕鬆地拆卸並更換光驅。出廠時,筆記本的光驅位只有一顆螺絲固定,同時接口不會設計得太緊,擰開螺絲後,用戶很輕易就能抽出光驅。不過,對於穩定性要求高得多的硬盤來說,這保障還不夠。在臺式機上,SATA線和電源線,只需其一,即可把固態硬盤懸吊起來,還不易鬆動。

由此我不由得懷疑,之前的Bug,正是因爲接口偶然鬆動才導致的。爲了預防這一問題,我在裝回後蓋的時候,特意把固定托架的唯一一顆螺絲擰緊了。

附:不能用USB端口上的固態硬盤啓動系統

不過要注意的是,兩款操作系統都不能直接從USB啓動。Windows 10會在走完啓動畫面後,出現INACCESSIBLE_BOOT_DEVICE的藍屏;而Ubuntu下則表現爲無法掛載Root分區而panic。原因就在於,默認情況下它們和硬件設備編號(暫且這麼說)是綁定的,但是固態硬盤轉移到了完全不同的USB控制器上,那麼設備編號自然要重新分配。例如正常情況下,固態硬盤在Windows中是1號磁盤驅動器(0號爲機械硬盤)、在Ubuntu中是/dev/sdb;而USB端口下,則會在Windows中變成2號、3號乃至n號驅動器,在Ubuntu中變成/dev/sdc/dev/sdd,乃至更靠後。而往往系統中的配置文件沒有相應地修改,自然會造成崩潰。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章