修改Ubuntu預設執行級別,啟動字元介面

2021-06-28 09:57:16 字數 3491 閱讀 3400

ubuntu的預設開機的runlevel是2,可以用runlevel來檢視當前的預設執行級別。

debian系(ubuntu是基於debian)的linux一直是用runlevel 2來預設啟動,並且runlevel定義也與redhat有區別。debian的runlevel級別定義如下:

0 – halt,關機模式

1 – single,單使用者模式

2 - full multi-user with display manager (gui)

3 - full multi-user with display manager (gui)

4 - full multi-user with display manager (gui)

5 - full multi-user with display manager (gui)

6 – reboot,重啟

可以發現2~5級是沒有任何區別的。他們為多使用者模式,這和一般的linux不一樣。而redhat的runlevel級別定義如下:

0:關機。不能將系統預設執行級別設定為0,否則無法啟動。

1:單使用者模式,只允許root使用者對系統進行維護。

2:多使用者模式,但不能使用nfs(相當於windows下的網路上的芳鄰)

3:字元介面的多使用者模式。

4:未定義。

5:圖形介面的多使用者模式。

6:重啟。不能將系統預設執行級別設定為0,否則會一直重啟。

這裡補充一下,多數的linux都是用一種叫system v的機制來啟動執行級別,而ubuntu使用upstart代替init啟動系統程序。所以沒有那個inittab檔案來改預設執行級別。ubuntu 的預設執行級別檔案是/etc/init/rc-sysinit.conf。

成功的方法:

第一種方法:(核心級別的)

sudo vi /etc/default/grub

修改grub_cmdline_linux_default=」quiet splash」

為:grub_cmdline_linux_default=」 text」

然後執行下sudo update-grub2就可了

第二種方法:(基於upstart的」正統」方法)

ubuntu的upstart的體系下,/etc/init.d裡面基本上都是連線到/lib/init/upstart-job的軟連線,所以,對 initscripts的請求全部轉化為upstart事件,upstart系統對啟動專案的管理全部根據/etc/init裡面的配置檔案來啟動,可以啟動lightdm的事件就讓人咂舌

編輯檔案 /etc/init/lightdm.conf

start on ((filesystem

and started dbus

and (graphics-device-added fb0 primary_device_for_display=1

or drm-device-added card0 primary_device_for_display=1

or stopped udevtrigger))

or runlevel prevlevel=s)

stop on runlevel [016]

可見,一旦發生檔案系統初始化,dbus匯流排啟動和發生graphics-device-added fb0 primary_device_for_display=1 or drm-device-added card0 primary_device_for_display=1 or stopped udevtrigger or runlevel prevlevel=s這裡面的任何乙個事件,gdm就會被啟動,只在執行級別在016的時候,gdm不啟動。

所以,事件也就明了了、要在upstart層面乾掉gdm,把上面的啟動相關事件注釋掉,改寫下就行了

由於ubuntu 預設模式為2,所以:

start on (filesystem

and started dbus

and (graphics-device-added fb0 primary_device_for_display=1

or drm-device-added card0 primary_device_for_display=1

or stopped udevtrigger)

and runlevel [345])

stop on runlevel [0126]

重啟。第三種方法:

1、阻止預設圖形桌面啟動

ubuntu 12.04預設的開機會進入乙個圖形介面,他是由lightdm程序來實現的。

首先要做的,就是阻止這個lightdm的程序開機啟動。 做法:

(1)、檢視檔案/etc/init/rc-sysinit.conf,在第14行附近:確認「env default_runlevel=2」。2是新裝系統預設的,確保不被修改。

(2)、編輯檔案 /etc/init/lightdm.conf,在第12行附近,原句「 and runlevel [!06]」 改為「 and runlevel [!026]」。

解釋:linux系統都有乙個執行級別(runlevel)的概念,不同的執行級別配置將導致系統的啟動過程有很大差異,比如當配置 runlevel為 1是,是不進入圖形介面的。系統啟動過程中會有乙個init程序來拉起許多其他程序(各種系統服務,視窗介面)。在ubuntu上(11.10,12.04是這樣,其他版本或其他linux發行版不確定)init會執行兩個目錄下的指令碼,乙個是/etc/init/下的,另乙個是/etc/rc?.d/下的,問號可能是0~6的其中乙個數字,代表執行級別。接下來,講解一下流程以加深理解。

在ubuntu上,init程序首先執行/etc/init/目錄下的rc-sysinit.conf,這個檔案指明了本次啟動的預設執行級別。這是上面第一步的意義:確保預設執行級別是2。接下來目錄/etc/init下的其他指令碼的執行都會根據不同的執行級別做出不同的動作,比如lightdm會判斷執行級別是否處於1,2,3,4,5中的乙個,是則啟動lightdm,不是則不啟動lightdm。這便是上面第二步的意義,修改 lightdm.conf ,把「2」加入到判斷語句,使得lightdm在執行級別2的時候不要啟動。明白了這些,你就可以靈活一點,例如把預設級別設定為3,而把3加入那個判斷語句,也可以達到阻止lightdm啟動的效果。完成了/etc/init/目錄下的啟動動作,init程序會繼續執行/etc/rc2.d目錄下的指令碼。

2、關閉ubuntu的載入畫面

ubuntu啟動時,會有乙個ubuntu字樣出現在螢幕,文字下方有閃爍的點,這時按esc可以在動畫和文字介面之間切換。這一步驟不屬於lightdm,而是乙個叫 plymouth 的程序在起作用。實際上,plymouth的意義就在於,在開機到圖形桌面 (lightdm)起來這段時間裡展示出乙個動畫,從而提高使用者體驗。

遮蔽的方法:

grub_cmdline_linux_default="quiet splash" 

去掉」splash「,改後:

grub_cmdline_linux_default="quiet"

(2)、執行命令:

sudu updat-grub

重啟,即可看到,不再有載入畫面出現。

ubuntu修改預設執行級別

由於之前自己學習的時候都是 使用的centos6.5,這幾天聽老師說要用ubuntu來上課,我看不來xwindows就想改啟動為命令列後面發現不一樣,centos就是改inittad檔案就好,而ubuntu卻要像下面一樣,等我以後搞明白了,再來補充現在先做乙個記錄 vi etc default gr...

Ubuntu修改系統預設啟動級別

圖形介面與終端控制台的互動 ctrl alt fn n 1 進入登陸介面 n 2 進入圖形介面 n 3 進入終端控制台 設定開機啟動為圖形介面或者終端控制台 sudo systemctl set default multi user.target sudo reboot 重啟後進入終端控制台 出現下...

Ubuntu下修改系統的預設啟動級別

想自定義ubuntu系統是預設以圖形介面啟動還是以命令列形式啟動,現在我的ubuntu版本是ubuntu 16.04,嘗試了網上的兩種方法 修改 etc x11 default display manager檔案或者修改 etc default grub檔案,都不行。然後嘗試了下面的方法即可解決,u...