经典面试题---linux启动流程

2023-05-16

linux启动流程

power on ---->BIOS加电自检,根据引导顺序启动---->MBR---->grub(stage2 ) --->/boot/grub/grub.conf ----->加载内核和ramfs文件系统--->init ---->读取/etc/inittab , 执行/etc/rc.sysinit等脚本文件------>根据/etc/inittab里的运行级别进入/etc/rc*.d目录,启动里面的服务(s开头的为要启动的) ------->启动登录程序

linux系统引导流程简图:



BIOS是基本输入输出系统(Basic Input Output System)的简称,是计算机中最基础,最重要的程序,存储在主板上的Flash ROM中。
BIOS加电自检中会检查内存、CPU、主板等硬件中是否存在错误,出现错误后会有两种处理情况:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出然后提示或信号;对于非严重故障则给出提示或声音警报信号,等待用户处理。引导操作系统:BIOS会先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到就把电脑的控制权交给引导记录处理。
-----------------开机进入BIOS,开机第一个画面都会有提示-------------------
台式机---》del
笔记本--》品牌不同按键不一样,F1、F2、F8、F12等
服务器---》F1

启动BIOS:固化在主板上的芯片里
POST(power on self test)系统检查:检查核心硬件是否正常
设备初始化:初始化驱动程序,分配资源
引导设备选择:使用光驱,硬盘还是PXE引导
移交执行区域:加载引导设备的第一个扇区(512字节)
-----------------
BIOS介绍- -------------------
输入/输出系统的简称
存储计算机基本硬件的信息
不可以随意拔插
--------------
BIOS作用 -------- -------------
加电自检
初始化
引导操作系统
------------------------
BIOS和CMOS的关系? -----------------------------------------
bios是一个程序,CMOS是一个存数据的芯片,bios启动会到CMOS里读数据。平时我们配置bios的参数的时候,都存在CMOS里。
CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一
块可读写的RAM芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
------------------
计算机里可以设置哪些密码?有哪些作用? ------------------------
BIOS密码-->防止别人设置从U盘或者网络引导进入系统
grub密码--->防止破密码
系统的密码-->防止人家进系统
------------------
根据显示信息排除故障------------------------------------------------
POST信息,包括检测过程和错误提示
计算机启动时显示“CMOS battery failed”
主板电池电力不足,需要更换新电池
计算机启动时显示“Floppy disk s fail Press F1 to Continue,Del to setup
无法驱动软驱 ,按F1键继续
根据警报音排除故障
根据警报音识别故障硬件
蜂鸣器长鸣
内存错误,清理灰尘,或更换一条插槽

PXE(preboot execute environment) 是由Inte l公司开发的最新技术,工作于Client/Server的网络模式,
支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,
终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file
transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,
从而引导预先安装在服务器中的终端操作系统。

MBR(Master Boot Record引导记录),又叫主引导扇区
引导程序
LILO(淘汰)
GRUB是GNU赞助的项目
引导程序的两个工作阶段
stage1
:就是bootloader(MBR里446字节程序)。第一阶段只用来定位装载第二阶段的引导程序,stage1有stage2的地址
stage2 :第二阶段指引导程序本身,会运行某种应用程序并读取相应的配置信息,很多的驱动
stage1.5 :是sta ge1和stage2之间的桥梁,由于stage1不能识别文件系统格式,需要Stage1.5来引导位于某个文件系统当中的stage2
/boot目录下的stage1、stage1.5、stage2都是备份的,防止grub被破坏后,可以拿来修复grub程序
正常的顺序是从stage1--->stage2
如果grub被破坏过,启动顺序stage1-->stage1.5--->stage2


-------------
解压image映像文件,查看里面的内容。------------------------------------
[root@station initram fs]# mkdir /initramfs
[root@station initramfs]# cp /boot/initramfs-2.6.32-279.el6.i686.img /initramfs/
[root@station initramfs]# file initramfs-2.6.32-279.el6.i686.img
initramfs-2.6.32-279.el6.i686.img: gzip compressed data, from Unix, last modified: Fri Mar 1 09:27:07 2013, max compression
[root@station initramfs]# gunzip <initramfs-2.6.32-279.el6.i686.img >inittramfs.img
[root@station initramfs]# cpio -iv <inittramfs.img
[root@station initramfs]# ls
bin dracut-004-283.el6 init initqueue-settled inittramfs.img pre-pivot proc sysroot var
cmdline emergency initqueue initqueue-timeout lib pre-trigger sbin tmp
dev etc initqueue-finished initramfs-2.6.32-279.el6.i686.img mount pre-udev sys usr
[root@station fs]# pwd
/initramfs/lib/modules/2.6.32-279.el6.i686/kernel/fs

内核比喻成皇上,img文件相当于给皇上提供一个住的地方,大臣,部队等组成一个朝廷
内核里的驱动不多,所以将img文件加载到内存里当一个临时的根文件系统,里面有很多的驱动,可以驱动其他的重要设备了。

initrd (initial ramdisk)
ramdisk --》虚拟内存盘是通过软件将一部分内存(RAM)模拟为硬盘来使用的一种技术。
内核里的驱动不多,所以将img文件加载到内存里当一个临时的根文件系统,里面有很多的驱动,可以驱动其他的重要设备了。

---------
引导程序的功能 ---------------------
编写内核命令行
装载初始化虚拟磁盘
将控制权交给Linux内核


GRUB菜单项配置
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-164.el5.img·····
title:菜单名称
kernel:内核文件的位置及内核启动参数
initrd:初始虚拟磁盘的位置

[root@station initramfs]# vim /etc/inittab

# System initialization is started by /etc/init/rcS.conf
系统初始化使用
# Individual runlevels are started by /etc/init/rc.conf
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
是系统在启动的过程中按Ctrl-Alt-Delete就重新启动系统
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
开启tty虚拟控制台(tty1-tty6)
# with configuration in /etc/sysconfig/init.
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this) 关机
# 1 - Single user mode 单用户模式,破密码的时候进入此模式
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户模式,但是不能使用NFS功能
# 3 - Full multiuser mode 字符界面
# 4 - unused
# 5 - X11 图形界面
# 6 - reboot (Do NOT set initdefault to this) 重启
id:5:initdefault:


[root@station initramfs]# runlevel 查看运行级别
N 5 前面为N表示直接进入的是图形界面
3 5 表示前面进入的3字符界面

-------vim /etc/rc.d/rc.sysinit(系统 初始化文件) ------------------
由init进程调用执行
完成设置网络、主机名、加载文件系统等初始化工作
获取网络环境与主机类型
设置系统时间(clock)
……
以FSCK检验磁盘文件系统
重新以可读可写模式载入系统磁盘
……
清除启动过程中的临时文件
将启动相关信息加载到/var/log/dmesg文件中

不管在哪种运行级别,开机都会执行/etc/rc.local

系统启动硬件信
dmesg | more
/var/log/dmesg文件
这两个地方都可以看到系统最近一次启动的硬件信息

dmesg---》/var/log/dmesg 记录引导开启信息的
[root@teacher vnc]# dmesg |grep Eth查看网卡信息
[root@teacher vnc]# dmesg |grep eth 查看与eth相关的信息,开机引导的时候

/etc/rc.d/rc.sysinit
由init进程调用执行
完成设置网络、主机名、加载文件系统等初始化工作
/etc/rc.d/rc脚本文件
由init进程调用执行
根据指定的运行级别, 加载或终止相应的系统服务
红帽企业版Linux服务脚本位于/etc/rc.d/init.d中
/etc/rc.d/rcn.d目录中
包含运行级别n执行服务状态配置的符号连接
===========
/etc/rc.d/rcn.d目录中
包含运行级别n执行服务状态配置的符号连接
控制系统在相应运行级别会自动启动或停止的服务
符号连接名称:Lddservice_name
L:K或者S;表示停止或者启动服务
dd:两位数字;表示启动或停止服务的顺序

[root@station rc3.d]# ls|grep httpd
K15httpd
[root@station rc3.d]# chkconfig --list httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@station rc3.d]# chkconfig --level 3 httpd on
[root@station rc3.d]# ls|grep httpd
S85httpd


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

经典面试题---linux启动流程 的相关文章

  • 计算机,会是下一个土木专业吗?

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 大家好 xff0c 我是麦叔 最近看到一个热门问题 xff1a 计算机专业是否会成为下一个土木工程 xff1f 这个问题我想大多数准备学习计算机方向
  • 改变世界的数学公式,yyds

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 数学一直是我认为非常神奇的学科 上学期间不知数学有何用 xff0c 甚至觉得数学专业连工作都找不到 xff0c 才知道自己原来的认知简直太渺小了 x
  • 你们都开工了,我才刚开始复盘

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 大家好 xff0c 我是小麦 自从阳康之后已经连续忙了快一个月 甚至春节都没有休息 xff0c 大年初一还工作到凌晨 地球不爆炸 xff0c 我们不
  • 卖网红饮品喜茶配方,他一年赚50万

    前两天我去了一趟广州 xff0c 参加了一个内部圈子的交流会 xff0c 加过我微信的朋友可能会看到 在交流会上 xff0c 认识了一个年轻小伙子 xff0c 大伙称呼他为豪哥 xff0c 在分享会上他讲述了自己卖喜茶配方年赚50万的创业历
  • 入职新公司被要工资流水!这背后到底有什么猫腻?

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 关于 什么时候工资流水成了新人入职必须提供的资料项之一 这件事 xff0c 作为一个打工人还是多少了解一下背后的原因的 其实要说以前 xff08 不
  • 俄罗斯自研的CPU,能用吗?

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 从 2014 年吞并克里米亚到 2022 年的俄乌战争 xff0c 俄罗斯和西方世界的冲突愈发加剧 xff0c 在能源和科技上的相互制裁不断升级 在
  • 爆一下年终奖

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 各个公司的年终奖大多尘埃落定了 xff0c 大环境说实话不是很好 xff0c 有人欢喜有人愁 xff0c 汇总了一波 xff0c 大概50位小伙伴的
  • ChatGPT火爆,背后的核心到底是什么?

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 2022年12月份的时候 xff0c ChatGPT还只是个被人各种撩的聊天工具 但进入2023年后 xff0c 已经向着效率工具迈进了 微软宣布正
  • 不小心当上CTO了

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 大家好 xff0c 我是小麦 在知乎上看到一篇从创业公司的工程师一路成长为CTO的真实故事 看完我获益匪浅 在这里分享给大家 01 创业初期 在创业
  • 盘点一下电子嵌入式相关的公司

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达 大家好 xff0c 我是小麦 最近入坑电子信息工程专业的表弟问我毕业能去干什么 xff1f 于是在这里盘点了一下电子嵌入式相关的公司 在这里和大家分
  • C# 解析ini类型文件详解

    1 什么是ini文件 INI文件是一种配置文件格式 xff0c 通常用于Windows操作系统中的应用程序中 它是一种文本文件 xff0c 由多个节和键值对组成 xff0c 用于存储应用程序的配置信息 INI文件的特点包括 xff1a IN
  • CAN总线显性电平和隐性电平详解

    相关文章 CAN总线简易入门教程 CAN总线显性电平和隐性电平详解 STM32的CAN总线调试经验分享 CAN 信号线 CAN 传输的两条信号线被称为 CAN H 和CAN L 通电状态 xff1a CAN H xff08 2 5V xff
  • STM32的CAN总线调试经验分享

    相关文章 CAN总线简易入门教程 CAN总线显性电平和隐性电平详解 STM32的CAN总线调试经验分享 文章目录 相关文章背景CAN总线CAN控制器CAN收发器 调试过程硬件排查CAN分析仪芯片CAN控制器调试 总结 背景 最近负责的一个项
  • 我的新副业

    大家好 xff0c 我是麦叔 聊聊我的新副业吧 尝试做了一段时间餐饮 xff0c 差不多有半年时间了 感触很深 在这里和大家分享一下 缘起 去年10月份朋友的店铺转让 xff0c 于是我就盘下来了 店面不大 xff0c 投入也不是很大 xf
  • 螺旋桨拉力

    介绍 螺旋桨拉力计算公式 直径 xff08 米 xff09 X 螺距 xff08 米 xff09 X 桨宽度 xff08 米 xff09 X 转速 xff08 转 秒 xff09 X 经验系数 xff08 0 25 xff09 61 拉力
  • 爆炸了!但YYDS

    正文共 xff1a 2962字 预计阅读时间 xff1a 8分钟 成功发射 xff0c 但在空中爆炸了 这一刻 xff0c 我们都仰望星空 北京时间 4 月 20 日晚 9 点半 xff0c 随着倒计时声音的结束 xff0c 在 Space
  • 赞爆了!Tabby 这款开源工具真的好用!

    点击上方 小麦大叔 xff0c 选择 置顶 星标公众号 福利干货 xff0c 第一时间送达
  • 惠普暗影精灵VMware安装CentOS7显示[此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态]

    进入BIOS页面开启CPU虚拟化处理技术 电脑开机时按 ESC 键进入系统启动菜单 然后按F10进入BIOS页面 xff0c 开启 处理器虚拟化技术
  • Python的main函数

    在 Python 中 xff0c 程序的入口点通常指的是一个特定的函数 xff0c 即 main 函数 这个函数是程序的起点 xff0c 也是程序的入口 xff0c 通过调用 main 函数 xff0c 程序开始执行 在 Python 中
  • CMakeList静态库多层嵌套问题 undefined reference to

    前言 被一个问题缠绕了很长时间 xff0c 这两天花精力好好研究了一下 xff0c 总算解决了 xff0c 翻过来看 xff0c 就是自己不注意造的很多小问题 我的想法是把一些代码封装起来 xff0c 但是有些部分要求能让现场工作同事有一定

随机推荐

  • gazebo仿真环境中 加入传感器

    1 传感器加入自己的模型中需要那些步骤 1 节点说明 xff0c 链接关系 lt robot name 61 test gt lt link name 61 34 link1 34 gt lt link name 61 34 link2 3
  • 以下为Windows NT 下的32 位C++程序,请计算sizeof 的值

    char str 61 Hello char p 61 str int n 61 10 请计算 sizeof str 61 sizeof p 61 sizeof n 61 答案 6 4 4 void Func char str 100 请计
  • vue实现显示10条数据点击查询看更多

    vue实现显示10条数据点击查询看更多 要求如下 当页面的数据超过10条时只显示10条 且显示 点我查看更多喔 每次点击 页面数据增加10条 思路解析 如题 假设有20条数据 只显示10条 点击查看更多按钮 span class token
  • 433和2.4G无线通信比较

    DSSS 2 4G无线数据传输系统优势 一 很正常的升级换代 xff1a 系统工作的长期稳定性和可靠性 xff0c 是一个无线通信系统最重要的指标 由于一般433兆及915兆产品使用的是低频窄带通信技术 xff0c 它们的工作频率范围很窄5
  • Android adb dumpsys 命令总结

    adb shell dumpsys 有哪些命令可以用 xff0c 可以使用adb shell service list来查看 查看package这个service的帮助信息 adb shell dumpsys package h 查看act
  • 在STM32中实现ROS节点——Rosserial的用法

    目录 内容介绍前言生成要移植到stm32的自定义消息和服务生成针对stm32的移植库包roslibs在Mdk中实现C和C 43 43 代码混合编译修改mdk配置修改stm32 ROS通讯接口驱动测试补充说明 内容介绍 本文介绍如何将stm3
  • ubuntu下用apt-get install 安装软件时出现 initramfs-tools错误

    错误提示 xff1a gzip stdout No space left on device E mkinitramfs failure cpio 141 gzip 1 update initramfs failed for boot in
  • ubuntu虚拟机下桥接模式,静态ip上网

    近期使用VM安装了ubuntu12 10玩玩 xff0c 途中也遇到了许多问题 xff0c 安装完成后 xff0c 系统默认是选择NAT连接方式的 xff0c 可以直接通过火狐浏览器上网 xff08 不需任何设置 xff0c 系统自己配置好
  • Windows下安装GTK+(整理)

    以下为网上摘的 xff0c 自己把它整理在了一起 WINDOWS下实现GTK 43 GTKMM的编程 xff08 一 xff09 下载软件包 1 下载dev C 43 43 开发软件 xff08 我的版本是4 9 9 2 xff09 2 下
  • windows gtk+开发环境搭建方法详解(图解)

    GTK 43 开发环境搭建 工欲善其事 必先利其器 首先介绍一下GTK 43 开发环境的搭建 网上很多所谓的GTK的开发环境的搭建基本都是抄来抄去 也不知道有没有人使用他们介绍的方法搭建并编译成功 很不幸的是我使用他们写的方法没有搭建成功
  • GTK在Linux下的安装

    linux gtk 是linux平台下的图形界面开发接口 xff0c 它不同于qt xff0c 它是完全免费的 xff0c Qt是基于c 43 43 的商业开发包 xff0c 涉及版权等问题 xff0c gtk则是基于c的全免费的 xff0
  • android SDK下各目录的用途,以及在不同系统下哪些是通用的。

    Android SDK 目录下有很多文件夹 xff0c 主要都是干什么的呢 1 add ons 这里面保存着附加库 xff0c 比如google Maps xff0c 当然你如果安装了OPhone SDK xff0c 这里也会有一些类库在里
  • Linux系统文件系统基础罗列

    Linux 文件系统是linux的一个十分基础的知识 xff0c 同时也是学习linux的必备知识 本文将站在一个较高的视图来了解linux的文件系统 xff0c 主要包括了linux磁盘分区和目录 挂载基本原理 文件存储结构 软链接硬链接
  • 至今互联网上收集最全的精品教育资源【转载+补充】

    海慧为您奉上 xff01 xff01 xff01 操作指引 xff1a 第一步 xff1a 注册一个360云盘账号 xff0c 注册地址 xff1a yunpan 360 cn xff0c 拥有自己的账号和密码 第二步 xff1a 下载36
  • Linux Android 真机调试配置

    1 USB 链接手机 xff0c 打开USB调试 2 在终端中输入lsusb命令 xff0c 查看USB设备信息 xff0c 找到手机对应的USB信息 eg Bus 002 Device 003 ID 12d1 1035 Huawei Te
  • 【ROS2】类ROS1的rate定时器写法(c++&python例子)

    在ROS2官方教程里 xff0c 代码和ROS1例程有很大不同 xff0c 大部分节点都使用了类的写法 xff0c 并且用到了很多C 43 43 的新功能 其中 xff0c 发布消息是采用了一个定时器timer xff0c 并且注册一个回调
  • C++中STL常用容器的优点和缺点

    我们常用到的STL 容器 有vector list deque map multimap set和multiset xff0c 它们究竟有何区别 xff0c 各自的优缺点是什么 xff0c 为了更好的扬长避短 xff0c 提高程序性能 xf
  • APM飞控学习之路:5 串口概述与收发调试

    云中谁寄锦书来 xff0c 雁字回时 xff0c 月满西楼 当无人机在空中飞翔时 xff0c 从APM飞控到飞手之间有几条看不见的 风筝线 xff08 1 xff09 2 4GHz的遥控 xff1b xff08 2 xff09 433 91
  • 【Android车载系列】第3章 车载通讯CAN协议

    1 CAN总线的基本概念以及由来 1 1 简介 CAN 总线即控制器局域网总线 CAN xff0c Controller Area Network 是一种用于实时应用的串行通讯协议总线 xff0c 被公认为最有发展前景的现场总线之一 由 B
  • 经典面试题---linux启动流程

    linux启动流程 xff1a power on gt BIOS加电自检 xff0c 根据引导顺序启动 gt MBR gt grub stage2 gt boot grub grub conf gt 加载内核和ramfs文件系统 gt in