linux系统启动流程
BIOS:
- (Basic Input Output System)基本输入输出系统,一般保存在主板上的BIOS芯片中
- BIOS是计算机启动时运行的第一个程序,负责检查硬件并且查找可启动设备。
- 可启动设备在BIOS设置中进行定义,如USB、CDROM、HD.
MBR:
- 大小为512字节,
- BIOS找到可启动设备后执行其引导代码,引导代码为MBR的前446字节,因为他的容量很小,不可能完成对操作系统的所有引导工作,因此,它主要完成的是一个跳转的功能,具体的引导程序在GRUB中。
GRUB:
- 它是现在linux使用的主流引导程序,可以用来引导现在几乎所有的操作系统。
- grub的相关文件保存在/boot/grub目录中,配置文件为/boot/grub/grub.conf。
- /boot/grub/grub.conf==> stage1 512字节,是MBR的镜像文件,可用于备份 ==> xxx_stage1_5,加载对文件系统的支持,==> stage2 ==> 内核
配置文件中内容如下:
default=0——默认采用第一个配置
timeout=0——在开机的引导画面上等待的时间,该设置为0秒
splashimage=(hd0,0)/grub/splash.xpm.gz——引导界面的背景,使用的一个.xpm.gz格式的图片,可自己手动定制。
hiddenmenu——隐藏菜单栏
配置格式如下:
title Fedora (2.6.35.13-92.fc14.i686.PAE)——开机引导画面上显示的名称,可随意设置
root (hd0,0)——操作系统所在的分区,该配置为第一块硬盘的第一个分区
kernel /vmlinuz-2.6.35.13-92.fc14.i686.PAE(内核文件) ro (参数,只读)root=/dev/mapper/vg_embedclub-lv_root (告诉引导程序根分区所在位置)rd_LVM_LV=vg_embedclub/lv_root rd_LVM_LV=vg_embedclub/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.35.13-92.fc14.i686.PAE.img——内核模块打包文件
KERNEL:
- MBR的引导代码将负责找到并加载linux内核,一般还会加载内核模块打包文件:initrd /initramfs-2.6.35.13-92.fc14.i686.PAE.img
- linux为保持kernel的精简将一些不常用的驱动、功能编译为模块,在需要的时候动态加载,而这些模块被打包保存为一个initramfs文件。
- 早期版本的linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间,更加灵活。
- 命令dmesg可以查看本次启动时内核的输出信息,也可以通过/var/log目录下的dmesg进行查看。
INIT:
- linux系统中运行的第一个进程,是所有进程的父进程,会在操作系统的整个运行过程中一直存在,直到系统关机。top 命令可以查看PID,其中1为init
- 调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务。
- linux运行级别:
0 关机
1 单用户模式:该模式下不启动任何服务,并且直接以root用户登录(不需要密码)。在启动界面中为内核kernel传递参数“1”(数字1)或“single”可让系统进入单用户模式,在该模式下可以使用passwd修改root密码,而且并不需要知道以前root的密码(用于在忘记root密码时,重新设置root密码)。
2 不带网络的多用户模式
3 多用户模式
4 未使用
5 xll 图形化多用户
6 重新启动
- 可以通过/etc/inittab配置文件修改默认的运行级别,init中的其他配置文件保存在/etc/init目录下。所以init一共有两个配置文件目录:/etc/inittab和/etc/init
每个级别对应的启动服务保存在/etc/rc.cd/tc[0123456]中
命令runlevel可显示当前及上一个运行级别
命令init可以改变当前运行级别
linux系统启动流程的更多相关文章
- linux基础-附件1 linux系统启动流程
附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...
- Linux系统启动流程及安装命令行版本
Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...
- 【转载】Linux系统启动流程
原文:Linux系统启动流程 POST(Power On Self Test/上电自检)-->BootLoader(MBR)-->Kernel(硬件探测.加载驱动.挂载根文件系统./sbi ...
- Linux系统启动流程及grub重建(1)
日志系统 Linux系统启动流程 PC: OS(Linux) POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel--& ...
- Linux 入门记录:十八、Linux 系统启动流程 + 单用户修改 root 密码 + GRUB 加密
一.系统启动流程 一般来说,Linux 系统的启动流程是这样的: 1. 开机之后,位于计算机主板 ROM 芯片上的 BIOS 被最先读取,在进行硬件和内存的校验以及 CPU 的自检没有异常后, BIO ...
- Linux系统启动流程(重要!)
Linux系统启动流程 从上至下为: BIOS MBR:Boot Code 执行引导程序-GRUB(操作系统) 加载内核 执行init run level 1.BIOS(Basic Input ...
- Linux系统启动流程分析
作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...
- linux 系统启动流程
原著资料网址:http://wenku.baidu.com/view/414127fdf705cc1755270997.html (版权归原作者所有) Linux系统的启动分5个阶段,每个阶段都完成不 ...
- [ 总结 ] Linux系统启动流程
Linux系统启动过程分析: 按下电源 --> BIOS自检 --> 系统引导(lilo/grub) --> 启动内核 --> 初始化系统 --> 用户登录 1. BIO ...
- Linux系统启动流程与系统目录
启动流程 # 1,开机BIOS自检 检查一系列的硬件,最后根据启动顺序启动,是硬盘还是光驱等 # 2,MBR引导 读硬盘0柱面0磁道1扇区的前446字节 1扇区=512字节 MBR=4446字节 四个 ...
随机推荐
- ubuntu 设置IP,设置网关
1. 检验是否可以连通,就使用ping命令ping 网关 开始的时候总是现实unreachable 2. 设置IP sudo ifconfig eth0 133.133.133.190 netmask ...
- linux安装问题
java: cannot execute binary file问题 主要原因是 linux系统是32位的,jdk版本是64位的. 补充知识: 1.查看linux位数: #uname -a 如果有x8 ...
- iOS 修改网络图片的大小 宽和高
//image宽和高 好用 NSString *strTemplateHTML = [NSString stringWithFormat:@"<html><head> ...
- Oracle 基础 <2> --函数
一:函数的定义 函数是用于返回特定数据的PL/SQL程序块 (函数必须返回一个值) 语法: create [or replace] function function_name--函数名称 [(par ...
- 解决ThinkPHP开启APP_DEBUG=>false时报错的问题
最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 “页面调试错误,无法找开页面,请重试”的错误,我就郁闷啦,明明本地设置define('APP_D ...
- cordova在app内部指定浏览器打开链接插件:cordova-plugin-inappbrowser
原文网址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/cordova-plugin-inappbrowser/ 要想App里边的 ...
- 怒刷DP之 HDU 1260
Tickets Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- 剑指Offer01 杨氏数组寻值
/************************************************************************* > File Name: 001.c > ...
- hdu 2295 DLX
思路:裸的DLX重复覆盖 #include<set> #include<cmath> #include<queue> #include<cstdio> ...
- python 3.3.2 爬虫记录
网络上大部分关于python爬虫的介绍以及代码讲解,都用的是python2.7或以下版本,用python3.x版本的甚少. 在python3.3.2版本中,没有urllib2这个库,也没有cookie ...