解析Linux系统启动的引导流程

当计算机启动时,BIOS将从存储设备的启动扇区(例如硬盘、U盘、光盘等)读取引导程序,并执行它。在Linux上,GRUB (Grand Unified Bootloader)通常是作为引导程序来进行执行。以下是解析Linux系统启动的引导流程的完整攻略。

BIOS引导

BIOS (Basic Input/Output System) 是个存储在主板固件存储芯片中的程序,当计算机启动时,BIOS 将检查所有硬件设备,然后从存储设备读取启动扇区的第一个512字节,这个扇区叫做主引导记录 (MBR,Master Boot Record)。

MBR引导

MBR 是引导程序的一部分,存储在硬盘的第一个扇区,占用512个字节。MBR由三个部分组成,分别是bootloader代码、分区表以及bootloader的签名。内核入口地址与GRUB grub.conf的位置就存储在MBR中的bootloader代码段中。

BootLoader引导

Bootloader是位于MBR之后的引导器,它的作用是加载操作系统核心,最常用的引导器是GRUB。GRUB可以通过在命令行中输入“grub>”和按TAB键获取可用命令。

GRUB启动过程

GRUB的启动过程包括如下3个步骤:

  • 在MBR中寻找grub的二进制代码;
  • 加载grub的配置文件;
  • 根据配置文件加载操作系统内核。

下面是GRUB的启动示例代码:

default 0
timeout 5

title Linux
root (hd0,0)
kernel /vmlinuz root=/dev/hda1 ro
initrd /initrd
  • default 0表示默认的启动项是第一个;
  • timeout 5表示启动时等待5秒,等待用户选择其他引导项;
  • title Linux是GRUB的菜单上显示的选项名;
  • root (hd0,0)告诉GRUB内核所在的设备和分区;
  • kernel /vmlinuz root=/dev/hda1 ro告诉GRUB内核位置以及操作系统所在的分区;
  • initrd /initrd则是指定可用的RAM磁盘。

内核引导

当GRUB加载内核后,内核被解压缩并加载到内存中,然后根据内核参数启动,内核包含设备驱动程序以及需要加载的其它程序。

示例1:Ubuntu 20.04 LTS的引导过程

Ubuntu 20.04 LTS的引导过程中使用的是GRUB2引导器。在BIOS引导过程中,寻找并加载MBR,然后MBR中的GRUB2将会被加载。GRUB2寻找并加载配置文件 grub.cfg,grub.cfg 中就包含了内核引导的设置,例如内核位置、内核参数等。在加载内核后,initramfs将被加载,initramfs包含了可供内核使用的必要驱动程序、文件系统以及各种工具。当initramfs被加载后,内核将根据内核参数启动。

示例2:CentOS 7的引导过程

CentOS 7的引导过程中使用的是GRUB Legacy。当BIOS引导时,寻找并加载MBR,然后MBR中的GRUB Legacy将会被加载。GRUB Legacy寻找并加载配置文件 menu.lst,menu.lst中就包含了内核引导的设置,例如内核位置、内核参数等。在加载内核后,initrd将被加载,initrd包含了可供内核使用的必要驱动程序、文件系统以及各种工具。当initrd被加载后,内核将根据内核参数启动。

以上是解析Linux系统启动的引导流程的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解析Linux系统启动的引导流程 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 中国大陆开源镜像站汇总

    首先,在介绍开源镜像站汇总前,需要明确什么是开源镜像站。开源镜像站是指为开源软件提供稳定、高速下载服务的站点,主要用于下载开源软件和资料。在中国大陆,有很多开源镜像站,本文将对其中一些常用的开源镜像站进行汇总介绍。 开源镜像站汇总 下面列出了一些中国大陆的优秀开源镜像站: 阿里云开源镜像站 阿里云开源镜像站是一个提供开源软件下载的站点,目前拥有众多开源镜像仓…

    操作系统 2023年5月15日
    00
  • Linux rpm包中的64位、32位、i386、i586、Noarch名词解释

    下面我来详细讲解一下Linux rpm包中的64位、32位、i386、i586、Noarch名词解释。 什么是Linux rpm包? Linux rpm包是一种软件安装包,用于在基于Linux系统的机器上安装和管理软件。每个rpm包都包含一个软件的二进制可执行文件、库文件、配置文件和在安装时需要执行的指令等文件。 64位和32位 64位和32位是指软件所能够…

    操作系统 2023年5月15日
    00
  • Linux学习笔记(三):磁盘和文件系统管理

    Linux学习笔记(三):磁盘和文件系统管理 磁盘管理 查看磁盘空间 使用df命令可以查看系统上所有磁盘分区的空间使用情况。 df -h 其中,-h选项表示对磁盘空间进行人性化显示,即使用较易读的大小单位。 分区与格式化 在Linux中,我们可以使用fdisk命令来分区,使用mkfs命令来格式化。以下是对一个新磁盘进行分区与格式化的示例,假设它在系统中的设备…

    操作系统 2023年5月15日
    00
  • win10手机系统下载地址 win10手机版官网下载

    要下载win10手机系统,首先需要前往官方网站,以下为详细步骤: 步骤一:打开浏览器,进入官网 首先,打开你的浏览器,输入”http://www.microsoft.com/zh-cn/windows/windows-10-mobile-upgrade”,进入win10手机版本官网。 步骤二:点击下载按钮 在官网的页面中,找到下载按钮,点击进入下载页面。 步…

    操作系统 2023年5月15日
    00
  • VirtualBox实现虚拟机中共享本地目录的方法

    首先需要说明一下,“VirtualBox实现虚拟机中共享本地目录的方法”是指在一个虚拟机环境中,将虚拟机中的文件与主机中的文件进行共享。这对于开发人员来说是非常实用的,因为它可以方便地调试程序并在虚拟机和主机之间共享文件。 以下是实现共享本地目录的完整攻略: 步骤一:安装VirtualBox扩展包 VirtualBox扩展包是用于与虚拟机共享文件的必要组件。…

    操作系统 2023年5月30日
    00
  • 三星Tizen系统怎么样 三星Tizen操作系统详细介绍

    三星Tizen系统怎么样 三星Tizen操作系统详细介绍 简介 三星Tizen操作系统是由三星电子公司开发的自主运行的开放源代码操作系统。该操作系统旨在为物联网、移动设备、智能电视以及家电等设备提供一个统一的平台。 它基于Linux内核,并支持HTML5和JavaScript等Web技术。 优势 相比于其他操作系统,三星Tizen拥有以下优势: 轻量级:Ti…

    操作系统 2023年5月15日
    00
  • 操作系统的死锁是什么?

    当多个进程因为竞争共享资源而发生互相等待,导致进程无法继续执行的状态称为死锁。其中一个进程持有一个或多个资源并等待其他进程释放这些资源,而其他进程也在等待其他进程释放另一些资源,我们就说发生了死锁。 在操作系统中,死锁非常常见,因为操作系统必须大量地管理各种资源,如文件、内存、CPU时间等,这些资源可能被多个进程共享。当多个进程都需要相同的资源时,它们可能会…

    操作系统 2023年4月19日
    00
  • 操作系统如何进行容错处理?

    操作系统进行容错处理的过程分为以下几个步骤: 检测错误:操作系统通过监控硬件或软件的运行状态,检测出错误的发生,例如内存错误、输入输出错误等。 错误处理:一旦检测到错误,操作系统会启动相应的错误处理程序,该程序会尝试解决错误或给出一些紧急的应对措施,例如重新分配内存、暂停执行等。 容错机制:在处理错误的过程中,操作系统会通过一些容错机制来确保系统的安全稳定。…

    操作系统 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部