偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux系統(tǒng)中的硬件問題如何排查?

譯文
系統(tǒng) Linux
在Linux系統(tǒng)中,對于硬件故障問題的排查可能是計(jì)算機(jī)管理領(lǐng)域最棘手的工作,即使是經(jīng)驗(yàn)相當(dāng)豐富的用戶有時(shí)也會遇上自己搞不定的狀況,本文分享一些實(shí)用的技巧與處理方法,希望有助于讀者朋友理解、查明并最終搞定硬件難題。

  【51CTO精選譯文】這篇教程的誕生過程實(shí)在相當(dāng)糾結(jié)。很長時(shí)間以來我一直在考慮要不要寫這么一篇東西,最主要的原因在于對硬件相關(guān)問題進(jìn)行故障排查可能是計(jì)算機(jī)管理領(lǐng)域最棘手的工作。即使是經(jīng)驗(yàn)相當(dāng)豐富的用戶有時(shí)也會遇上自己搞不定的狀況,并在試圖解決那些微妙、古怪、難以捉摸甚至無法確定的軟硬件沖突困境時(shí)碰上釘子。想在網(wǎng)絡(luò)上尋找答案?我們找到的很可能是上萬個(gè)無關(guān)主題,最終在空蕩蕩的論壇上孤獨(dú)徘徊、耗盡余生。

  不過就個(gè)人來說,我自認(rèn)為算是個(gè)自負(fù)的極客、對技術(shù)難題和寫作手法都有相當(dāng)?shù)男判摹=裉煳掖蛩惚M量與大家分享一些實(shí)用的技巧與處理方法,希望有助于讀者朋友理解、查明并最終搞定硬件難題--無論您使用的是Linux設(shè)備還是其它什么平臺。這篇教程無法保證100%有效,其中的某些方法也可能不太容易掌握,但它還是能起到一些作用。請大家隨我一起探尋硬件故障中的奧秘吧。

[[68390]]

  硬件故障類型

  在開始著手診斷硬件問題之前,我們首先需要調(diào)整預(yù)期、充分了解工作中可能遇到的硬件故障類型,這一點(diǎn)非常重要。最后,大家還必須掌握硬件故障的實(shí)際表現(xiàn)形式。

  硬件無法工作

  最常見的故障源自電子設(shè)備中的某一部分發(fā)生損壞,但例外情況同樣時(shí)有發(fā)生。如果大家的電源出了問題,設(shè)備當(dāng)然沒辦法啟動(dòng),這個(gè)道理非常簡單。除此之外,顯卡、聲卡甚至記憶棒都可能在關(guān)鍵時(shí)刻掛掉,并帶來各種各樣的奇怪表現(xiàn)。在這種情況下,系統(tǒng)也許仍能通過BIOS自檢并進(jìn)入操作系統(tǒng),甚至允許用戶進(jìn)行一定程度的正常操作。而在某些情況下,我們可能會直接感受到設(shè)備故障,例如屏幕分辨率突然變得非常低--這肯定是因?yàn)轱@卡驅(qū)動(dòng)程序無法正常工作;或者聽音樂時(shí)沒有聲音,那就是聲卡的問題。在某些情況下,操作系統(tǒng)還可能直接彈出錯(cuò)誤提示信息。

硬件的不穩(wěn)定性故障

  不穩(wěn)定性是我們面臨的最困難、也最不容易確診的故障類型之一。如果大家的硬件僅有某一部分發(fā)生損壞,那么整體設(shè)備也許仍能正常運(yùn)轉(zhuǎn),只在特定情況下偶爾出現(xiàn)問題。這往往令用戶摸不著頭腦,無法把異常狀況與對應(yīng)設(shè)備聯(lián)系到一起,從而得出正確結(jié)論。另外,即使是同一故障也可能存在多種表現(xiàn)形式,它們彼此之間看似毫無關(guān)聯(lián),但足以把用戶折磨得死去活來。

  某些類型的錯(cuò)誤甚至不會影響設(shè)備的正常功能,但它們卻有可能偷偷導(dǎo)致數(shù)據(jù)損壞或設(shè)備整體性能下降。這類問題相當(dāng)陰險(xiǎn),因?yàn)槲覀兺?xí)慣于將其歸罪于操作系統(tǒng)損壞或軟件沖突。舉例來說,如果我們的記憶棒中存在少數(shù)損壞單元,使大家在訪問并使用這些存儲空間時(shí)發(fā)生段錯(cuò)誤,各位打算怎么辦?再有,我們可能會把系統(tǒng)內(nèi)核崩潰與某些軟件掛上鉤,但其真正根源或許在于內(nèi)存故障或總線錯(cuò)誤,您想到了嗎?另一個(gè)很好的例子就是三年前我在自己老款T61設(shè)備上遭遇的無線/筆記本問題。我專門用來玩游戲的發(fā)燒級臺式機(jī)還碰到過由地線引發(fā)的故障。

  固件/驅(qū)動(dòng)程序故障

  驅(qū)動(dòng)程序故障常常表現(xiàn)得像是硬件出了問題,但不同之處在于其發(fā)作狀況比較穩(wěn)定、不像硬件那樣時(shí)好時(shí)壞。通常情況下,軟件問題導(dǎo)致的狀況比較一致且能夠再現(xiàn)。在某些情況下,我們的驅(qū)動(dòng)程序甚至無法與硬件進(jìn)行通信;而在另一些情況下,存在bug的驅(qū)動(dòng)程序會令設(shè)備以意料之外的方式運(yùn)作。有時(shí)候這類問題還會轉(zhuǎn)化成全局功能缺失,例如內(nèi)核崩潰、黑屏、白屏以及其它各種奇怪的故障。

  其它注意事項(xiàng)

  大家還必須意識到,某些系統(tǒng)可能會鎖定BIOS以防止我們使用某些硬件組件或功能,或者是出于某種目的而禁用這些組件。在后面的文章中我們將進(jìn)一步討論BIOS的相關(guān)話題。

  最后,大家可能會在無意中將那些設(shè)計(jì)上存在沖突的硬件組件放在一起工作。某些供應(yīng)商生產(chǎn)的硬件也許只針對某款特定操作系統(tǒng),因此我們無法從官方得到任何其它系統(tǒng)平臺上的驅(qū)動(dòng)程序支持。不過有些硬件能夠與其它產(chǎn)品使用同樣的公版驅(qū)動(dòng)程序,例如Lexmark打印機(jī)就能完美接納PCL驅(qū)動(dòng)程序。#p#

  硬件分析

  由于在追蹤硬件問題、嘗試加以解決方面存在數(shù)以百計(jì)的處理方案,因此在實(shí)際操作中感到迷茫或是淹沒在互聯(lián)網(wǎng)那數(shù)不清的案例當(dāng)中都是極為正常的現(xiàn)象--人生最大的悲哀也莫過于此。我給大家的忠告是,盡管以有條理的方式對待每一次硬件故障,最大程度減少誤判與干擾因素。

  好吧,我們先來假設(shè)大家已經(jīng)遇上了一起硬件故障。在現(xiàn)實(shí)中有些故障真實(shí)存在、有些則只是我們的誤判或者偶然現(xiàn)象,不過在這里我們暫時(shí)只討論那些真正存在的問題。

  備份與更新

  首先也是最關(guān)鍵的一步,為自己的數(shù)據(jù)做好備份。一旦設(shè)備開始搗亂,我們的底線就是千萬不要失去任何寶貴的資料信息,這一步在修復(fù)計(jì)劃中可謂不可或缺。

  第二個(gè)步驟是對設(shè)備進(jìn)行全面更新。在Linux領(lǐng)域,這意味著下載所有可用的系統(tǒng)更新,因?yàn)槠渲锌赡馨鴮鉀Q硬件問題至關(guān)重要的固件及驅(qū)動(dòng)程序修復(fù)補(bǔ)丁。就算沒有這些針對性內(nèi)容,新內(nèi)核也往往能更好地支持設(shè)備上的硬件。舉例來說,SSD TRIM命令只能在2.6.33內(nèi)核中生效。同樣,Sandy Bridge也僅支持最新的幾個(gè)系統(tǒng)發(fā)行版本。英偉達(dá)的290.XX驅(qū)動(dòng)程序中可能包含一些早先版本不具備的額外功能或重要修復(fù)代碼。

  啟動(dòng)日志

  如果我們的設(shè)備中存在已經(jīng)完全損壞、部分損壞或者發(fā)生嚴(yán)重問題的硬件,那么首先想到的肯定是要看看啟動(dòng)過程有沒有對此進(jìn)行記錄及反饋。為此,大家需要查詢系統(tǒng)中的啟動(dòng)日志。在大多數(shù)情況下,Linux系統(tǒng)的啟動(dòng)日志被保存在/var/log路徑下,文件名通常為boot.log或者boot.msg等。如下圖所示:

  不要看到錯(cuò)誤信息就關(guān)注!

  從上圖中,大家可以看到幾條紅色的失敗提示信息與黃色警告信息。暫時(shí)把它們放在一邊,它們可能與故障有關(guān)也可能并無關(guān)系,事實(shí)上我們不要因?yàn)楦蓴_因素而影響到正常的檢查流程。再次強(qiáng)調(diào),大家現(xiàn)在要做的是確定硬件方面的某種問題,就目前而言,我們只應(yīng)該關(guān)注那些與問題硬件確切相關(guān)的內(nèi)容。如果沒什么關(guān)系,那么直接跳過就好。事實(shí)上,很多情況下我們都可以預(yù)估問題的出現(xiàn)范圍并直接到對應(yīng)部分進(jìn)行檢查。#p#

  Dmesg命令

  另外一些頗具價(jià)值的信息被保存在內(nèi)核緩沖區(qū)日志當(dāng)中,我們通??梢岳胐mesg命令來調(diào)用。當(dāng)然,有時(shí)候該日志也會被保存在/var/log路徑下的同名文件中。這條命令會顯示所有緩沖區(qū)內(nèi)的內(nèi)核信息,其中一些也同時(shí)存在于標(biāo)準(zhǔn)系統(tǒng)日志當(dāng)中--即由syslog生成的/var/log/messages。

  除此之外,dmesg還會顯示大量硬件初始化信息,我們可以借此摸索可能出現(xiàn)的問題或沖突。同樣,這部分信息中不正常的內(nèi)容也會很多,一一閱讀并理解會浪費(fèi)大量時(shí)間,所以請有針對性地進(jìn)行處理。大家最應(yīng)該關(guān)注的是模塊名稱與硬件地址,它們是由冒號隔開的數(shù)字與字母構(gòu)成的字符串。

  在下面的例子中,我們可以看到英偉達(dá)模塊的初始化情況。由于模塊不支持GPL,因此導(dǎo)致系統(tǒng)內(nèi)核受損--另外,聲卡的初始化信息也能在下圖中找到。

  Lsmod命令

  我們之前在許多場合都使用過lsmod命令,這條命令能夠被加載到系統(tǒng)內(nèi)核中的模塊名稱及其使用次數(shù)。在進(jìn)一步分析處理之前,大家應(yīng)該首先確定設(shè)備擁有基本驅(qū)動(dòng)程序支持。舉例來說,如果我們想了解為什么英偉達(dá)顯卡無法工作,那么首先得弄清驅(qū)動(dòng)程序是否被正確載入或者說沒有出現(xiàn)沖突。雖然對于普通用戶來說,判斷驅(qū)動(dòng)程序未被載入的原因似乎有些困難,但至少我們已經(jīng)了解到導(dǎo)致問題的根源,這也算是個(gè)了不起的成果。

  /sys/devices

  現(xiàn)在我們再來看看更實(shí)用的檢查方法。將啟動(dòng)信息與dmesg結(jié)合起來雖然能為我們提供一些基本信息,但這些信息卻并不十分可靠。在無法斷定信息真?zhèn)蔚那闆r下,大家需要直接審查內(nèi)核架構(gòu)并檢測載入的驅(qū)動(dòng)程序。

  在Linux系統(tǒng)中,由于架構(gòu)的單一特性,組件會直接通過編譯進(jìn)入內(nèi)核或作為可動(dòng)態(tài)加載的模塊。與硬件之間相互通信的模塊就被稱為驅(qū)動(dòng)程序。無論是直接進(jìn)入內(nèi)核還是成為可加載模塊,組件最終都會出于某種目的而駐留在內(nèi)核中。這是一種抽象軟件層,用戶無法直接進(jìn)行控制。

  然而,以間接方式進(jìn)行部分控制還是可以的,我們能夠利用偽文件系統(tǒng)/proc及/sys滲透到一部分內(nèi)核架構(gòu)中去。大家可以通過修改看似普通的文件來實(shí)時(shí)變更內(nèi)核架構(gòu),這將改變系統(tǒng)的運(yùn)作方式。/sys文件系統(tǒng)則允許用戶對硬件以及內(nèi)核模塊進(jìn)行修改。

  現(xiàn)在,如果大家還記得之前圖片中列出的數(shù)字,我們已經(jīng)可以讓它們派上些大用場。瀏覽/sys/devices下的子目錄并檢查哪些硬件組件已經(jīng)連入注冊接口。

  某些模塊擁有可寫入?yún)?shù),我們能夠憑借root權(quán)限對其加以修改、進(jìn)而改變硬件的運(yùn)作方式。舉例來說,我的LG筆記本的PCI插槽上接有USB5設(shè)備,它正好擁有可寫入?yún)?shù)。如果大家在這個(gè)文件中填寫不同數(shù)值,就能夠啟動(dòng)或關(guān)閉對特定USB接口的訪問。

  在實(shí)踐中,大家會發(fā)現(xiàn)瀏覽/sys絕對是個(gè)對經(jīng)驗(yàn)與知識要求很高的細(xì)致活,這點(diǎn)在嘗試解決硬件問題時(shí)尤為明顯。普通用戶對不同參數(shù)及值的理解更是有所欠缺,但這都不要緊,我想強(qiáng)調(diào)的只有一點(diǎn):/sys目錄能夠提供很多有用的信息。#p#

  Lspci命令

  要想對所有接入的硬件組件及其對應(yīng)驅(qū)動(dòng)程序進(jìn)行掃描,這里還有一種更簡單的方法。系統(tǒng)命令lspci能列出所有接入PCI總線的設(shè)備,不過就連遺留硬件也會被顯示出來。

  現(xiàn)在的問題是,lspci到底是從哪獲得這些信息的?好吧,如果大家真想知道,那么我們一起把lspci與strace搭配起來看看。毫無疑問,lspci是對/sys目錄進(jìn)行掃描以獲取接入設(shè)備信息的,其中包括連接端口、供應(yīng)商ID、設(shè)備類型以及配置等。

  最后,lspci會參考/usr/share/hwdata/pci.ids文件中所包含的硬件供應(yīng)商靜態(tài)列表。該列表會將供應(yīng)商ID數(shù)字轉(zhuǎn)譯成自然語言名稱,方便我們直接讀取lspci所輸出的掃描結(jié)果。

  某些Linux發(fā)行版還會為lspci命令配備圖形化前端,這樣我們就能像在Windows平臺上那樣從窗口中讀取系統(tǒng)信息了。但需要提醒大家的是,命令輸出查詢起來更方便,尤其是在進(jìn)行調(diào)試工作時(shí)。

  /var/log/messages

  最后但同樣重要的是,我們還可以通過查詢系統(tǒng)日志得到想要的答案。再次強(qiáng)調(diào),將注意力集中在出現(xiàn)問題的硬件身上,別被無關(guān)緊要的錯(cuò)誤所引導(dǎo)。作為演示,我們向設(shè)備插入U(xiǎn)盤并查看系統(tǒng)會向我們反饋哪些信息。要實(shí)時(shí)進(jìn)行信息查詢,我們要用到tail命令。

  要注意系統(tǒng)列出的內(nèi)容。在這個(gè)實(shí)例中,我們會看到系統(tǒng)正確識別到了新接入的驅(qū)動(dòng)器。但這并不意味著我們可以直接開始使用,大家一定已經(jīng)發(fā)現(xiàn),系統(tǒng)沒有自動(dòng)為其安裝驅(qū)動(dòng)程序、我們目前也沒有足夠的使用權(quán)限等等。甚至U盤本身也可能存在故障。但無論如何,設(shè)備已經(jīng)被系統(tǒng)內(nèi)容正確識別了,所以我們可以排除這方面的可能性了。

#p#

  實(shí)例匯總

  有了前面提到的知識基礎(chǔ),現(xiàn)在我們該處理一些實(shí)例,在操作中學(xué)習(xí)并理解。當(dāng)前我懷疑自己的英偉達(dá)顯卡在Ubuntu中存在硬件/驅(qū)動(dòng)程序間的沖突,因?yàn)殡m然系統(tǒng)提示驅(qū)動(dòng)已激活但設(shè)備仍無法正常工作。

  在某些情況下,我無法使用自己的硬件--無線網(wǎng)卡--更確切地說,相關(guān)固件由于許可及識別沖突等原因而不存在于內(nèi)核當(dāng)中。Debian與Trisquel兩套發(fā)行版都有這樣的問題。

  其它事項(xiàng)

  如果,我的意思是只有用盡了上述所有方案都搞不定問題時(shí),大家才應(yīng)該到互聯(lián)網(wǎng)上搜索并追尋自己想要的答案。雖然我已經(jīng)提到,本文所介紹的各類工具不一定總能幫你找到問題的根源,但它們一般來說都很有效,所以推薦大家優(yōu)先從這里入手。

  現(xiàn)在大家應(yīng)該從網(wǎng)上搜索資源并與眼前的問題進(jìn)行比對。在大多數(shù)情況下,我們只走馬觀花看幾眼就能剔除掉很多沒用的信息。如果有人面臨與您相同的故障癥狀,但導(dǎo)致問題的硬件卻完全不同,別猶豫--馬上離開。如果有人面臨同樣的癥狀,但使用的操作系統(tǒng)不同--馬上離開。雖然已經(jīng)說過很多次,但我還是要強(qiáng)調(diào),別為沒意義的事情分神。有時(shí)候多種故障可能會歸結(jié)為同一個(gè)內(nèi)核錯(cuò)誤,畢竟內(nèi)核能夠輸出的信息是有限的。可以肯定的是,許許多多不同各類的問題都會引發(fā)相似的故障表現(xiàn)。

  這里我向大家推薦一些尋找答案成功率較高的網(wǎng)絡(luò)資源:Phoronix,雖然只是個(gè)論壇,但經(jīng)常會組織檢查及基準(zhǔn)測試活動(dòng);Linux drivers 是個(gè)很實(shí)用的編譯類門戶網(wǎng)站;再就是linuxquestions.org網(wǎng)站,這里的資源非常不錯(cuò),值得大家多逛逛。

#p#

  最后,BIOS

  檢測流程當(dāng)然由大家自己說了算。不過如果所有嘗試都宣告失敗,那么更新BIOS恐怕是我們惟一的出路。一般情況下,整個(gè)更新過程應(yīng)該是很安全的,但一旦出現(xiàn)問題,那就絕不會是小問題--你的設(shè)備很可能直接變磚。這也正是我將BIOS更新作為最后一節(jié)內(nèi)容的主要原因。另外,在碰BIOS之前請務(wù)必確保大家已經(jīng)嘗試過前面提到的所有處理方法,例如利用其它系統(tǒng)發(fā)行版檢測硬件兼容性。

  BIOS內(nèi)容的改動(dòng)可能啟動(dòng)或禁用某些功能,例如火線、藍(lán)牙、RAID控制器及其它組件,這將直接影響操作系統(tǒng)的運(yùn)作以及識別并調(diào)用某些硬件的能力。

  總結(jié)

  Linux硬件故障排查工作要求我們具備相當(dāng)?shù)闹R并熟悉命令行與系統(tǒng)信息。另外,靈活的處理方案與實(shí)用信息在某些特定操作系統(tǒng)中可能無法生效。修改內(nèi)核空間的能力可以幫助大家診斷并解決與硬件有關(guān)的技術(shù)問題。

  在今天的文章中,我們共同探討了如何有條不紊地利用各類工具及實(shí)用程序解決Linux系統(tǒng)中的硬件故障。大家了解到故障的具體類別、如何咨詢系統(tǒng)日志以及如何使用lspci及l(fā)smod等命令。最重要的是,我們還與BIOS、驅(qū)動(dòng)程序及系統(tǒng)調(diào)試進(jìn)行了一番淺層次但意義深遠(yuǎn)的接觸。希望這篇文章能幫助大家從容應(yīng)對未來道路上的問題。不過請大家別忘記,有時(shí)候就算使盡渾身解數(shù)也無法搞定難題,這很正常、并不丟人。硬件本身發(fā)生了損壞,這就不是我們所能挽回的局面了--所以請保持輕松愉快的心情。

  就寫到這里,感謝收看。

  原文鏈接:http://www.dedoimedo.com/computers/linux-hardware-troubleshooting.html

責(zé)任編輯:黃丹 來源: 51CTO.com
相關(guān)推薦

2019-01-04 08:00:59

Linux硬件容器

2021-01-09 10:12:40

電腦CPUPC電腦

2021-06-28 08:00:00

Python開發(fā)編程語言

2024-01-05 09:23:09

Linux系統(tǒng)內(nèi)存內(nèi)存指標(biāo)

2020-09-29 07:59:22

CPU系統(tǒng)性能

2022-01-26 19:42:05

MySQL亂碼排查

2015-12-21 13:34:31

LinuxGPU顯卡硬件

2019-07-16 06:43:18

LinuxCPU占用率

2021-07-14 13:50:51

Linux命令文件

2019-03-29 10:22:08

Linux系統(tǒng)故障技巧

2023-12-26 11:39:50

CPU系統(tǒng)進(jìn)程

2019-08-05 13:40:52

LinuxUbuntu硬件規(guī)格

2025-03-18 08:10:00

iodump開源I/O

2009-09-25 10:48:07

Linux硬件信息操作系統(tǒng)

2023-10-08 13:10:00

Redis數(shù)據(jù)庫

2024-03-26 09:40:53

Linux優(yōu)化

2024-11-21 16:47:55

2018-11-26 08:40:43

2010-03-02 16:32:35

Linux initr

2015-05-25 19:37:17

InxiLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號