一、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