首页 > 系统相关 > Linux的启动顺序

Linux的启动顺序

时间:2023-06-11 18:01:03浏览次数:38  
标签:顺序 配置文件 grub 启动 cfg GRUB2 内核 Linux 加载

   Linux是一个多用户、多任务‘支持多线程和多CPU的操作系统,可以想象到它的启动会有多么复杂。

                                    1.Linux的启动流程及涉及的程序或者模块

  1.   在你打开计算机的电源之后,计算机的硬件会启动BIOS或者UEFI来加载并检查设备,比如CPU、内存、风扇速度等。
  2. 检查完毕之后,如果没有问题,会稽内引导加载程序(boot leader).多数Linux的发行版本使用加载程序的软件是GRUB2。
  3. 接下来会根据引导加载程序设置载入内核,内核会检测硬件信息并加载驱动程序让主机开始运行。
  4. 硬件驱动加载成功后,内核会主动调用systemed程序。
  5. 之后会启动各种服务程序,然后出现登录界面,根据提示输入用户名和密码就可以登录系统了。

                                    2.名词解释

  • BIOS(Basic Input/Output System 基本输入/输出系统)是固化到计算机主板中一个叫ROM(Read Only Memory,只读存储器)的芯片上面的程序。BIOS启动之后首先加电自检,然后根据检测到的设备优先读取第一模块(Master Boot Record,主引导记录)中的引导加载程序。MBR可以安装引导加载程序。
  • UEFL(Unified Extensible Firmware Interface,统一可扩展接口)是一种PC系统的规格,用来定义OS系统与系统固件之间的软件界面。如果你看到EFI,说的也是UFEI,它们是一个意思。UEFL可以作为BIOS的替代方案。与BIOS不同的是,UEFI会跟据NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)中设置的优先启动磁盘EFI分区中存储的引导加载程序。
  • UEFI的一个选项Secure Boot(安全启动)可以被设置为开机或者关闭。Linux引导加载程序GRUB2有内置的数字证书,支持安全引导。如果用户·使用常规的LInux,可以在UEFI设置中禁用安全引导。开机后,用户可以在BIOS或者UEFI设置界面里面设置设备的优先级或者UEFI中引导加载器的优先级。
  • GRUB2,它负责将内核加载到内存中然后启动内核。GRBU2的主程序可以直接在文件系统中查找内核文件,它支持BIOS和·UEFI的环境。GRUB(Grand Unified Bootloader,多重操作系统启动管理器)可以使用多种文件系统开机,它有一个命令界面可以在开机提示符下输入GRUB命令。
  • 看到这个界面之后,按下E键可以编辑grub.cfg文件,按下C键可以进入GRUB的命令行界面。不过对于刚接触Linux不久的人来说,有关GRUB2的设置不要轻易操作,以免损坏系统。

                                                     3.主要目录以及部分配置文件

刚开始对Linux不熟悉的时候,确实不太容易理解GRUB2的设置。不过GRUB2的主要目录和配置文件还是比较好,而且CentOS和Ubuntu中有关GRUB2的目录是一样的。CentOS中的GRUB2的目录是/boot/grub2,而Ubuntu中的的GRUB2的目录是boot/grub.

主要目录和配置文件

说明

/boot/grub2/

配置文件和模块所在目录

/boot/grub2/grub.cfg

配置文件

/boot/efi/EFI/entos/

配置文件和引导加载程序所在目录

/boot/efi/EFI/centos/grub.cfg

配置文件

/etc/grub.d

生成配置文件grub,cfg的执行脚本所在的目录

/etc/default/grub

生成配置文件grub.cfg时,在etc/grub.d/下设置从脚本引用变量值

      文件grub.cfg的设置需要用到GRUB2命令,所以主要在GRUB2命令需要知道一下。

GRUB2命令

说明

insmod

动态加载模块

set

设定定量

linux16

以16位模式启动内核,此后内核进入保护模式(CentOS存在)

initrd16

使用linux16的命令启动内核时,指定内核使用的initramfs(CentOS中存在)

linuxefi

将uefi引导参数传递到内核并启动内核(CentOS中存在)

initrdefi

使用linuxfi启动内核时,指定内核使用的initramfs文件(Centos中存在)

linux

启动内核(Ubuntu中存在)

initrd

指定内核使用的initramfs文件(Ubuntu中存在)

grub2-mkconfig

生成CentOS中配置文件grub,cfg的命令

grub-mkconfig

生成Ubuntu中配置文件grub.cfg的命令

   initramfs文件可以通过引导加载程序加载到内存中,加载完成之后,它会帮助内核重新调用systemd程序来开始之后的启动流程。下面在Ubuntu中生成配置文件的操作结果如下图所示:

首先命令介绍:cd   /boot/grub表示进入grub.cfg所在的目录中;cp grub.cfg grub.cfg.back表示负值一份grub.cfg的文件(保留当前文件的备份,以防万一);>(是重定向符号),创建grub.cfg命令需要使用重定向符号;grub-mkconfig>grub.cfg表示创建grub.cfg文件。

                                                     Linux的启动顺序_加载

标签:顺序,配置文件,grub,启动,cfg,GRUB2,内核,Linux,加载
From: https://blog.51cto.com/u_15912723/6458459

相关文章

  • linux 内核版本
    截止支持时间CentOSversion  Releasedate  Fullupdates[40][41]  Maintenanceupdates[40][41]3  2004-03-19  2006-07-20  2010-10-31[42]4  2005-03-09  2009-03-31  2012-02-29[42][43]5  2007-04-12  2014-01-31  2017-03-3......
  • NOI / 1.9编程基础之顺序查找
    06:笨小猴描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-mi......
  • 启动环境+拉取项目+网关过滤器逻辑
    服务器与服务器传输,当前在一台服务器,所有直接找到jenkens,cp拷贝即可,;若是不同的服务器,要用scp配置源码:仓库,触发器:什么时候构建,构建环境:前端后端构建后端环境时,需要传参启动项目,可以不用进入jenkensRBAC权限控制用户关联角色,角色关联用户​权限管理系统......
  • Fabric不能启动后台进程问题
    在用Fabric启动远程后台进程时,由于自己的后台程序使用类似下面的方式后台运行,导致后台进程不能启动成功 javaMyServer&看了一下官方文档,说是有几种方式可以解决这个问题,下面是我使用的方法首先修改自己的启动后台进程的脚本 nohupjavaMyServer&>/dev/null&然后......
  • Burp Suite Professional / Community 2023.6 (macOS, Linux, Windows) - Web 应用安
    BurpSuiteProfessional/Community2023.6(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023/,查看最新版。原创作品,转载请保留出处。作者......
  • linux 脚本基础实战1
    脚本完成功能1.显示出本机的ip地址2.如果ip地址中有3这个数字,打印出当前的系统时间3.如果ip地址中不含3这个数字,批量建立用户magedu_00,magedu_01,...magedu_100,所有用户同属于magedu组4.打印/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)5.yum安装ngin......
  • SpringCloud启动不了,报错
    初学SpringBootCloud启动遇到以下报错***************************APPLICATIONFAILEDTOSTART***************************Description:Webapplicationcouldnotbestartedastherewasnoorg.springframework.boot.web.servlet.server.ServletWebServerFactoryb......
  • 透过 Go 语言探索 Linux 网络通信的本质
    前言各种编程语言百花齐放、百家争鸣,但是“万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux系统底层向上提供了统一的Socket通信系统函数,动态链接库/lib64/libc.so中就是实现网络通信的关键类库。下面我们会以Go......
  • Linux命令篇 - tar 命令
    tarGNU`tar'savesmanyfilestogetherintoasingletapeordiskarchive,andcanrestoreindividualfilesfromthearchive.tar:用于压缩和解压缩文件;格式:tar[OPTION...][FILE]...#tar命令常用的功能#以下功能是独立的,一次只能使用一个--c:创建新的tar文件......
  • Linux下安装python3.7.9
    操作系统与原有python[pythondemo@localhost~]$cat/etc/centos-releaseCentOSLinuxrelease7.4.1708(Core)[pythondemo@localhost~]$pythonPython2.7.5(default,Aug42017,00:39:18)[GCC4.8.520150623(RedHat4.8.5-16)]onlinux2Type"help",......