首頁 > 軟體

Linux基礎教學學習筆記26——系統啟動過程與故障排除

2020-06-16 18:03:02

Linux基礎教學學習筆記26——系統啟動過程與故障排除

一、Linux啟動過程

MBR儲存著系統的主載入程式(grub 446位元組,分割區表64位元組),啟動過程就是把核心載入到記憶體。

啟動的順序:

1、BIOS;

2、BIOS啟用MBR;

3、MBR中的載入程式(grub)載入到記憶體,生成一個微系統(如xfs);

4、grub 讀取分割區表,找到引導分割區;

5、grub讀取自身的組態檔,找到核心檔案

6、載入核心檔案;

修改系統啟動引數的時候,不要直接修改boot/grub2/grub.cfg,因為如果後期更新核心的時候,那麼gub.cfg也會自動更新,先前所做的設定會全部失效,如果要修改,建議修改/etc/default/grub,然後使用grub2-mkconfig命令生效。這個檔案是由/etc/grub.d/00_header檔案呼叫的

/boot/grub2/grub.cfg會讀取/etc/default/grub和/etc/grub.d/ 下面的組態檔

使用grub2-set-default 命令可以設定系統啟動預設的系統

在/etc/default/grub檔案裡面的cmdline行新增引數,可以修改核心啟動引數

二、開機時進入Grub編輯模式

給grub進行加密,不允許其他人在開機時編輯:

修改/etc/grub.d/00_header檔案,在該檔案最後新增以下命令:

如果要使用加密密碼,使用grub2-mkpasswd命令生成加密密碼:

然後將加密的密碼新增到00_header檔案:

三、系統啟動啟動不了的情況下幾種修復方式

可以進入以下模式:

1、救援模式---和RHEL6有不同的意思

指的是系統只啟動必需的服務,只需8個服務,此時系統可正常啟動,進入該模式需要root密碼;

進入救援模式,需要編輯grub,系統啟動時按e鍵進入編輯模式,找到以下位置,並在最後面的地方加入single或者s

    2、emergency模式

該模式只需要更少的服務就可以啟動,比救援模式更少,進入該模式也需要root密碼

系統啟動時進入編輯模式,在以下行的後面加emergency

3、root密碼忘記了怎麼辦

編輯系統的啟動檔案,加入init=/bin/sh,並且把rhgb 和quit刪掉

        啟動進入系統,以讀寫方式重新掛載跟分割區/

使用passwd命令重新修改密碼

        在根分割區下面建立一個隱藏檔案.autorelabel

執行exec /sbin/init

4、troubleshooting模式

進入troubleshooting模式

chroot /mnt/sysimage

重新安裝grub

grub2-install /dev/sda

如果/boot目錄下面的檔案被刪除或者出現問題,需要重新安裝boot檔案:

(1)進入troubleshooting模式,重新安裝核心檔案:

chroot /mnt/sysimage

mount /dev/cd/rom

rpm -ivh /mnt/Packages/kernel-3.10-xxxxx

(2)在boot目錄下面建立grub2目錄,進入grub2目錄,使用命令grub2-mkconfig -o grub.cfg重新生成grub.cfg檔案;

(3)使用命令grub2-install重新安裝grub2下面的其他檔案

如果掛載檔案的時候,使用的是分割區的UUID,並且在/etc/fstab寫入掛載資訊,後面又將分割區的UUID修改了,但是fstab檔案裡面的UID沒有修改過來,可以進入troubleshooting模式,修改fstab檔案

在/etc/rc.local檔案是系統啟動時執行的命令

當/etc/passwd和/etc/shadow檔案丟失的時候,無法進入系統,螢幕黑畫面,沒有任何顯示,這時候需要進入troubleshooting模式,chroot /mnt/sysimage,將系統備份的passwd-和shadow-複製還原:

cp  -a /etc/passwd-  /etc/passwd

cp -a /etc/shadow-  /etc/shadow

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-03/115600.htm


IT145.com E-mail:sddin#qq.com