目錄
一、運行級別
1.運行級別
2.運行級別命令
(1)runlevel
(2)init + 運行級別
3.永久修改啟動級別(ubantu20.04)
二、啟動過程
🔹 總結
三、啟動引導程序grub配置文件
一、運行級別
1.運行級別
2.運行級別命令
(1)runlevel
(2)init + 運行級別
? ? ? ? 改變運行級別的命令。比如init 0 就是關機。 init 6 就是重啟等。最好加個sudo。
3.永久修改啟動級別(ubantu20.04)
# 設置開機進入命令行模式
sudo systemctl set-default multi-user.target# 設置開機進入圖形界面模式
sudo systemctl set-default graphical.target
修改后可以驗證:
systemctl get-default
二、啟動過程
解釋
(1)開機進入BIOS,這個是主板上的固件,通過BIOS可以加載MBR上的引導程序。這個程序在磁盤上,按道理來說,沒驅動怎么在磁盤上進行讀寫操作?但是BIOS上有最基本的IO讀寫的操作。其實可能就是有地址總線,直接讀就完了,不依賴文件系統。所以就算是不同的磁盤,他肯定是有扇區的,也就是設計結構或者文件系統不同,但是在BIOS這里無所謂。
(2)MBR中有建議的驅動程序,可以讀取文件系統如ext4,FAT等。之后他就從/boot讀取文件,包括內核和initramfs。
(3)加載內核之后呢,根據initramfs這個文件,建立仿真目錄。這個仿真目錄里面放著一些驅動程序,內核可以加載這些驅動程序讀取磁盤。
(4)之后系統進行初始化,如對主機名,網絡,硬盤掛載等進行初始化。另一部分根據運行級別啟動對應的程序,這些程序在/etc/rcx(ubantu20.04),x從0-6代表不同系統級別啟動的腳本程序。其中K開頭的表示系統關機默認執行的程序,S開頭的表示系統開機默認執行的腳本程序。
(5)對于ubantu20.04來說,已經沒有/etc/rc.d/rc.local了。如果想要開機自動執行一個服務(服務未必就是一直在后臺運行的,可以把任何的可執行文件寫成服務),需要
🔹 總結
-
systemd 的配置文件就在
/etc/systemd/system/
(用戶自定義)、/lib/systemd/system/
(系統自帶)。 -
真正決定開機啟動的,不是“放到某個文件夾里”,而是:
-
寫好一個
xxx.service
文件放到/etc/systemd/system/
-
然后執行:
sudo systemctl daemon-reload sudo systemctl enable xxx.service
這一步會在
/etc/systemd/system/multi-user.target.wants/
(或對應 target)里創建符號鏈接 → 表示開機要自動啟動。
-
注意:/sbin/init這個程序是系統里面第一個啟動的進程,他是很多進程的父進程。進程號PID=1。
三、啟動引導程序grub配置文件
這個就是MBR啟動引導程序讀取的配置文件,但是對于ubantu20.04來說,不太允許修改。