Linux 开机流程

Linux开机详细流程 最后从虚根切换到实根。装第一个操作系统时,boot loader可以装在/dev/sda上,也可以选择装在/dev/sda1上,这时装的是MBR和VBR,任选一个都会将另一个也装上,从第二个操作系统开始,装的是EBR而非MBR,且应该指定boot loader位置(如/dev/sda5和/dev/sda8),否则默认选项是装在/dev/sda上,但这会覆盖原有的MBR。实际上/etc/init.d/下的脚本才是真正的脚本,放入rcN.d目录中的文件只不过是/etc/init.d/目录下脚本的软链接。 阅读详情

这里以RHEL 6 64bit为例,开机的大致流程;

  1. 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置;
  2. 读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub等程序);
  3. 依据 boot loader 的设定加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
  4. 在硬件驱动成功后,Kernel 会去自动调用 init 程序,而 init 会取得 run-level 信息;
  5. init 执行 /etc/rc.d/rc.sysinit 档案来准备软件执行的作业环境 (如网络、时区等);
  6. init 执行 run-level 的各个服务之启动 (script 脚本);
  7. init 执行 /etc/rc.d/rc.local 档案;
  8. init 执行终端机仿真程序 mingetty 来启动login 程序,最后就等待用户登入啦;

加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置

开机首先会去加载BIOS(Basic Input Output System),并透过BIOS程序去加载CMOS的信息,并且CMOS内设定的信息取得主机的各项硬件配置。(e.g. CPU与接口的沟通频率),取得了这些信息之后,BIOS还会进行开机自我检测(Power-On Self Test, POST)。然后开始执行硬件侦测的初始化,之后再定义可开机的装置顺序

读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub等程序)

BIOS会指定开机的装置让我们可以读取磁盘中的操作系统核心档案。由于不同OS有不同的文件系统格式,因此我们必须要以一个开机管理程序来处理核心档案加载(load)的问题,开机因此这个程序就被称Boot Loader了。这个Boot Loader在开机装置的第一个扇区内(MBR Master Boot Record)。BIOS是透过硬件的INT 13中断功能来读取MBR的,也就是说BIOS能够侦测到你的磁盘,它就可以通过硬件INT 13号中断来读取该磁盘的第一个扇区内的MBR

一个电脑上装多重操作系统,为什么要先装Windows OS,因为装多重操作系统的时候,每一个系统都会保留一块启动扇区(boot sector)以便到时候启动操作系统,而且还会把启动程序(boot loader)放到系统的MBR,每一块硬盘就只有一个MBR,装第二个操作系统的时候会覆盖第一个操作系统放到系统的MBR的值,Windows系统的Loader预设不具有控制权的转交功能

boot loader的主要功能;

  • 提供选单:用户可以选择不同的开机项目,在这个是多重引导的重要功能。

  • 载入核心档案:直接指向可开机的程序区段来启动操作系统。

  • 转交其他Loader: 将开机管理功能转交给其他的Loader来负责。

boot loader最终功能就是加载kernel文件。

依据 boot loader 的设定加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序

通过boot loader的管理而开始读取内核文件后,接下来,Linux就会将内核解压缩到内存中,并且利用内核的功能,开始测试和驱动周边设备。此时Linux内核会以自己的功能重新检测一次硬件,而不一定会使用BIOS检测到的硬件信息。内核此时才开始接管BIOS后的工作了。内核文件一般会放置在/boot里面,并且取名为/boot/vmlinuz

在硬件驱动成功后,Kernel 会去自动调用 init 程序,而 init 会取得 run-level 信息

在内核加载完毕进行完硬件检测与驱动程序加载后,此时主机硬件就准备就绪了,此时内核会主动调用第一个进程,就是/sbin/init。/sbin/init最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设置、语系处理、文件系统格式及其他服务的启动。配置文件为/etc/inittab。而inittab内还有一个很重要的设置选项,就是默认的run level(启动执行等级)。

执行等级:Linux通过设置run level来规定系统使用不同的服务来启动,让Linux的使用环境不同。依据有无网络与有无X Window而将run level分为7个等级

  • 0 - halt 系统直接关机

  • 1 - single user mode 单用户维护模式,用在系统出问题是的维护

  • 2 - Multi-user, without NFS 类似下面的runlevel3,但无NFS服务

  • 3 - Full multi -user mode 完整含有网络功能的纯文本模式

  • 4 - Unused 系统保留功能

  • 5 - X11 与runlevel3类似,但加载使用X Window

  • 6 - reboot 重新启动

由于runlevel 0/4/6不是关机、重新启动就是系统保留的,所以不能将默认的run level设置成这三个值,否则系统就会不断自动关机或者自动重启

/etc/inittab语法

[设置选项]:[run level]:[init的操作行为]:[命令选项]

  • 设置选项:最多四个字符,代表init的主要工作项目,只是一个简单的说明

  • run level:该项目在哪些run level进行的意思。如果是35则代表runlevel3与5都会执行

  • init的操作行为:主要可以进行的动作项目意义有

init设定值

意义说明
initdefault代码预设的run level设定值
sysinit代表系统初始化的动作项目
ctrlaltdel代表[ctrl]+[alt]+[del]三个按键是否可以重新启动的设定
wait代表后面字段设定的指令项目必须要执行完毕才能继续底下其他的动作
respawn

代表后面字段的指令可以无限制的再生(重新启动)。举例来说,tty1的mingetty产生的可登入得画面,在你注销而结束后,系统会再开一个新的可登入画面等待下一个登入

更多的设置可以参考man inittab的说明

init处理系统初始化流程(/etc/rc.d/rc.sysinit)

这个脚本主要是设定系统的环境

启动系统服务与相关的启动配置文件(/etc/rc.d/rc & /etc/sysconfig)

用户自定义开机启动程序(/etc/rc.d/rc.local)

参考来自鸟哥私房菜第三版

Linux 开机流程详解 对于任何系统, 开机不仅仅是接通电源这么简单的事情, 在这短短的几秒或几十秒内将会发生许多事情, 了解这个完整的流程将是解决任何开机问题或提高开机速度的前提. 接下来, 我们就详细了解一下Linux的开机流程:  1. 加载 BIOS 的硬件信息并进行自我测试,并依据取得第一个可开机的装置; 2. 读取并执行第一个开机装置内 MBR 的 Boot Loader (如 grub, spfdisk 阅读详情

相关推荐

Linux开机启动流程

Linux开机启动过程(个人理解) 简述Linux启动过程

qq_52367191的博客 1688

启动 Ethereum(上海) 主网全节点

Ethereum升级到上海后,当 Geth 在合并后权益证明网络上没有共识客户端的情况下运行时,会发出上述消息。 由于以太坊转向权益证明,仅靠 Geth 不足以跟踪链,因为共识逻辑现在由称为共识客户端的单独软件实现。 缺少共识客户端时会显示此日志消息。 在我们的共识客户页面上阅读更多相关信息。

shuizhongmose的专栏 4912

从网格剖分到结果外推:一文拆解HFSS快速扫频(Fast Sweep)的底层逻辑与性能调优

本文深入解析了HFSS快速扫频(Fast Sweep)技术的底层逻辑与性能调优方法。通过ALPS算法实现频带外推,快速扫频相比离散扫频和插值扫频能提升3-5倍计算效率,特别适用于天线阵列、微波滤波器等宽频带分析场景。文章详细介绍了算法架构、参数优化策略及工程实践中的精度保障机制,帮助工程师高效完成电磁仿真。

weixin_28693447的博客 93

创建geth节点

创建swarm的swap-endpoint节点,也就是geth的Görli网络节点 官方建议的配置是: Minimum: CPU with 2+ cores 4GB RAM 320GB free storage space to sync the Mainnet 8 MBit/sec download Internet service Recommended: Fast CPU with 4+ cores 16GB+ RAM Fast SSD with at least 500GB free spac

s7799653的博客 1790

以TMS320F28069为例,如何使用CCS建立DSP工程文件

以TMS320F28069为例,本文主要介绍了使用CCS建立DSP工程的流程

Honglong 2556

EDKII实战:手把手调试PciHostBridge.c,看UEFI如何分配你的PCIe设备资源(IO/Memory空间)

本文深入解析EDKII中PciHostBridge.c模块的工作原理,详细指导如何调试PCIe设备资源分配(IO/Memory空间)。通过实战案例展示UEFI环境下Root Bridge初始化、地址空间转换及协议安装等核心流程,提供常见问题排查方法与性能优化建议,帮助开发者解决PCIe设备兼容性问题。

weixin_29201933的博客 208

Linux发行版

Linux发行版

Clef的专栏 1020

TransUnet官方代码训练自己数据集(彩色RGB3通道图像的分割)

官方代码:https://github.com/Beckschen/TransUNet 目的:训练5个类别的汽车部件分割任务(测试在另一篇博客中) 实现效果: 1. github下载代码,并解压。 项目里的文件可能跟你下载的不一样,不急后面会讲到! 2. 配置数据集(尽最大努力还原官方数据集的格式)。 通常自己手上的数据集分images和labels文件夹,分别存放着原始图像和对应的mask图像,如下图所示; mask图像中的像素有0,1,2,3,4 分别代表背景,车身,轮子,车灯,窗户,一共五个

qq_37652891的博客 5万+

Linux工作管理

fg bg jobs nohup

Clef的专栏 735

AMBA-CHI协议详解(五)

 每个事务由许多不同的packets组成,这些数据包通过互连(interconnect)传输。packets内的一组ID域段用于提供有关包的附加信息。

Crazzy_M的博客 1961

5G Multicast/Broadcast Services(MBS) (七) MBS广播DRX

当处于RRC_IDLE或RRC_INACTIVE或RRC_CONNECTED 状态时,如果为 G-RNTI 配置了broadcast DRX,则允许MAC entity使用broadcast DRX 操作不连续地监听此G-RNTI的PDCCH;此 G-RNTI 的 drx-onDurationTimerPTM 或 drx-InactivityTimerPTM 正在运行的时间,也就是。long DRX周期drx-LongCycle-PTM和drx-StartOffset-PTM定义DRX周期开始的子帧。

asd199086的博客 391

认识下以太坊Clef—独立交易签名器

一、初识 以太坊go-ethereum在1.8.4版本中就开始引入了Clef,并在1.9.0版本中进行了较大的升级,其主要目的是以一种更安全、独立的方式替代以太坊节点的账号管理模块。 1、Clef是什么 官方文档对Clef的描述是: Clef最终目标是代替Geth的节点账号管理,可用来对交易进行签名。Clef可以使DApp不必依赖Geth的帐户管理,当DApp需要对数据(或交易)进行签名时,可以将数据发送给Clef,在经过授权同意后,Clef将把签名返回给DApp。 从官网的描述中,并没有看出Clef的

六天的博客 2282

ESP32-C3入门教程 环境篇②——Windows开发环境准备

文章目录一、注意事项二、下载ESP-IDF工具安装器三、安装内容四、详细安装步骤报错处理 一、注意事项 请注意 ESP-IDF 和 ESP-IDF 工具的安装路径不能超过 90 个字符,安装路径过长可能会导致构建失败。 Python 或 ESP-IDF 的安装路径中一定不能包含空格或括号。 除非操作系统配置为支持 Unicode UTF-8,否则 Python 或 ESP-IDF 的安装路径中也不能包括特殊字符(非 ASCII 码字符、中文字符) 二、下载ESP-IDF工具安装器 ESP-IDF Win

5244

linux-开机启动流程

掌握让某个软件开机自动运行开机不能正常启动,是什么原因,或者那个环节出现了问题防止黑客植入木马,去查询黑客会把木马放到哪些地方?

2501_92004703的博客 3058

C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆

程序主要是基于Visual studio 2019进行编译完成了,有兴趣的小伙伴可以自己安装下Visual studio 2019,网上有现成的教程,当然了,如果有问题,也可以和我联系,这里我们主要讲解些源码实例,不多说了,言归正传。 C语言,做为学习其他语言的基础语言,其重要性就不言而喻了.下面我将和大家一起来学习探讨C语言的相关奥秘。 实例1:绘制直线 实例2:绘制圆 实例2:绘制圆弧 实例2:绘制椭圆

hnjzfwy的博客 1235

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux - 开机启动流程

上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。masterbootrecord主引导记录,位于硬盘的0磁道,0柱面,1扇区,可以看成是硬盘的第一个扇区,MBR里面有一个grub2引导程序,负责启动linux系统。BIOS的配置固化到了主板上面的CMOS芯片上面,BIOS是一个程序会读取CMOS芯片里的参数,了解cpu的配置,时间的配置,...

qq_48391148的博客 7580

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux的开机自启流程

电脑里有哪些硬件?hardware 硬件: 肉体software 软件: 灵魂1,cpu: 中央处理器 (架构)X86 ---》Intel和AMD 公司制作的CPU的架构技术 --->386 486 586 686 X86 core i7 i9ARM-->ARM 是英国的ARM(Advanced RISC Machines)是一家全球领先的半导体和软件设计公司,专注于低功耗、高性能处理器架构的设计和授权。

m0_74929995的博客 972

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux基础之开机流程

开机流程 1、Linux的开机流程分析 系统开机的经过可以汇整成底下的流程: 加载BIOS或UEFI BIOS的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置; 读取并执行第一个开机装置内MBR的boot loader(亦即是grub2、spfdisk等程序); 依据boot loader的设定加载Kernel,Kernel会开始侦测硬件与加载驱动程序; 在硬件驱动成功后,Kernel会主动呼叫systemd程序,并以default.target流程开机; ​ systemd

前尘忆梦的博客 273

Linux开机启动流程有一这篇就够啦!!!

Linux开机启动流程详解一.开机启动流程二级目录三级目录 一.开机启动流程 1.按一下开机按钮到你输入用户名和密码,进入系统的整个过程,都叫开机启动流程--》背后发生的事情 二级目录 三级目录 ...

m0_55724788的博客 7841

Linux系统开机流程简介

前端时间跟着团队在搞Linux系统的内核移植,涉及到很多模块的加载顺序问题,就学习了些Linux系统开机的基本流程,就算给刚刚入手的小伙伴些学习参考吧。 大致流程:

保持一颗永远好奇、勇于探索的心 536

Linux——Linux的开机流程分析

Linux目前主流的开机管理程序为grub2,早期的Linux预设使用grub1或LILO。当按下开机键后,系统会主动读取第一个开机的装置(有BIOS设定),此时就进入开机管理程序。开机管理程序可以指定使用哪个核心来开机,并实际加载核心到内存当中解压执行,此时核心就在内存当中活动,并且侦测所有硬件信息与加载适当的驱动程序来使整部主机开始运作,等到核心侦测硬件与加载驱动程序完毕后完成开机。主机系统开...

小顽固的博客 2067

Linux开机流程&Systemd&grub

Linux开机流程&Systemd&grub fromNet,感谢网络 带来有趣/专业 总结: 1、Boot : 'pull oneself up by one's bootstraps',计算机启动是一个很矛盾的过程,必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序! 2、分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径 ...

Lucaskingjyh的博客 1506

Linux系统开机启动流程(超详细)

BIOS(Basic Input/Output System)是一种位于计算机系统中的固件程序,它提供了计算机系统的基本输入输出功能。BIOS位于计算机主板上的一个芯片中,负责初始化和配置硬件设备,以及提供底层的系统管理和控制功能。BIOS是电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

qq_51010919的博客 1万+

Linux目录结构及开机流程详解

对Linux有一些了解的,都应该知道在Linux中所有的内容都是文件,包括硬盘等各种硬件在Linux中也都是按照文件来继续处理的,所以对Linux文件的了解将是非常重要的。 目录 0x01 Linux重要目录结构 0x02 Linux启动流程 0x01 Linux重要目录结构 /bin 用户的命令都在这里 使用which 命令 可以查看命令的所在路径 /boot Linux内核及系统引导...

无心的博客 1074

【Linux】Linux开机启动流程

所谓开机启动流程,是指计算机从通电开机到进入登录界面的过程。熟悉开机启动流程,了解其背后的原理,可以更好的深入了解Linux的核心工作原理。 1、加载BIOS BIOS(basic input output system),直译为“基本输入输出系统”。 bios信息极为重要,包含了CPU、设备启动顺序、硬盘、内存、时钟等各种计算机重要属性的基本信息。 bios一般搭载在计算机的主板上,一般可以按F12、FN等快捷键进入bios管理系统,各个硬件品牌可能有所不同。 通过读取bios信息,计算机选择读取存放了L

qq_48598380的博客 1653
上一篇: 多台电脑共享一套鼠标键盘--synergy
下一篇: Linux忘记root密码的解决之道
Clef
博客等级 码龄12年 125粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值