linux c 读写mbr_Linux系统启动那点事
一图流理解:Linux系统启动过程中都经历了什么?
将主要过程提取出来,接下来我们将按顺序分析每个条目
- BIOS自检
检测硬件故障;选择磁盘驱动器
- 读取MBR
主引导记录(Master Boot Record)
- 读取GRUB菜单
选择启动哪个操作系统/内核
- 启动内核
初始化设备
- 运行 init
初始化操作系统
- 运行其它程序
- 启动完成
一.MBR
主引导记录,一般是磁盘的第一个扇区,编号0。
包含主引导程序(Bootloader)、 硬盘分区表 DPT 和硬盘有效标志(55AA)。
读取分区表,识别文件系统后,加载grub程序
通过dd,mount,救援模式备份/恢复磁盘分区表[1]
二.GRUB
配置文件 /boot/grub/grub.conf
此一步页面如下:
忘记root密码时,可以按 E 进入编辑模式,重置root密码[2]
三.内核-kernel
内核是操作系统对接硬件的第一层软件集合,主要负责存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用
查看内核命令:
cat /proc/version
uname -a
查看操作系统命令:
cat /etc/issue
cat /etc/redhat-release
lsb_release -a
四.init进程
init是内核启动的第一个用户级进程,顾名思义,该程序就是进行OS初始化操作
是所有进程的父进程[3]
第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个脚本的实际功能包括:
- 激活udev和selinux;
- 根据/etc/sysctl.conf文件,来设定内核参数;
- 设定系统时钟;
- 装载硬盘映射;
- 启用交换分区;
- 设置主机名;
- 根文件系统检测,并以读写方式重新挂载根文件系统;
- 激活RAID和LVM设备;
- 启用磁盘配额;
- 根据/etc/fstab,检查并挂载其他文件系统;
- 清理过期的锁和PID文件
五.运行级别-Runlevel
runlevel,运行级别,不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种
0:关机模式
1:单一用户模式(直接以管理员身份进入)
2:多用户模式(无网络)
3:多用户模式(命令行)
4:保留
5:多用户模式(图形界面)
6:重启
修改linux运行级别步骤:
vim /etc/inittab;
修改 id:5:initdefault
表示当前系统默认运行级别是5
替换为其他,不能是0或6[4]
致谢:
本文内容细节来源于网络,经个人整理,感谢所有乐于分享技术经验的工程师们
参考
- ^https://zhidao.baidu.com/question/303958230570501884.html
- ^https://jingyan.baidu.com/article/a3aad71a18c2bcb1fb0096b8.html
- ^https://baike.baidu.com/item/%E7%88%B6%E8%BF%9B%E7%A8%8B/614062?fr=aladdin
- ^https://jingyan.baidu.com/article/e2284b2b3e6088e2e7118d77.html
linux c 读写mbr_Linux系统启动那点事相关推荐
- Kali linux学习入门-安装Kali Linux 后需要做的 20 件事
安装Kali Linux 后需要做的 20 件事 [51CTO精选译文]我在本文中整理出了安装一份全新的Kali Linux后总是要做的若干件事情.由于我有多台笔记本电脑和工作站,所以尽量扩大下列操作 ...
- linux and windows 双系统启动(详细情况分类说明)
author: luixiao1223 title: 'linux and windows 双系统启动(详细情况分类说明)' 双系统启动介绍 很多linux用户实际上是从windows用户转换而来的. ...
- 安装Linux后我做的几件事
安装Linux后我都做了哪些事? Author:StruggleYang by:elementary OS/Atom 在使用了一段时间的Linux后,前前后后安装也有几十次,也犯过一些致命的错误,为了 ...
- linux i2c 读写函数,Linux下读写芯片的I2C寄存器
要想在Linux下读写芯片的I2C寄存器,一般需要在Linux编写一份该芯片的I2C驱动,关于Linux下如何编写I2C驱动,前一篇文章<手把手教你写Linux I2C设备驱动>已经做了初 ...
- Linux uart寄存器读写,Linux下读写UART串口的代码
Linux下读写UART串口的代码,从IBM Developer network上拿来的东西,操作比較的复杂,就直接跳过了,好在代码能用,记录一下- 两个实用的函数- /** *@brief 设置串口 ...
- Linux下读写芯片的I2C寄存器
Linux下读写芯片的I2C寄存器 2012-01-10 11:40:18 标签:Linux 寄存器 驱动 读写 I2C 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本 ...
- Linux文件读写改权限详解
Linux文件读写改权限详解 文件的rwx权限 [ r ] [ w ] [ x ] 该文件可读(read) 该文件可修改(write) 该文件可执行(execute) 注意:只有当该文件所在目录有写权 ...
- web 上传文件到linux没权限,Javaweb上传文件到Linux 没有读写权限
一. 问题描述 背景描述: 0.saas-business-运营后台,website-网站页面. 1.javaweb程序(saas-business)部署在linux系统 tomcat服务器下,使用该 ...
- 【Linux笔记(000) 】-- 系统启动过程
索引: 目录索引 一. 启动流程 BIOS --> MBR(Boot Code) --> 引导程序(GRUB) --> 加载内核 --> 执行Init --> run ...
最新文章
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Four ugliness
- HID接口设备-硬件要求
- 描述java源程序构成_Java第二章Java程序设计
- solr后台登录验证
- R循环有两个_R语言数据分析与挖掘(第九章):聚类分析(2)——层次聚类
- julia有 pytorch包吗_PyTorch 有哪些坑/bug?
- [转载] python将图片进行base64编码, 解码
- 加密、解密、openssl的基本应用以及CA的实现过程
- iStack详解(三)——iStack多主检测方式
- DB天气app冲刺第十一天
- C# 使用PrintDocument类打印标签
- 计算机c盘坏了,电脑c盘损坏,怎样修复?
- 22年春福师《数学分析选讲》在线作业二
- win10系统快速切换桌面的方法
- 图形API的简单了解
- python分苹果问题_蓝桥杯--算法提高--VIP--分苹果题目(差分数组)
- 跨源通信--postMessage用法
- visibilitychange关于浏览器选项卡切换事件
- QQ红包转账卡片代码 支持任意跳转
热门文章
- python函数传值还是地址_python中给函数传参是传值还是传引用
- 语言 高速公路超速处罚_880关注 拆除!高速公路不合理限速标志!
- java,如何处理大批量数据插入
- java学生考勤代码免费,基于jsp的学生考勤管理-JavaEE实现学生考勤管理 - java项目源码...
- 在Web应用程序中执行常见搜索场景的服务器端方法
- 使C#代码现代化——第三部分:值
- python自动化框架pytest接口关联串联_python(pytest)+allure+jenkins 实现接口自动化的思路...
- 阅读器java_纯Java文档阅读器
- python怎么创意出字符图形_创造课程系列:Python入门
- 关于junit测试类启动慢报错:failed to resolve org.junit.platform