centos7 开机后进去了命令行_Linux系统管理:开机启动流程(二)
CentOS7
1.BIOS(開機自檢)
2.MBR ( Master Boot Record 主引導記錄)
3.GRUB2 Bootloader(引導菜單)
4.Kernel(內核引導)
5.Systemd (不再使用init,改成了systemd)
6.Runlevel-Target (運行級別)
1.BIOS
基本輸入/輸出系統是一個固件接口,它不僅控制啟動過程,還提供對連接的外圍設備的低級接口的所有控制。打開系統電源后,它將讀取所有設備設置并執行開機自檢(開機自檢)過程,以識別硬件設備,以測試和初始化系統硬件組件。成功后處理后,它將加載MBR(主引導記錄)以進行下一個引導處理。
2.MBR引導
主引導記錄放在Linux引導硬盤的第一個扇區中,此信息通過BIOS預加載到ROM(只讀內存)中。
MBR的大小只有512個字節,它包含用于引導操作系統的機器代碼指令,稱為引導加載程序,以及分區表。一旦BIOS找到引導加載程序(GRUB2)并將其加載到(ROM)內存或硬盤驅動器中,它就會控制引導過程。只是MBR(主引導記錄)加載并執行GRUB2引導加載程序。
3.GRUB2(引導加載程序版本2)引導加載程序
言簡意賅:grub2菜單,如果裝了雙系統會讓你進行選擇,Linux?還是windows?還是MacOS?
GRUB2是所有最新版本(如Red Hat/CentOS 7)中的默認引導加載程序,也是9.10版中的Ubuntu。它已經被GRUBbootloader(也稱為GRUBLegacy)所取代。
grub2配置文件位于/boot/grub2/grub.cfg中,由grub2 mkconfig使用/etc/grub.d中的模板和/etc/default/grub中的設置自動生成。不建議編輯GRUB2配置文件。
引導加載程序(rhel 7的grub2)啟動rhel7內核和初始RAM磁盤(initrd)。GRUB 2安裝在服務器硬盤的引導扇區中,配置為加載Linux內核和initramfs,initrd是一個初始根文件系統,將在Linux系統上的實際根文件系統之前安裝。
4.kernel內核引導
Linux內核是操作系統的核心,它是系統上第一個加載的程序。當系統啟動時,內核從initrd.img加載所有必要的內核模塊和驅動器,以加載Linux7中的系統第一個進程systemd,在6里面,init是爸爸,在7里面換了個爸爸,那就是systemd
下面的命令將幫助您找到SystemD進程ID(PID)
[root@zls ~]# ps -ef | grep 折疊ystemd root 1 0 0 7月14 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 347 1 0 7月14 ? 00:00:00 /usr/lib/systemd/systemd-journald root 379 1 0 7月14 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 522 1 0 7月14 ? 00:00:00 /usr/lib/systemd/systemd-logind dbus 525 1 0 7月14 ? 00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activationsystemd管理進程
systemd使用“targets”而不是runlevels。默認情況下,有兩個主要級別:
1) multi-user(多用戶).target: analogous to runlevel 3
#查看運行級別 [root@zls ~]# systemctl get-default multi-user.target2) graphical(圖形化).target: analogous to runlevel 5
#設置默認運行級別 [root@zls ~]# systemctl set-default graphical.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target. #查看默認界面 [root@zls ~]# systemctl get-default graphical.target [root@zls ~]# vim /etc/inittab # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target # # systemd uses 'targets' instead of runlevels. By default, there are two main targets: # # multi-user.target: analogous to runlevel 3 # graphical.target: analogous to runlevel 5 # # To view current default target, run: # systemctl get-default # # To set a default target, run: # systemctl set-default TARGET.target #CentOS7中的運行級別:
runlevel0.target -> poweroff.target
runlevel1.target -> rescue.target
runlevel2.target -> multi-user.target
runlevel3.target -> multi-user.target
runlevel4.target -> multi-user.target
runlevel5.target -> graphical.target
runlevel6.target -> reboot.target
運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登陸
運行級別2:多用戶運行級別(沒有文件系統)
運行級別3:完全的多用戶狀態(有文件系統),登陸后進入控制臺命令行模式
運行級別4:多用戶運行級別
運行級別5:X11控制臺,登陸后進入圖形GUI模式
運行級別6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動
CentOS7如何進入單用戶模式
1.重啟Linux系統主機并出現引導界面時,按下鍵盤上的e鍵,進入內核編輯界面
2.在Linux16這行后面添加enforcing=0 init=/bin/bash,然后按下Ctrl+X組合鍵來運行修改過的內核程序
3.然后進入單用戶模式界面。
#重新掛載/目錄 bash-4.2# mount -o rw,remount / #非交互設置root密碼 bash-4.2# echo 1 |passwd --stdin root #重新引導系統 bash-4.2# exec /sbin/init不需要重新掛載的方式
如果centos7系統運行級別被設置成重啟的級別...

CentOS7通過光盤進入救援模式
1.掛載光盤鏡像
2.從BIOS啟動
3.進入BIOS設置從光盤啟動
4.按F10保存并退出
5.進入救援模式
6.選擇救援模式
7.選擇繼續
接下來就可以...做你想做的事
生產場景1:
當系統壞了,無法登陸系統,但是需要把里面的數據拷貝出來,怎么辦?
bash-4.2# mkfs.xfs -f /dev/sdc bash-4.2# mkdir /data bash-4.2# mount /dev/sdc /data bash-4.2# cp -a /raid0 /data bash-4.2# umount /dev/sdb生產場景2:
修復MBR,主要出現在安裝雙系統的時候,后安裝的系統把原來的MBR刪除了,需要修復
1.破壞硬盤的錢446字節,模擬MBR引導損壞,會發現重啟無法啟動系統
[root@zls ~]# dd < /dev/zero >/dev/sda bs=1 count=446 記錄了446+0 的讀入 記錄了446+0 的寫出 446字節(446 B)已復制,0.0011061 秒,403 kB/秒2.重啟,查看系統狀態
3.重啟進入救援模式
4.進入系統,獲取root權限
5.修復MBR引導,然后重啟連接服務器
#修復grub bash-4.2# grub2-install /dev/sda #退出 bash-4.2# exit #重啟進入系統 bash-4.2# reboot生產場景3:
CentOS7 誤刪除grub文件,進行修復
1.模擬故障
#刪除grub2 [root@zls ~]# rm -fr /boot/grub2/ #重啟 [root@zls ~]# reboot2.查看系統狀態
3.重啟進入救援模式
4.重新安MBR,加載grub2中的grub.cfg文件

bash-4.2# chroot /mnt/sysimage bash-4.2# grub2-install /dev/sda bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg5.查看加載出來的文件
bash-4.2# ls /boot/grub26.退出重啟
bash-4.2# exit sh-4.2# reboot滿血復活...
修改CentOS7網卡名稱為eth0和eth1
這個可以在安裝系統的時候,修改網卡名稱,如果已經安裝過的系統,那我們還是從BIOS界面到光盤啟動,進入系統安裝界面。
選擇 Install CentOS 7然后按下Tab鍵

biosdevname=0 net.ifnames=0如果不是dell物理機環境:
net.ifnames=0Systemd 進程管理
systemd的由來
Linux一直以來都采用init進程作為爸爸,但是init有兩個缺點:
1.啟動時間長,init進程是串行啟動,只有前一個進程啟動完,才會啟動下一個進程。
2.啟動腳本復雜,初始化完成后,系統會加載很多腳本,腳本都會處理各自的情況,這回讓腳本多而復雜。
CentOS5 是啟動速度最慢的,串行啟動過程,無論進程相互之間有無依賴關系。
CentOS6 相對啟動速度有所改進,有依賴的進程之間依次啟動而其他沒有依賴關系的則并行啟動。
CentOS7 所有進程無論有無依賴關系,都并行啟動,當然有很多時候進程并沒有真正的啟動而是只有一個信號或者說是標記,在真正利用的時候,才會真正啟動。
這就類似咱們使用的windows,最開始win95,win98,win7啟動速度極其的慢,從win8,開始win8.1,win10啟動速度,快的yp...噌一下子就起來了。
什么是systemd
systemd即為system daemon守護進程,systemd主要解決上文的問題而誕生,systemd的目標是,為系統的啟動和管理提供一套完整的解決方案。
systemd的優勢
1.最新系統都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)
2.CentOS7 支持開機并行啟動服務,顯著提高開機啟動效率
3.CentOS7關機只關閉正在運行的服務,而CentOS6,全部都關閉一次。
4.CentOS7服務的啟動與停止不在使用腳本進行管理,也就是/etc/init.d下不在有腳本。
5.CentOS7使用systemd解決原有模式缺陷,比如原有service不會關閉程序產生的子進程。
systemd相關的配置文件
/usr/lib/systemd/system #類似C6系統的啟動腳本目錄/etc/init.d/
/etc/systemd/system/ #類似C6系統的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
systemd相關的命令
由于之前長期使用RHEL/CentOS 6系統, 已經習慣使用service chkconfig等命令來管理系統服務,但在RHEL/CentOS 7系統中是使用systemctl命令來管理服務的。
如下是RHEL/CentOS 6系統中System V init命令與RHEL/CentOS 7系統中systemctl命令的對比,后續課程中會經常用到它們。
systemctl管理服務的啟動、重啟、停止、重載、查看狀態等常用命令
System V init(6系統)systemctl命令(7系統)作用service crond startsystemctl start crond.service啟動服務service crond stopsystemctl stop crond.service停止服務service crond restartsystemctl restart crond.service重啟服務service crond reloadsystemctl reload crond.service重新加載配置(不終止服務)service crond statussystemctl status crond.servre查看服務運行狀態systemctl is-active sshd.service查看服務是否在運行中systemctl mask crond.servre禁止服務運行systemctl unmask crond.servre取消禁止服務運行
systemctl設置服務開機啟動、不啟動、查看各級別下服務啟動狀態等常用命令
System V init(6系統)systemctl命令(7系統)作用chkconfig crond onsystemctl enable crond.service開機自動啟動chkconfig crond offsystemctl disable crond.service開機不自動啟動chkconfig --listsystemctl list-unit-files查看各個級別下服務的啟動與禁用chkconfig --list crondsystemctl is-enabled crond.service查看特定服務是否為開機自啟動chkconfig--add crondsystemctl daemon-reload創建新服務文件或者變更設置
systemctl服務狀態說明
服務狀態狀態說明loaded服務單元的配置文件已經被處理active(running)服務的一個或多個進程在運行中active(exited)一次性運行的服務成功被執行并退出(服務運行后完成任務,相關進程會自動退出)active(waiting)服務已經運行但在等待某個事件inactive服務沒有在運行enable服務設定為開機運行disabled服務設定為開機不運行static服務不能被設定開機啟動,但可以由其他服務啟動該服務
總結
以上是生活随笔為你收集整理的centos7 开机后进去了命令行_Linux系统管理:开机启动流程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SKLEARN模型选择
- 下一篇: linux 查看磁盘分区,文件系统,使用