26 linux啟動流程

2021-09-20 18:49:31 字數 4356 閱讀 3780

linux系統:

​ kernel+rootfs(程式和glibc)

​ 支援模組化 ko 核心物件

​ cpio -tv 預覽io檔案

mkinitrd /boot/initramfs-`

uname -r`

.img `uname -r

1.加點自檢

2.讀取第乙個啟動裝置的mbr的引導載入grub的啟動資訊

3.載入核心作業系統的核心資訊,解壓縮,嘗試驅動硬體

4.核心執行init程式並獲取預設的執行資訊

5.init程式執行/etc/rc.d/rc.sysinit檔案

6.啟動核心的外掛程式模組

7.init執行的各個批處理檔案

8.init執行/etc/rc.d/rc.local

9.執行/bin/login,等待使用者登入

10.登入後開始以shell控制主機

提供選擇選單載入使用者指定核心,把核心專家記憶體 解壓展開,並把系統控制權交給核心

​ 探測可識別到的所有硬體裝置

​ 載入硬體驅動程式

​ ramdisk識別根檔案系統

​ 以唯讀方式掛載根檔案系統

​ 執行使用者空間的第乙個應用程式 /sbin/init

initramfs-3.10.0-862.el7.x86_64.img 檔案丟失

- ​ 1.光碟引導

- ​ 2.救援模式

- ​ 3.chroot /mnt/sysimage #切換根檔案系統

- ​ 4.cd /mnt/sysimg/boot

- - 5 生成initramfs

mkinitrd /boot/initramfs-`uname -r`.img `uname -r

exit

exit

sync

reboot

​	1.光碟引導	

​ 2.救援模式

​ 3.cp run/media/repo/vmlinuz-3.10.0-862.el7.x86_64 /mnt/sysimage/vmlinuz-``uanme -r

​ 系統初始化流程

post(開機自檢)---bios--bootloader(mbr)--kernel(ramdisk)----rootfs[掛載根檔案系統(唯讀)]---init(systemd)
​ 執行級別:

​ 為了系統的執行或維護等目的而設定的機制, 0-6:7個級別

​ 0 關機 shutdown

​ 1 單使用者模式–無須認證,維護模式 root使用者

​ 2 多使用者模式 帶網路功能但不會啟動nfs

​ 3 多使用者模式 正常完全模式–只會啟動shell不啟動桌面

​ 4 預留模式

​ 5 多使用者模式 完全功能模式,會啟**形介面

​ 6 重啟模式

1.設定主機名

2.設定歡迎資訊

3.啟用udev和selinux

4.掛載/etc/fstab檔案定義的檔案系統

5.檢查根檔案系統,並以讀寫方式重新掛載

6.設定系統時鐘

7.啟用swap

8.根據/etc/sysctl.comf檔案設定核心引數

9.啟用lvm和raid

10.載入額外的裝置驅動

11.清理

​ 意味著去啟動或關閉/etc/rc.d/rc3.d/目錄下的服務指令碼

​ k*:要停止的服務 k##* 優先順序 數字越大 被依賴的服務先關閉

​ s*:要啟動的服務 s##* 優先順序 數字越小 被依賴的服務先啟動

​ rc指令碼:接受乙個執行級別的引數

[root@localhost ~]# ls /etc/rc.d/

init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local

指令碼框架

for srv in /etc/rc.d/rc#.d/k*;do

​ $srv stop

​ done

​ for srv in /etc/rc.d/rc#.d/s*;do

​ $srv start

​ done

配置檔案 /etc/inittab

/etc/rc.d/rc.sysinit 初始化

​ /etc/init.d/* (/etc/rc.d/init.d/*)指令碼執行方式

​ chkconfig命令

​ 管控/etc/init.d/下的所有服務指令碼在各級別下的啟動或關閉狀態

​ chkconfig --list

​ chkconfig --add 新增

​ chkconfig --del 刪除

​ chkconfig --level name 預設級別 2345

​ 如果需要開機自動執行的指令碼檔案可直接放置到此檔案中

post----boot(bios)---bootloader(mbr)--kernel(ramdisk)--rootfs--swtichroot--/sbin/init---/etc/inittab(/etc/init/*.config)---設定系統預設級別--系統初始化指令碼rc.sysinit---關閉或啟動對應級別的服務-----啟動終端(shell或圖形終端)
​ init程式:systemd,配置檔案 /usr/lib/systemd/system/,/etc/systemd/system/

​ 完全相容 sysv指令碼 因此service命令依然可用,建議使用systemctl

​ 配置檔案:/boot/grub/grub.conf <—/etc/grub.conf

​ stage2及核心等通常放置於乙個基本磁碟分割槽

#dd if=/dev/zero of=/dev/sda bs=1 count=446 破壞
hexdump -c /dev/sda -n512 -v
互動式修復,依賴/etc/grub 裡面的檔案

grub

root (hd0,0)

setup(hd0)

grub> kernel /vmlinuz-3.10.0-862.el7.x86_64

grub> initrd /initramfs-3.10.0-862.el7.x86_64.img

​ 如何識別磁碟檔案

​ hd#,#

​ hd# 磁碟編號

​ # 磁碟分割槽編號

​ help 獲取幫助命令

​ find

​ root (hd#,#)設定根裝置

​ kernel 設定本次啟動時用到的核心檔案

​ initrd 設定為選定的核心提供額外檔案的ramdisk

​ boot 引導啟動選定的核心

如果/boot/下檔案全部沒有,可以在救援模式下安裝kernel

​ rpm -ivh /mnt/cdrom/packages/kernel-x --root=/mnt/sysimage --force

​ grub2-install /dev/sda

配置項​ default 預設項啟動

​ timeout 超時時間

​ splashimage

​ hiddenmenu 隱藏選單

​ password 選單編輯認證

​ title 定義選單標題

​ root (hd#,#) grub查詢stage2級kernel檔案所在的裝置分割槽,為grub的根

​ kernel /vmlinux-x.x. 啟動的核心

​ initrd /initramfs-x.x 核心匹配的ramfs

​ 1.編輯grub選單(選定,然後使用e編輯)

​ 2.在選定的kernel後面附加 1,s,s或single都可以

​ 3.在kernel所在行,輸入b命令

fstab 修復 (df -th)

1.掛載 / 到/dev/sda2

2.swap

3.重新啟用救援模式

centos 流程

post---->bios---->bootloader-mbr(grub)---->kernel(ramdisk)---->rootfs(switch root)---->/sbin/init(/etc/inittab)---->預設執行級別---->系統初始化(rc.sysinit)---->關閉啟動服務---->啟動終端(影象介面)

2 6linux核心的啟動

計算機在啟動時都是先加電,然後進行硬體檢測並引導作業系統的初始化程式,然後作業系統的初始化程式程負責讀入系統核心並建產系統的執行環境.一這過程相對來說比較復而且與cpu體系結構相關,這裡我們通過linux並以i386的體系結構對這一過程進行較為詳細的說明.一 硬體檢測 當機器加電後它首先執行bios...

linux2 6核心啟動流程

計算機在啟動時都是先加電,然後進行硬體檢測並引導作業系統的初始化程式,然後作業系統的初始化程式程負責讀入系統核心並建產系統的執行環境.一這過程相對來說比較復而且與cpu體系結構相關,這裡我們通過linux並以i386的體系結構對這一過程進行較為詳細的說明.一 硬體檢測 當 機器加電後它首先執行bio...

天天學Linux命令26 linux檔案屬性詳解

linux 檔案或目錄的屬性主要包括 檔案或目錄的節點 種類 許可權模式 鏈結數量 所歸屬的使用者和使用者組 最近訪問或修改的時間等內容 具體情況如下 命令 ls lih 輸出 root localhost test ls lih 總計 316k 2095120 lrwxrwxrwx 1 root ...