-
CentOS6.9啓動流程
- POST 加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串並行接口、鍵盤、CD-ROM光驅等硬件情況的檢測。
- Boot Sequence(BIOS) 加載BIOS的硬件信息,獲取第一個啓動設備
- Boot Loader MBR ,引導加載器,引導程序
- Kernel(ramdisk) 加載核心操作系統的核心,加載硬件驅動
- rootfs 只讀
- switchroot 主根(init | systemd)
- /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 設定默認運行級別
- 系統初始化腳本 rc.sysinit,完成系統初始化 --> 關閉或啓動對應級別的服務
- 啓動終端
-
/boot/中ramdisk文件恢復
-
rm -rf initramfs-2.6.32-696.el6.x86_64.img
#意外刪除ramdisk文件機器未重啓時,恢復ramdisk文件方法:mkinitrd /boot/initramfs- $(uname -r).img $(uname -r)
爲當前正在使用的內核重新制作ramdisk文件,基於內核的,所以參數要給定當前內核版本號。容納後語句會自動生成文件 [initramfs-2.6.32-696.el6.x86_64.img]dracut /boot/initramfs-$(uname -r).img $(uname -r)
效果同 mkinitrd 一樣
- #意外丟失ramdisk文件後,重啓機器,恢復方法:
- 使用光盤引導,進入救援模式。
最後使用 shell start shell 進入光盤系統。- df 查看 系統根目錄爲:/dev/sda2 /mnt/sysimage
- chroot /mnt/sysimage/ 將根從光盤系統的根切換到主機系統的根,從而去修復主機系統。
使用沒重啓前的恢復方法。
-->#--> mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
-->#--> dracut /boot/initramfs-$(uname -r).img $(uname -r)
完成後重新啓動即可【SElinux啓用狀態時,開機時,給主機全部文件打上標籤,最好重啓前關閉SElinux】
- 使用光盤引導,進入救援模式。
-
-
核心文件/boot/vmlinuz- VERSION -release,意外丟失後恢復方法。
重啓後的狀態:- 修復方法:
- 進入救援模式,如果不需要網絡功能可以先不配,一直跳過即可
- 創建一個空文件 /mnt/cdrom,並且將光盤/dev/sr0掛載到空文件上
- 使用
rpm -ivh /mnt/cdrom/Packages/kernel-VERSION.rpm --force【強制重新安裝】--root=/mnt/sysimage【指明主機根目錄】
- 安裝完成後,等待內存寫入磁盤,sync 同步數據,重啓即可。
- 修復方法:
-
在啓動第一階段錯誤,MBR引導的第一個扇區中446字節,丟失或損壞時。
重啓後狀態直接進入光盤引導頁面,因爲主機硬盤沒有MBR啓動引導,機器BIOS會自動尋找有啓動引導的東西來啓動。-
修復方法1:
- 進入bash shell後,切到主機的根`chroot /mnt/sysimage/`
- 運行 grub-install /dev/sda 命令【給主機硬盤修復grub所有啓動操作】
- 進入bash shell後,切到主機的根`chroot /mnt/sysimage/`
- 修復方法2:
- 使用交互式命令 grub
- 交互輸入 root(hd#,#)【描述boot所在的硬盤編號,和硬盤裏第幾個扇區】
- setup(hd#) 安裝即可
【grub 交互式命令來修復,依賴/boot/grub/stage1文件】
-
-
破環grub啓動中 1.5階段 mbr之後的27個扇區,讓1階段中bootloader能識別2階段所在的分區上的文件系統
重啓後提示【沒有了文件系統驅動,無法識別2階段,所以涼了】- 修復方法:
- 進入光盤引導,救援模式
- 切到主機的根 chroot /mnt/sysimage/
- 使用grub-install /dev/sda 命令修復即可
- 命令執行完後,建議sync同步數據,將數據從內存寫入硬盤後,重啓即可
【grub-install命令可以一鍵修復1階段,1.5階段,2階段,非常強大。但是grub.conf文件無法修復,只能手寫grub.conf配置文件】
- 修復方法:
-
啓動第二階段,grub.conf文件丟失或這損壞,第二階段就無法啓動。
- grub.conf文件的格式
#boot=/dev/sda default=0 #默認啓動那一個系統 timeout=5 #倒計時5秒後,使用默認系統啓動 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-696.el6.x86_64) #開啓內核列表 root (hd0,0) #系統默認的根,就是/boot 目錄,定義根的位置 在哪個磁盤,哪個扇區 kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=93131fa4-d1bc-4442-b42f-215a7bb7a273 【rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet】【這些內容不寫,也可以正常啓動,只是一些屬性配置設置】 initrd /initramfs-2.6.32-696.el6.x86_64.img
-
修復方法:
- 進入光盤掛載救援模式
- 切根 chroot /mnt/sysimage
- 進入/boot/grub裏創建 grub.conf文件
default=0 timeout=5 title centos6 kernel /vmlinuz-VERSION.img ro【只讀的意思,爲了安全要加,加不加都可以】root=UUID=..【主機根目錄】.... initrd /initramfs-VERSION.img
- 進入光盤掛載救援模式
- grub.conf文件的格式
-
當/boot 整個文件夾被清空,恢復系統操作
重啓後錯誤提示:- 修復方法:
- 光盤引導,進入救援模式
- 切根chroot /mnt/sysimage 切入主機根
- 主機上掛載光盤 mount /dev/cdrom /mnt
- 重新強制安裝內核 rpm -ivh /mnt/Packages/kernel-VERSION.rpm --force 【sync命令,同步數據】
- grub-install /dev/sda 修復 第1 第1.5 第2 階段
- /boot/grub/目錄下缺少 grub.conf文件,手動寫入
- UUID地址可以用 vim指令讀入 blkid /dev/sda2命令顯示內容,或者直接寫root=/dev/sda2 也可以
- 第二種情況,/boot/下所有文件丟失、/etc/fstab文件也丟失,根都掛載不上去,首先需要修復 fstab 文件
- blkid 命令 和 fdisk -l 命令 ,查看磁盤分區和UUID ,嘗試找到 根 分區和 boot/ 分區,手動寫 fstab 文件 。【看分區大小,或者 將分區掛載到文件目錄,查看分區中的內容,判斷分區是否爲根】
- 簡單寫一下 fstab文件
- 重啓啓動,進入救援模式,可以掛載上根了。
- 後續恢復方法,同/boot 被清空的 修復方式一樣即可。
- 修復方法:
- 系統主進程丟失 ,/sbin/init 丟失,錯誤提示:
- 恢復方法:
- 在開機,進入系統內核選擇菜單,按 e 鍵 ,在選中內核 按e鍵, 在最後,添加 init=/bin/bash ,用 bash替代init,然後保存 繼續啓動。
- 這時候,進入的是根的 只讀掛載模式 使用 mount -o remount,rw / 重新掛載根,讀寫權限。
- 將光盤掛載,然後使用 rpm -ivh /mnt/Packages/upstart-xxxxxxx.rpm --force 強制安裝 init 進程程序的包。即可[可tab 補全]
- 恢復方法:
Linux-CentOS6.9啓動流程排錯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.