# 官方提供@yunTaoScripts 系统启动 🔥🔥
# 系统启动流程
- BIOS 加电自检,内存,硬盘,风扇,🈶️问题滴滴报警。
- 激活MBR,或者将引导权交给MBR。(硬盘第一个扇区叫MBR)
MBR组成()
- 446字节 bootloader
- 引导加载器,是grub的一段代码。用于加载第二个扇区。然后加载第三个到第n个扇区,包含一个 阉割的文件系统。
- 64字节 分区表
- 2字节 结束符
- 通过该文件系统加载内核。
# 修改系统启动参数
内核文件
/boot/grub2/grub.cfg
是最终生效文件,但是不要修改- 用户修改
/etc/default/grub
文件,实现修改初始化内核。 - 通过
grub2-mkconfig
命令调用/etc/grub.d/
目录下的文件,从而生成/etc/grub2/grub.cfg
。
通过上下,选择内核0,1,2
修改启动时间50,从内核1启动
cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=319d582f-40e6-4ef4-a535-a7419066800a rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
- 修改为
GRUB_TIMEOUT=50 ###超时时间
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=1 ####1号内核启动
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=319d582f-40e6-4ef4-a535-a7419066800a rhgb quiet yuntao=250" ##增加字段
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
- 生效内核配置重启。发现超时时间变为50,从1号内核启动,cmdline增加了自定义参数。
grub2-mkconfig -o /boot/grub2/grub.cfg
cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-305.el8.x86_64 root=UUID=52184c8a-b72f-41dc-81e7-ae5b9835a079 ro crashkernel=auto resume=UUID=319d582f-40e6-4ef4-a535-a7419066800a rhgb quiet yuntao=250
临时编辑启动参数
另外也可以在启动界面,选择内核时通过 e
来临时编辑启动参数。
# grub 不同模式
- 救援模式rescue
- 假设系统正常启动需要20个必须服务,如果某个必须服务出问题了就会导致系统没法启动,假设救援模式 只有10个必须服务,我们进入到救援模式的时候,出问题的服务不在救援模式的必须服务之内,此时系统 可以启动起来。
- 是需要root密码
- 类似于windows下的“安全模式”
- 步骤
- 选择内核后,通过增加
s
或者single
参数。 - ctrl + x
- 选择内核后,通过增加
- emergency
- 假设系统正常启动需要20个必须服务,如果某个必须服务出问题了就会导致系统没法启动,假设emergency 模式只有6个必须服务,我们进入到emergency模式的时候,出问题的服务不在emergency模式的必须服务 之内,此时系统可以启动起来。
- 是需要root密码
- 类似于windows下的“安全模式”
- 步骤
- 选择内核后,通过增加
emergency
参数。 - ctrl + x
- 选择内核后,通过增加
# 重制root密码
- 步骤
- 选择内核后,通过增加
rd.break
参数。 - ctrl + x
mount | grep sysroot
mount -o remount,rw /sysroot
chroot /sysroot
echo 123| passwd --stdin root
- 重置selinux标签
touch /.autorelabel
- 选择内核后,通过增加
# 系统故障修复
# 模拟去除bootloader
- 覆盖bootloader,重启
dd if=/dev/zero of=/dev/sda bs=1 count=446
trouble shooting
rescue rhel system
1
chroot /mnt/sysroot
grub2-install /dev/sda(重新安装bootloader)
crtl d
reboot
# 模拟去除内核
rm -rf /boot/*
esc
cdrom drive
rescue
1
chroot /mnt/sysroot
ls boot
mount /dev/cdrom /mnt
ls /mnt/BaseOS/Packages/kernel*
rpm -ivh 2个包 --force
ls /boot
mkdir /boot/grub2
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda(重新安装bootloader)
← 快速链接