Ubuntu開機黑屏,無法進入系統


  今天早上起來開機發現Ubuntu進不去了,啟動項選擇之后長時間的black of screen,擊鍵盤、點鼠標毫無反應,后來實在等不下去了就按了一下電源鍵,以平時的性格就是強制關機的,這次輕輕碰一下就關掉了。由於懷疑是給強制關掉了,又試了一下,發現不是強制關機。沒辦法,只能進入恢復模式,試了clean然后直接退回正常啟動的選項,這次可以看到東西了,跟server的命令界面一樣,除了中文名全為鑽石亂碼。試了一下statx,這條命令便是server進入GUI的命令,返回了未安裝xinit的消息,但是考慮到寬帶要撥號才能上網,因此沒有用命令安裝它,事實證明,這是一大失誤。后面又進入到了恢復模式,可選的選項全都走了一邊,包括dpkg修復,安裝了幾十M的軟件包,然后又回到了startx這里,但是這次決定試一下,sudo apt-get install xinit,然后....就裝上了,再次startx,發現大概可以進入圖形界面,不過卡住了,還是選擇重新啟動吧,果然重啟之后就可以進入了。

  下面是幾點反思、小結及相關擴展:

1.導致開機進不去最可能的原因是因為昨天裝QT的時候與Xserver系列的軟件包不兼容,如xserver-xorg-vedio,於是提示我要卸載它們,而我選擇了"y"。Xserver、Xwindow是我們經常會遇到的兩個概念,說白了其實就是Linux、Unix進入圖形界面必須的套件,關於Xserver的相關知識,請往下翻。

2.我要裝得QT實際上大小只有30M左右,而要卸載的套件有40M更多,其實如果細心點的話可能就會懷疑了,以前碰到軟件包不兼容的情況卸載的最多也就幾個包,不會超過10M,這次有好幾十個包,40M已經超出了常理,因此應該小心操作的,而我甚至不知到xserver是什么就決定卸載,實在太過輕率。

3.本着一顆好奇之心,卸載后去大概了解了一下xserver是什么,發現X系關系着我們的圖形界面,當時沒有想到如果把它卸了會引發什么樣的后果,也沒有想到startx(之前接觸過,但不知道startx具體什么意思),沒有做更深入的了解,也為這次埋下了隱患。每一個未知的東西都值得我們學習,應該抱着一種掌握、搞懂的態度去學習,這樣或許可以幫我們解決很多問題。

4.進入恢復模式后其實本可以早一點將問題解決的,后面安裝的xinit也許和之前dpkg的修復有關,也許無關,關鍵在於有勇氣嘗試一下apt-get install的命令,因為實際上本地是有軟件庫的,有些軟件包已經放在了本地系統方便安裝,或者是一些極其重要的包用來拯救系統的。我們常常會被自己有限的認知范圍所限制,不願意做出改變和嘗試,但是這些改變和嘗試並不會讓我們損失什么,因此不管怎樣,我們不應該失去嘗試的勇氣與信心,因為也許就是這次嘗試帶來了希望與曙光。

5.之前因為某種原因曾經發生過循環桌面,在登陸界面輸入密碼后又彈回到該界面的情況,第一次遇到時剛使用Ubuntu不久,不太了解這些東西同時也比較輕率,當時在網上查找解決方法無助后竟毅然重裝系統,明明是很小的問題,卻花費了極大的代價。第二次遇到則是三四個月前了,當時使用Ubuntu有一段時間了,不過那段時間剛好沒怎么用,但是耐着性子在網上找到了解決方案,自己也按照此法解決了問題:在登陸界面ctrl + alt + F7進入到tty7,cd 進入到 /home/username,然后ls -la,列出隱藏文件,然后delete .Xauthority,問題得到解決。

  

知識擴展:

1..Xauthority

The .Xauthority (not .xAuthority) file can be found in each user home directory and is used to store credentials in cookies used by xauth for authentication of X sessions. Once an X session is started, the cookie is used to authenticate connections to that specific display. You can find more info on X authentication and X authority in the xauth man pages (type man xauth in a terminal)

 

2.Xserver及相關

一,linux本身沒有圖形界面,linux現在的圖形界面的實現只是linux下的應用程序實現的.

圖形界面並不是linux的一部分,linux只是一個基於命令行的操作系統,linux和Xfree的關系就相當於當年的DOS和 WINDOWS3.0一樣,windows3.0不是獨立的操作系統,它只是DOS的擴充,是DOS下的應用程序級別的系統,不是獨立的操作系統,同樣 XFree只是linux下的一個應用程序而已.不是系統的一部分,但是X的存在可以方便用戶使用電腦.WINDOWS95及以后的版本就不一樣了,他們 的圖形界面是操作系統的一部分,圖形界面在系統內核中就實現了,沒有了圖形界面windows就不成為windows了,但linux卻不一樣,沒有圖形 界面linux還是linux,很多裝linux的WEB服務器就根本不裝X服務器.這也WINDOWS和linux的重要區別之一.

二,X是協議,不是具體的某個軟件:

X是協議,就像HTTP協議,IP協議一樣.這個概念很多初學者甚至學習LINUX有一定時間的人都混淆,一個基於X的應用程序需要運行並顯示內容 時他就聯接到X服務器,開始用X協議和服務器交談.比如一個X應用程序要在屏幕上輸出一個圓那么他就用X協議對X服務器說:喂!我需要在屏幕上畫一個圓. X應用程序只負責告訴X服務器在屏幕的什么地方用什么顏色畫一個多大的圓,而具體的"畫"的動作,比如這個圓如何生成,用什么顯卡的驅動程序去指揮顯卡完 成等等工作是由X服務器來完成的.X服務器還負責捕捉鍵盤和鼠標的動作,假設X服務器捕捉到鼠標的左鍵被按下了,他就告訴X應用程序:親愛的應用程序先 生,我發現鼠標被按下了,您有什么指示嗎?如果X應用程序被設計成當按下鼠標左健后再在屏幕上畫一個正方形的話,X應用程序就對X服務器說:請再畫一個正 方形,當然他會告訴服務器在什么地方用什么顏色畫多大的正方形,但不關心具體怎么畫--那是服務器的事情.

那么協議是需要具體的軟件來實現的,這就是下面我要講的:

三,X和XFree86的關系.

有了協議就需要具體的軟件來實現這個協議.就好比我們有了交通法規就需要交警去根據法規維護交通秩序一樣.Xfree86就是這樣一個去根據法規實 現協議的"交警".他按照X協議的規定來完成X應用程序提交的在屏幕上顯示的任務.當然不僅僅是某個特定的交警才可以去維護和實現這個法規,比如還可以由 交通協管員來實現交通法規,必要的時候警察也可以介入,當然前提是他們都要懂得交通法規,也就是要懂得協議.所以實現X協議的軟件也並不只有 XFree86,XFree86只是實現X協議的一個免費X服務器軟件.商業上常用MOTIF,現在還有XORG,還有很多很小的由愛好者寫的小的X服務 器軟件.甚至可以在WINDOWS上有X服務器運行,這樣你可以在linux系統上運行一個X應用程序然后在另一台windows系統上顯示.多么神奇. 你可以用google找到這樣的X服務器軟件.只不過在LINUX上最常用的是XFree86.(現在的linux發行版都用Xorg了)順便說一句,蘋 果電腦的圖形界面用的也是X協議,而且被認為是做的最好的X協議圖形界面,並且他對X協議的實施是做在系統內核里的,所以性能明顯好很多,這就是為什么很 多大型三維圖形設計軟件都是在蘋果平台上的原因.

為了便於理解拿HTTP協議來比較:

協議是HTTP (hyper text transmission protocol)
實現這個協議的常用服務器有:apache IIS 等
請求這些服務器傳輸文件的客戶有:IE ,MOZILLA ,NETSCAPE等.

協議是X
實現這個協議的常用服務器有Xfree86 ,Xorg ,Xnest等

其中:

Xorg  : ubuntu Gentoo solaris .....................
XFree86 : redhat
Xsun  :solaris
 
The XFree86 Project, Inc
  • XFree86是由X11R6發展出來的最初專門給Intel X86 結構PC機使用的X Window的系統。
  • 而后XFree86發展成為幾乎適用於所有類UNIX操作系統的X Window系統。
  • XFree86是一個開放源代碼的基於X11的桌面基礎構架。
  • Red Hat 9中使用的X Window系統就是 XFree86 4.3。
  • XFree86從2004年發布的版本4.4起不再遵從GPL許可證發行,而是遵循新的XFree86 1.1 許可證。
  • 由於XFree86不再遵從GPL許可證發行,導致許多發行套件不再使用XFree86,轉而使用Xorg。

The XOrg Foundation(X.org)

  • Xorg 是由 X.Org 基金會發行的開放源代碼 X Window 系統實現的 X 服務。
  • Xorg 遵從GPL許可證發行。
  • Xorg 基於 XFree86 4.4RC2 和 X11R6.6 的代碼。
  • X.Org 基金會在 2004 年 4 月發布了 X11R6.7。
  • 在 2005 年 2 月發布了 X11R6.8.2。
  請求這些服務器來完成顯示任務的客戶:所有的X應用程序.

只不過HTTP協議的服務器和客戶端通常都在兩台不同的電腦(服務器和客戶機)之間來實現,所以一般人對這個比較容易理解.而X協議的服務器和客戶 端程序通常在同一台電腦上,因此很多用戶都感到對此很難理解.既然是協議,那么肯定和平台無關的,因此可以讓X應用程序顯示在任何裝有X服務器的遠程計算 機上.甚至顯示在裝有Xnest服務器的windows系統上.只不過在大多數情況下,X應用程序都用本機的X服務器,然后X服務器將顯示結果輸出到本機 的顯示器.這也是很多人不理解X是一種協議的原因.

四,X和X11R6又是什么關系?

不知道初學者有沒有注意到/usr/X11R6這個目錄,這是XFree的默認安裝目錄
X11R6 實際上是 X Protocol version 11 Release 6
(X協議第11版第六次發行)的意思,就是說目前用的X協議是第11版的,然后經過了6次小的修正.不同版本的X協議是不能通信的.就象我們現在IPV4和IPV6不能通信一樣,不過不用擔心,現在的X服務器軟件和X應用程序都遵循X11R6.

另外XFree86 3.3.6 XFree86 4.3.6 等這些版本是實現X協議的軟件XFree86的版本號.這是初學者經常高混淆的概念.

協議版本和實現協議的軟件的版本--這兩個概念的區別你分清楚了嗎?

五,X服務器和WM(window manager 窗口管理器)之間是什么關系.

平時大家起動圖形界面是怎么啟動的呢?
如果你是一開己就進入圖形界面那就太遺憾了.應為你錯過了了解X服務器起動過程的好時機.不過沒關系.你打開一個XTERM輸入:
init 3
就可以安全的回到字符界面.
好了,等做完以下實驗你就完全明白X和WM(window manager 窗口管理器)之間是什么關系了.

先輸入以下命令:
#startx

起動圖形界面,你看到的是一個和平時使用一樣的完整的圖形界面操作環境.
你可以最大化,最小化,移動,關閉窗口等.

按ctrl+alt+backspace反回字符界面.

輸入:
#xinit

再次啟動圖形界面,你看到了什么,你看到一個XTERM.而且不能移動.但是你可以在這個XTERM中輸入命令打開X應用程序,如果我輸入:
#mozilla
打開瀏覽器,你看到的瀏覽器和平時有什么不同嗎?他在屏幕中間,不能移動,不能最小化,不能最大化,沒有邊框.

為什么同樣一個X應用程序會有這樣的不同呢?因為我們用startx起動圖形界面的時候同時也啟動了一個WM(即窗口管理器),如果你用KDE就起動了KDE,如果你用GNOME就起動了GNOME.但是你用xinit起動圖形界面的時候卻沒有起動WM.

現在你明白窗口管理器的作用了嗎?他的作用就是最大化,最小化,移動,關閉窗口等.而這些不是X服務器來負責完成的.


如果你用xinit起動圖形界面並在xterm中輸入twm,看看會有什么?
xterm被加上了一個邊框,你可以通過這個邊框移動,最大化,最小化這個xterm,twm就是XFree86中自帶的窗口管理器,是一個比較簡陋的最簡單的窗口管理器,但是他具有窗口管理器的全部特征.

如果你不輸入twm而輸入gnome-session就可以起動GNOME
或者輸入startkde起動KDE.

通過以上的實驗你就可以清楚的明白他們之間的關系.

六,關於KDE和GNOME

KDE和GNOME是LINUX里最常用的圖形界面操作環境,他們不僅僅是一個窗口管理器那么簡單, KDE是K Desktop Environment 的縮寫.他不僅是一個窗口管理器,還有很多配套的應用軟件和方便使用的桌面環境,比如任務欄,開始菜單,桌面圖標等等.

GNOME是GNU Network Object Model Environment 的縮寫.和KDE一樣,也是一個功能強大的綜合環境.

另外在其它UNIX系統中,常常使用CDE作為這樣一個環境.

其它的小型窗口管理器有:
window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的優秀窗口管理器.REDHAT9中有 window maker 但是默認不安裝,大家可以裝來試試.只要xinit再wmaker&就可以用windowmaker了.

七,linux圖形界面層次關系總結

linux本身-->X服務器<-[通過X協議交談]->窗口管理器(綜合桌面環境)-->X應用程序.
 
參考鏈接:
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM