Linux的启动过程加深理解

深入了解Linux启动过程,加深对上篇系统排错文章的理解

启动管理
  • Linux 系统的启动过程

RHEL 7采用了systemd,启动过程被大大缩短,具体步骤如下

 # 1. 开机自检
 # 2. 从硬盘的MBR读取引导程序GRUB
 # 3. 引导程序根据配置文件显示引导菜单
 # 4. 若进入Linux系统,此时引导程序加载Linux内核文件
 # 5. 内核全部加载入内存后,GRUB任务完成,此时控制权交给Linux,CPU开始执行Linux内核代码,
       如初始化任务调度、分配内存、加载驱动等。此步骤建立一个内核运行环境
 # 6. 内核代码执行完,开始执行Linux系统第一个进程--systemd,进程号为1
 # 7. systemd进程启动后读取/etc/systemd/system/default.target,该文件作用是设置系统运行级别,
       根据此文件设置系统的运行级别并启动相应服务
 # 8. 服务启动完成后,引导login弹出登录界面
  • Linux 运行级别
    Linux系统不同的运行级别启动不同的服务,Linux系统共有7个运行级别,由数字 0~6 表示
    在这里插入图片描述

     RedHat 7由于系统架构的变动,查看运行级别已经不能用”runlevel“了,显示结果为”unknown“
     systemctl get-default                                              # 查看运行级别
     systemctl set-default runlevel3.target/multi-user.target           # 设置默认运行级别为3/多用户
     systemctl iso-late runlevel3.target/multi-user.target              # 切换运行级别为3/多用户
     systemctl set-default runlevel5.target/graphical.target            # 设置默认运行级别为5/图形化
     systemctl iso-late runlevel5.target/graphical.target               # 切换运行级别为5/图形化
    
系统引导器 GRUB

GRUB全称GNU GRUB,是一个来自GNU计划的多操作系统引导器,可让用户在安装的多个不同操作系统之间选择启动的操作系统,同时还可以向操作系统内核传递参数,RHEL7默认使用GRUB作为系统引导器

  • GRUB 2 简介
    默认情况下,RHEL 7 使用 GRUB 2 作为引导器,GRUB 2 引导系统使用的分区位于/boot中,称为引导分区
    /boot中保存有linux内核、内存映像文件,GRUB2安装在/boot/grub2目录中,/boot/grub2/grub.cfg是配置文件
    在这里插入图片描述
    在这里插入图片描述

  • GRUB 启动菜单界面
    Linux系统每次启动会显示启动菜单界面,以便用户选择启动的操作系统
    在这里插入图片描述
    该菜单界面中,上下方向键选择需要启动的选项,按 e 键编辑启动选项,编辑启动选项通常是为了向内核传参,如进入紧急模式时,需要向内核传递参数 rd.break,内核接收到该参数会自动进入紧急模式;按 c 键进入 GRUB 命令行界面

  • GRUB 2 的命令行界面
    在这里插入图片描述
    以 “grub>” 为提示符,按 Enter键可执行命令

  • GRUB 2 的一些常用命令

    ls                            列出设备或文件列表
    set                           设置环境变量
    linux                         引导操作系统内核
    initrd                        载入内存映像盘
    reboot                        重启计算机
    boot                          按设置引导操作系统
    
  • GRUB 2 手动引导Linux
    在这里插入图片描述

    # 先利用ls命令查看有哪些分区,再使用ls查看分区内容,确定了系统引导分区是hd0,msdos1
    # 使用set命令将引导分区设置为根目录,为了能建立Linux内核运行环境
    # 为引导器指定Linux内核和内存映像文件(文件名已在之前ls中列出)
    # 当前根目录被设置为hd0,msdos1,此处/boot分区是独立的,所以‘/’后面直接加文件名
    # 使用root参数指定真正的根目录,以便内核能读取到根目录中的配置文件
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值