# 官方提供@yunTaoScripts 系统启动 🔥🔥

loading

# 系统启动流程

  1. BIOS 加电自检,内存,硬盘,风扇,🈶️问题滴滴报警。
  2. 激活MBR,或者将引导权交给MBR。(硬盘第一个扇区叫MBR)

MBR组成()

  • 446字节 bootloader
    • 引导加载器,是grub的一段代码。用于加载第二个扇区。然后加载第三个到第n个扇区,包含一个 阉割的文件系统
  • 64字节 分区表
  • 2字节 结束符
  1. 通过该文件系统加载内核。

# 修改系统启动参数

内核文件

  • /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 不同模式

  1. 救援模式rescue
  • 假设系统正常启动需要20个必须服务,如果某个必须服务出问题了就会导致系统没法启动,假设救援模式 只有10个必须服务,我们进入到救援模式的时候,出问题的服务不在救援模式的必须服务之内,此时系统 可以启动起来。
  • 是需要root密码
  • 类似于windows下的“安全模式”
  • 步骤
    1. 选择内核后,通过增加 s或者single 参数。
    2. ctrl + x
  1. emergency
  • 假设系统正常启动需要20个必须服务,如果某个必须服务出问题了就会导致系统没法启动,假设emergency 模式只有6个必须服务,我们进入到emergency模式的时候,出问题的服务不在emergency模式的必须服务 之内,此时系统可以启动起来。
  • 是需要root密码
  • 类似于windows下的“安全模式”
  • 步骤
    1. 选择内核后,通过增加 emergency 参数。
    2. ctrl + x

# 重制root密码

  • 步骤
    1. 选择内核后,通过增加 rd.break 参数。
    2. ctrl + x
    3. mount | grep sysroot
    4. mount -o remount,rw /sysroot
    5. chroot /sysroot
    6. echo 123| passwd --stdin root
    7. 重置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)
最后修改时间: 12/31/2022, 12:00:03 PM