買了很久的 Acer 4775 i7-2670MQ (4C8T) 筆電,雖然有點久了,但跑一些 Linux 的程式,或者是做 Windows 簡單功能,其實都還蠻夠力的。
但是自從三年前開始就不定時的當機,到最後甚至開機沒有五分鐘就會自動重開。一開始還懷疑是不是新換的 RAM 的問題,或者是 CPU 過熱。但經過了換 RAM 和降頻(強制使用最低 800MHZ 的頻率),卻有時還是會發生。在偶然的機會裡發現,一直停留在 BIOS 畫面卻沒事,由於這種環境下通常只會使用一顆 CPU,所以就開始懷疑是不是 CPU 某一顆壞了。
於是試著關閉一顆 CPU,想不到救活了這顆老 CPU,看來機器還可以撐個好幾年了。由於工作上 Windows 和 Linux 都會使用到,就把兩者的方法都記下來。
2020/01/03: 本來只壞一核,後來越壞越多。最後拿去給人家看,才說是主機板壞了,花了2800壞主機板,才修好這磨人的問題~
Windows 關閉 CPU
Windows 要設定使用的CPU個數,要使用內建的一支 msconfig 程式,使用者可以從「開始–>執行」或者是 Win+R 鍵,輸入 msconfig 來執行。程式啟動後,選擇「開機」Tab下的「進階選項」。
進階選項內可以看到「處理器數目」的這個選項,預設是沒有勾選,代表使用全部可用的CPU。勾選後,就可以選擇想要使用的 CPU 個數了。
Linux 關閉 CPU
Linux 的設定步驟會麻煩一點。
大家有沒有發現 Windows 是進系統後才去改 CPU 個數的,如果中間就當機重開怎麼辦!?因為我沒碰到這個問題,所以我也沒去找這個問題的答案,但是在 Linux 碰到了。開機到一半,就會不斷的重開,我猜是跑到一半就火力全開了…
開機暫時關 CPU
CPU 關閉可以在 grub 開機選單跳出時,臨時修改個數來達到。Ubuntu Linux 在開機時一般都會跳出個開機選單,如果沒看到就直接進 Linux ,可以在開機時多按幾下 ESC 鍵就會出現。
在開機的 Linux 選項上,進行下列步驟:
- 按下「e」,來做臨時編輯開機參數
- 接下來會出現開機的參數設定,找到開頭是 “linux” 的行,然後在最後面加上 “nr_cpus=1″,來指定要使用的 CPU 個數,最後按下 Ctrl+X 開機。
更新 Grub 的預設 CPU 個數
成功以1核心進入 Linux 後,你可以做一些測試,看看是否穩定,如果沒問題,就再開機時指定更多的 CPU 個數,直至穩定為止。如果連1核心都不穩定的話,那可能就是很抱歉了,或者其實有其它溫度或RAM的問題吧。最後,我們將要使用的CPU個數寫進 Grub 的設定檔內,開機時就不用再指定了。
- 切換成 root 身份,用編輯器打開 /etc/default/grub,找到 GRUB_CMD_LINUX_DEFAULT 這一行,將 nr_cpus=1 (請修改成自己的所需的數字)加入。
- 存檔後執行 update-grub 來更新檔案,然後再下執 grub-install /dev/sda 來安裝新的 grub 設定
- 重開後就可以看到 CPU 個數的變更了。
要看目前有幾個 CPU ,可以使用 nproc 指令,會直接寫出有幾個。或者可以用指令 cat /proc/cpuinfo | grep MH 來抓取訊息,找到幾行的 MHz 就是有幾個。
結語
CPU 部份壞掉真的很少見,以前有碰過整個壞的,也謠傳過 AMD 3核心是4核壞1核打下來的,想不到自己也會碰到 CPU 部份損壞,經過了很長不放棄的嘗試,才發現了原因找到了解法。而且剛寫這篇文章時,在 Linux 下還有6核可用,最近又壞了1核了,看來是越來越加速了….能用多久就用多久吧,希望能幫到碰到相同問題的人。
這台機器是剛新裝了 8G 的 RAM 就碰到這問題,一直掙扎要不要整台丟掉,因為不穩定的機器比不能用還慘,還好有撐到最後順利救回!!