Linux启动流程

简介:

POST->BIOS(Boot Sequence)->MBR(bootloader,446bytes)->Kernel(initrd)->(rootfs)/sbin/init

1、加电自检(PowerOnSelfTest)

开机自动映射rom中程序到cpu可以寻址的空间中,cpu执行指令检查基本硬件是否正常

2、BIOS(Boot Sequence)

如果正常则按照CMOS中保存的BootSequnece依次寻找对应设备上的MBR

3、MBR(BootLoader)

读取第一个MBR存在的设备中的BootLoader,并交与其控制权。

Linux下的常见BootLoader有两种:

   LILO: LInux LOader    不能引导1024柱面以后的分区内核(嵌入式)

   GRUB: GRand Unified Bootloader

GRUB是个程序,装在MBR的BootLoader当中来引动操作系统,但因为MBR空间有限,无法展示其特性,所以将GRUB分为2阶段程序

Stage1(被装载MBR当中)          主要目的是为了引导第二阶段

Stage1.5(/boot/grub/Stage1_5)  识别常见不同类型的文件系统

Stage2(/boot/grub/Stage2)      引导操作系统(突破了446字节的限制)

                              并借助配置件/boot/grub/grub.conf

/boot/grub/grub.conf配置文件作用

default=0#    设定默认启动的title编号

timeout=5#    等待用户选择的超时时长

splashimage=(hd0,0)/grub/splash.xpm.gz    grub的背景图片

hiddenmenu    隐藏菜单

passwordredhat    定义明文密码

password --md    定义密文密码 生成密文命令grub-md5-crypt修改grub需要密码

title Red Hat Enterprise Linux Server (2.6.18-238.el5)    内核标题或操作系统标题

root (hd0,0)    内核文件所在设备所有硬盘类型一律为hd(磁盘,分区)

kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

               内核文件路径,以及传递内核的参数cat /proc/cmdline

password --md      定义密文密码 生成密文命令grub-md5-crypt 启动此内核需要密码

initrd /initrd-2.6.18-238.el5.img    ramdisk文件路径;操作系统安装最后一步生成的

4、Kernel

设备探测

驱动初始化(可能会从initrd(RHEL6 initramfs)文件中装载驱动模块)

   向内核提供基本驱动能力,此后内核可以访问根文件系统,等待内核丰满之后,逐渐失去作用

以只读挂载根文件系统

装载第一个进程init

5、init(etc/inittab)

/sbin/init    其配置文件(etc/inittab)

   RHEL6.0    upstart    ubuntu    开源项目    并行启动很多进程/etc/init/

   systemd                                  更加快

/etc/inittab    主要任务

   1、设定偶人运行级别

   2、运行系统初始化脚本

   3、运行制定运行级别目录下的脚本

   4、设定Ctrl+Alt+Del组合键的操作

   5、定义UPS电源在电源故障/恢复时执行的操作

   6、启动6个虚拟终端(2345级别)

   7、启动图形终端(5级别)

id:runlevels:action:process

   id标示符

   runlevels在那个级别运行此行

   action什么情况下执行此行

       initdefault设定默认运行级别

       sysinit系统初始化

       wait等待级别切换至次级别时执行

       respawn一段程序终止再重新启动

       ctrlaltdel重启

       powerfail停电

       powerokwait电又来了

   process要运行的程序

si::sysinit:/etc/rc.d/rc.sysinit    主要功能

   1、激活udev和selinux

   2、根据/etc/sysctl.conf文件,来设定内核参数

   3、设定时钟时钟

   4、装载键盘映射

   5、启用交换分区

   6、设置主机名

   7、根文件系统检测,并以读写方式重新挂载

   8、激活RAID和LVM设备

   9、启用磁盘配额

   10、根据/etc/fstab,并检查挂载其他文件系统

   11、清理过期的锁和PID文件

/etc/rc.d/rc.local系统最后执行的一个脚本,不是特别麻烦的操作,不希望做成服务的可以在这里声明。



本文转自 ftmoonfans  51CTO博客,原文链接:http://blog.51cto.com/soulboy/1266162


相关文章
|
消息中间件 Unix Linux
Linux进程间通信(IPC)介绍:详细解析IPC的执行流程、状态和通信机制
Linux进程间通信(IPC)介绍:详细解析IPC的执行流程、状态和通信机制
695 1
|
2月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
158 8
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
10月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
监控 安全 Java
linux服务器上启动framework应用程序流程
【10月更文挑战第17天】在Linux服务器上启动Framework应用程序需经过准备工作、部署、启动、监控及访问五个步骤。首先确保服务器满足系统要求并安装依赖项;接着上传应用文件,编译构建,配置参数;然后通过脚本、命令行或系统服务启动应用;启动后检查日志,监控性能;最后确认访问地址,验证应用运行状态。具体操作应参照应用文档。
170 2
|
监控 Java Linux
linux服务器上启动framework应用程序流程
【10月更文挑战第18天】在 Linux 服务器上启动框架应用程序的流程包括:准备工作(确保访问权限、上传部署文件、了解启动要求)、检查依赖项、配置环境变量、切换到应用程序目录、启动应用程序、监控启动过程以及验证应用程序是否正常运行。具体步骤可能因应用程序类型和框架而异。
107 0
|
网络协议 Linux 网络安全
在Linux中,我们都知道FTP协议有两种工作模式,它们的大概的⼀个工作流程是怎样的?
在Linux中,我们都知道FTP协议有两种工作模式,它们的大概的⼀个工作流程是怎样的?
|
缓存 网络协议 Linux
在Linux中,当用户在浏览器当中输入⼀个网站,计算机对dns解释经过那些流程?
在Linux中,当用户在浏览器当中输入⼀个网站,计算机对dns解释经过那些流程?
|
算法 Linux 调度
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
763 1
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
|
大数据 Linux 程序员
软件开发常见流程之服务器+Linux部署项目,会用服务器+Linux部署项目资料
软件开发常见流程之服务器+Linux部署项目,会用服务器+Linux部署项目资料