Linux 初始化及系统启动过程

从按下电源键到进入系统的时间里,系统发生了哪些事情?经历了怎样的一个过程?是如何进入到登陆界面的?下面是整理的一个简单Linux启动过程。

1、服务器硬件要完整,CPU、内存、硬盘、主板等硬件缺一不可,并且接通电源,然后按下开机键,CPU开始自检所连接的硬件,比如鼠标键盘、显示器、内存、USB设备、硬盘等硬件,如果再自检过程中出现错误,会发出滴滴的声音提示,假如自检没有问题,则会按照BIOS设置的启动顺序,选择从光盘或光驱启动

2、假如从硬盘启动,会读取硬盘的0磁道的0扇区,供512个字节,称为MBR(Master Boot Record),即硬盘主引导记录,MBR又按如下字节分类:

前446字节:Bootloader;给出启动菜单,负责系统引导,

64:分区表:识别系统分区,每个分区16字节

2:标记是否活动分区,是一种特殊标记

3、交予grub引导加载分区上的内核,但是内核是存放于硬盘之上,所以Bootloader还要想办法识别文件系统的类型,不然如果不识别硬盘分区类型则无法加载内核,首先将内核从硬盘读取带内存,Bootloader不能识别RAID分区,因此linux 内核不能存放于RAID、LVM等高级分区,因此可以将内核文件和驱动程序存放于一个基本分区,将根分区存放于LVM等高级分区,将内核解压

内核:vmlinux,压缩存放,有两段代码组成,前部分代码是非压缩的,负责解压后面压缩的内核。

驱动:initramfs,保存基本驱动文件,内核初始化是从其加载驱动。

4、内核自解压到内存后,Bootloader的使命结束,启动交予内核识别硬件,

内核要识别根分区,依靠加载initramfs,内核把他当做硬盘使用,通过initramfs的程序完成根切换,切换到真正的根,并完成硬件探测,产生临时硬件目录,/proc

5、硬件探测结束后启动/sbin/init,init读取/etc/rc.d/rc.sysinit脚本,依靠此脚本完成系统初始化的很多工作

系统初始化脚本:/etc/rc.d/rc.sysinit

显示欢迎信息

设置主机名

激活SElinux和Udev

激活swap

挂载/etc/fstab定义的文件系统

检测文件系统并对其以读写方式重新挂载

设置系统时钟

装在键盘映射

根据/etc/sysctl.conf设置内核参数

激活软RAID和LV

6、init加载/etc/inittab,确认系统启动级别,并完成/etc/rc.d/rcX.d/目录下的环境初始化。

/etc/inittab中定义的操作:

设置默认运行级别

指定系统运行的初始脚本,挂载设备,初始化外部设备驱动等待!

启动指定级别下要启动的服务,并关闭要关闭的服务

定义crtlAltDel组合的动作

初始化字符终端

启动图形终端

7./etc/rcX.d/中的脚本按事先设定的服务优先级依次启动

通过chkconfig 设置在某个级别(通常最多的是3和5)下面的启动和关闭的服务,都是在这个时候完成的。

8.执行/etc/rc.d/rc.local里面定义的命令

9.最后用户登录界面

时间: 2024-12-15 17:53:30

Linux 初始化及系统启动过程的相关文章

Linux进阶之系统启动过程图解

1:Linux启动是一个挺复杂的过程,为了更好的理解,画了一张时间序列启动图. 2:运行级别 Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别2:多用户状态(没有NFS) 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 运行级别4:系统未使用,保留 运行级别5:X11控制台,登陆后进入图形GUI模式 运行级别6:系统正常关

Linux内核(一)系统启动过程

转载请注明出处:jiq?钦's technical Blog (1) CPU自身初始化: CPU加电之后需要进行一系列的初始化工作: (2) CPU加载BIOS(Basic InputOutput System): CPU执行一个固定的位置(一般是0xFFFFFFF0)的指令.这是一条跳转指令,跳转到BIOS代码的首部.BIOS固化在主板上一个很小的ROM中,主要完成两个工作: (a) 加电自检(POST):完成系统硬件(内存,系统总线等)检测: (b) 加载内核引导程序:读取主引导记录MBR(

Linux系统启动过程详解

 Linux系统启动过程详解 启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了. 启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

为什么要有uboot?带你全面分析嵌入式linux系统启动过程中uboot的作用

1.为什么要有uboot 1.1.计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统.典型的计算机系统有:PC机(台式机+笔记本).嵌入式设备(手机.平板电脑.游戏机).单片机(家用电器像电饭锅.空调) (2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同.但是所有的计算机系统运行时需要的主要核心部件都是3个东西: CPU + 外部存储器(Flash/硬盘) + 内部存储器(DDR SDRAM/SDRAM/SRAM) 1.2.PC机的启动过程 (1)部署:典型的PC

Linux基础篇之三系统启动过程

Linux 系统启动过程 Linux系统启动时,我们会看到许多启动信息,其实过程并不复杂,大致可以分为6个阶段: ·内核的引导 ·运行init ·运行级别 ·系统初始化 ·建立终端 ·用户登录系统 内核引导 当计算机打开电源后,首先是BIOS的开机自检,按照BIOS设置第一启动项来启动,默认一般是硬盘启动. 操作系统接管硬件,之后读入/boot目录下的内核文件. 运行init init进程是系统所有进程的起点,是系统所有进程中的父进程,也是系统启动时第一个需要启动的进程.没有这个进程,系统的其他

详解linux系统的启动过程及系统初始化

一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)-->主引导设置加载其 BootLoader-->Kernel初始化-->initrd—>/etc/init进程加载/etc/inittab,其进程流 程图如下: 二.剖析详细启动过程 ⑴. POST开机自检:电脑主机打开电源的时候,随后会听到滴的一声,系统启动开始了开机

Linux系统启动过程介绍

Linux系统启动过程介绍 学习操作系统有必要了解一下系统的启动过程,这样在面对各种系统故障的时候能快速定位解决问题,下面以Centos来分析linux系统的启动过程. 1.BIOS自检:当开机的时候,系统进行bios自检工作,当识别出第一块硬盘(IDE SCSI)及其空间之后,系统控制将从BIOS传递到引导装载程序 2.引导装载程序(grub lilo):装载第一块硬盘的前512个字节的物理数据扇区即主引导区MBR到内存中,位于此扇区开始位置的引导装载程序将接管系统控制. (也可以这么理解,在

Linux系统启动过程,grub重装。

今天来了解下Linux的启动过程,以及内核的组成,让我们动手制作一个小linux. 启动过程: POST-----Bootloader(这里分为两段1.磁盘的前446字节,2./boot/grub)------kernerl--------挂载根文件系统为只读--------/sbin/init------inittab设定默认级别 -------/etc/init/rcS.conf--------/etc/rc.d/rc.sysinit 执行系统初始化脚本,启动和关闭默认级别的服务,重新挂载根