Linux系统启动详解(一)
本篇主要以Centos为例,讲述整个Linux系统启动过程,包括了grub引导,initramfs流程,/sbin/init执行rc.sysinit及rc的大体流程。
另外,本篇有一个实例来说明,将整个操作系统运行在内存的实例(系统默认是使用一块物理磁盘存储操作系统)。
1 概述
Linux系统从软件角度,启动大致过程如下:
1) 硬件及BIOS加载,通过启动项找到MBR,读取MBR中的boot loader,即我们常用的grub工具。
2) boot loader,通过(如grub.conf)指定的root设备,加载kernel(vmlinux)、initramfs,并运行initramfs中的init。
3) 切换到真正的root fs,执行/sbin/init,执行rc.sysinit。
4) 执行/etc/rc3.d下服务脚本。
关于rootfs是什么,参考文档[1]描述得比较易懂。
[1]: 什么是根文件系统(rootfs)http://www.crifan.com/what_is_root_filesystem/
2 grub
grub的启动参数,如title,timeout等,google一搜一大把,就不在此说明。
关于grub还有一个作用,就是启动内核时,向内核传递参数,如我们常见的root=…,就是向内核传递真正的root fs所在的设备,即root device。
其它可向内核传递的参数,具体在参考内核源码目录中有文档说明其作用:Documentation/kernel-parameters.txt(以内核src.rpm来说,安装源码包后,其内核源码在/root/rpmbuild/BUILD/kernel-2.6.32-71.el6/linux-2.6.32-71.el6.x86_64/)。
其作用相当于修改/proc/sys/kernel/下的对应参数值,以/proc/sys/kernel/panic为例。
[root@localhost ~]# cat /proc/sys/kernel/panic
[root@localhost ~]# vim /boot/grub/grub.conf
……
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-71.el6.5.vsds.x86_64 ro root=UUID=212c95a4-56d0-44fc-93ce-73b5f3e8cf2a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us panic=2
initrd /boot/initramfs-2.6.32-71.el6.5.vsds.x86_64.img
……
[root@localhost ~]#reboot
[root@localhost ~]# cat /proc/sys/kernel/panic
更多说明,参见资料[2]。
[2]: linux 内核可接受的参数| 通过grub给内核传递参数
下节将跟小伙伴们来说说initramfs那些事,和本人通过简单修改initramfs将系统从运行在磁盘,修改为运行到ramdisk中。
Linux系统启动详解(一)的更多相关文章
- Linux基本配置和管理 4 ---- Linux系统启动详解
1 系统启动的流程 BIOS -> MBR+boot code -> 执行引导程序: GRUB -> 加载内核 -> 执行init -> 运行runlevel 2 启动详 ...
- Linux学习之CentOS(二十一)--Linux系统启动详解
在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...
- Linux系统启动详解(二)
上节讲到了Linux启动大体流程,及grub的作用,本节主要扯扯initramfs的那些事,并且通过简单修改initramfs,将整体操作系统运行到了内存中. 3 initramfs 3. ...
- Linux系统启动详解
系统启动流程 通过下图认识下Linux系统的总体启动流程. BIOS BIOS一般负责检查硬件和查找启动设备. MBR:Boot Code MBR只是一段引导代码,真正的引导是由引导程序去执行的. G ...
- Linux入门-8 Linux系统启动详解
系统启动流程 BIOS MBR GRUB KERNEL INIT 单用户修改root密码 GRUB加密 系统启动流程 BIOS MBR: Boot Code 执行引导程序 - GRUB 加载内核 执行 ...
- Linux系统启动详解(三)
上节已系统initramfs已启动完成,将系统控制权交给了真正的rootfs的/sbin/init,下面就是/sbin/init干活的时间了. 4 /sbin/init initramfs ...
- Linux init详解(转)
Linux init详解 一.什么是INIT: init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初 ...
- (转)Linux PS 详解
原文:https://cn.aliyun.com/jiaocheng/162702.html 摘要:原文地址:http://www.cnblogs.com/wangkangluo1/archive/2 ...
- Linux 目录详解 树状目录结构图
1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/ ...
随机推荐
- Maven学习(五)-----如何从Maven远程存储库下载?
如何从Maven远程存储库下载? 根据 Apache Maven 的说明: Downloading in Maven is triggered by a project declaring a dep ...
- The filename 未命名.ipa in the package contains an invalid character(s). The valid characters are: A-Z, a-z, 0-9, dash, period, underscore, but the name cannot start with a dash, period, or underscore
The filename 未命名.ipa in the package contains an invalid character(s). The valid characters are: A-Z ...
- Zigbee系列(end device)
End device设备分为睡眠和非睡眠两种(RxOnWhenIdle标记不同). 入网时的association请求,会使用这个标记. 共同特性 子节点多次发送数据失败(无回应),发送孤点扫描(re ...
- Twitter推广消息可使品牌线下销售额增长三成
新浪科技讯 北京时间8月9日上午消息,Twitter周四宣布,该公司的推广消息(Promoted Tweet)可以让品牌的线下销售增长29%. 此外,Twitter当天还推出了一个新项目,让品牌可以追 ...
- AutoCAD2015激活码和密钥
CAD2015序列号和密钥 序列号: 666-69696969 产品密钥: 001G1 序列号: 356-72378422 产品密钥: 206G1 安装说明 ...
- ffmpe安装
原文:https://www.jianshu.com/p/905df3d9e753 下载安装 下载最新源码包并解压 $ wget http://ffmpeg.org/releases/ffmpeg-3 ...
- 冲刺ing-2
第二次Scrum冲刺 队员完成的任务 队员 完成任务 吴伟华 分配任务 蔺皓雯 编写博客,查阅资料 蔡晨旸 查阅资料 曾茜 暂无 鲁婧楠 暂无 杨池宇 暂无 成员遇到的问题 队员 问题 吴伟华 暂无 ...
- 关于jsp之间href传参(中文)乱码问题
在A.jsp中有href传值 <a href=\"6.jsp?param="+rs.getString(2)+"\">" 在B.jsp中使 ...
- Alpha事后诸葛会议
[设想和目标] Q1:我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? "小葵日记"是为了解决18-30岁年轻用户在记录生活时希望得到一美体验友好 ...
- swift - tabBar图片设置的一些注意点
图片大小尺寸 刚刚开始接触的话,从美工那边拿来的图标大小一般都是偏大的,就像这样: 在此建议,tabBar的图标大小可以是32*32,个人感觉效果不错 图片的颜色问题 如上图所示,该图标的期望颜色(也 ...