主机系统开机流程

开机流程  模块管理  Loader

 

 boot loader 主要功能

开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

 

 

开机流程  模块管理  Loader

 

 

 开机流程  模块管理  Loader开机流程  模块管理  Loader

显示核心模块加载信息

开机流程  模块管理  Loader

 

 

 

查询模块信息

开机流程  模块管理  Loader

 

 

 核心模块的加载与移除

开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

 

开机流程  模块管理  Loader

 

 boot loader 的两个 stage

开机流程  模块管理  Loader

 

 

 

 

开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

 

 

grup2配置文件  /boot/grub2/grub.cfg

 

开机流程  模块管理  Loader

 

 

grub2识别磁盘

开机流程  模块管理  Loader

 

 

 开机流程  模块管理  Loader

 

开机流程  模块管理  Loader

 

 

 grub2 配置文件  /etc/default/grub 和 /etc/grub.d

开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

开机流程  模块管理  Loader

 

 

 

[root@localhost grub.d]# cat /boot/grub2/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
set tuned_initrd=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
  # END /etc/grub.d/01_users ###
▽
### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-ccdda529-f59c-4990-9165-b6d1cd522034' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod xfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  ba80a371-e434-431e-9508-df4b2827efad
        else
          search --no-floppy --fs-uuid --set=root ba80a371-e434-431e-9508-df4b2827efad
        fi
        linux16 /vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.UTF-8
        initrd16 /initramfs-3.10.0-957.el7.x86_64.img
}
menuentry 'CentOS Linux (0-rescue-f7819fbfbe0b4074b5dfebfab540afcb) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-f7819fbfbe0b4074b5dfebfab540afcb-advanced-ccdda529-f59c-4990-9165-b6d1cd522034' {
        load_video
        insmod gzio
        insmod part_msdos
        insmod xfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  ba80a371-e434-431e-9508-df4b2827efad
        else
          search --no-floppy --fs-uuid --set=root ba80a371-e434-431e-9508-df4b2827efad
        fi
        linux16 /vmlinuz-0-rescue-f7819fbfbe0b4074b5dfebfab540afcb root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
        initrd16 /initramfs-0-rescue-f7819fbfbe0b4074b5dfebfab540afcb.img
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
[root@localhost grub.d]# vim /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'My graphical Centos' --class centos --class gnu-linux --class gnu --class os --unrestricted --id 'mygraphical' $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-ccdda529-f59c-4990-9165-b6d1cd522034' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod xfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  ba80a371-e434-431e-9508-df4b2827efad
        else
          search --no-floppy --fs-uuid --set=root ba80a371-e434-431e-9508-df4b2827efad
        fi
        linux16 /vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.UTF-8 systemd.unit=graphical.target
        initrd16 /initramfs-3.10.0-957.el7.x86_64.img
}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
~                                                                                                                                                                                                                                           
"40_custom" 20L, 1185C 已写入                                                                                                                                                                                             
[root@localhost grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f7819fbfbe0b4074b5dfebfab540afcb
Found initrd image: /boot/initramfs-0-rescue-f7819fbfbe0b4074b5dfebfab540afcb.img
done
[root@localhost grub.d]# reboot

开机流程  模块管理  Loader

选择之后就会直接进入我们的图形界面

 

 设置默认开机画面为字符

[root@localhost /]# sudo systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

 以前我们设置的默认开机方式是图形界面,经过上面设置之后,默认设置就变成了命令行模式。

但是当我们选择第三项,我们自己的设置的时候,他还是会进入图形界面。有点意思。

 

透过chainloader 的方式移交lader 控制权

开机流程  模块管理  Loader

 

 

 

开机流程  模块管理  Loader

 

 开机流程  模块管理  Loader

 

 

上面主要介绍的做双系统的相关知识(我觉得),还是需要实践,看是看不会的。。。。下面有时间会找台机器做测试。来做双系统试一下

 开机流程  模块管理  Loader

 

相关文章:

  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2021-12-07
  • 2021-09-22
  • 2021-09-14
  • 2021-08-11
  • 2022-12-23
猜你喜欢
  • 2021-06-16
  • 2022-01-02
  • 2022-01-19
  • 2021-05-29
  • 2021-06-07
  • 2021-06-26
  • 2021-09-26
相关资源
相似解决方案