linux启动

计算机启动后,BIOS会先进性POST自检(Power On Self Test ),自检通过后会将MBR主引导记录加载至内存,MBR会查找活动分区上的次引导加载程序GRUB至内存,GRUB根据用户选择,加载相应的内核映像,在内核引导的过程中,会加载必要的系统模块,用以挂载根文件系统,内核启动完成后,会启动init进程,并将引导控制权交由init进程,init进程会加载/etc/fstab中所设置的所有文件系统,并根据/etc/inittab来执行相应的脚本进行系统初始化,至此,linux启动完毕,用户可以登录。

MBR是一个512字节大小的扇区,位于硬盘第一个扇区,:

dd if=/dev/sda of=tmp bs=512 count=1

次引导加载程序也叫内核加载程序,一旦被加载到内存中,会显示GRUB图形界面,用户可以选择相应内核,如果不选择,5秒后会启动grub.conf中配置的默认操作系统。

GRUB配置文件:

/boot/grub/grub.conf
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-504.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=b62a7ae8-ed63-4f26-842a-37ef9efa96e4 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-504.el6.x86_64.img

default:GRUB默认启动的操作系统,从0开始

timeout:默认等待时间

splashimage:背景图片

hiddenmenu 隐藏启动菜单,超过等待时间后,GRUB会自动启动默认系统,在此期间内,按下任意键可进入系统选择菜单

title:至下一个title选项前的内容都是用于设置同一操作系统,title设置GRUB中的名称,root内核所在磁盘分区,kernel内核文件名称,ro表示只读。

内核文件命名格式:

/boot/vmlinuz-2.6.32-504.el6.x86_64

内核取得控制权后会首先检测硬件设备,其次内核映像并不是一个可执行的内核,而是经过压缩的内核映像,药对自身解压,同时加载必要的驱动。3,初始化与文件系统相关的虚拟设备,如:LVM或软RAID。4,装在根文件系统,并挂载到根目录下,5,完成引导后,会在其进程空间加载init程序,并将控制权交由init进程,由init进程继续完成系统引导工作

init进程是linux所有进程的起点,内核完成引导后便会加载,进程号为1,init进程启动后,会初始化操作系统,并启动特定的运行级别下的自动运行程序。

init进程对应的执行文件:/sbin/init,是系统所有进程的发起者和控制者,所有进程都由它衍生,如果init出现问题,系统中其他进程也会随之受影响。

init进程作用:

1,作为所有进程的父进程参照对象

2,运行不同级别的程序

init进程取得控制权后,首先会执行/etc/rc.d/rc.sysinit脚本,接着会执行/etc/inittab脚本,该脚本定义了linux运行级别,及每个级别对应的引导步骤。

# 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)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

0:关机,1:单用户模式,2:多用户但没有NFS服务,3:完整多用户模式,4:未使用,5:图形界面,6:重启

具体运行哪个级别是有id<>:initdefault定义的,每个级别运行的服务脚本文件都分别存放在7个名为/etc/rc.d/rcN.d的目录下。

时间: 2024-10-23 05:53:01

linux启动的相关文章

Linux启动过程笔记

Linux启动过程 1.启动流程(BIOS->MBR:Boot Code->引导GRUB->加载内核->执行init->runlevel) 2./boot/grub/下有多个文件   其中stage1为MBR镜像(512字节) stage2为引导程序 3./boot/grub/grub.conf为引导的配置文件 default=0#默认加载下边哪个系统 timeout=3#引导等待时间 splashimage=(hd0,1)/boot/grub/splash.xpm.gz#引

FS_V210开发平台下Linux启动logo的修改

作者:朱老师,华清远见嵌入式学院讲师. 一.开发平台 主机:ubuntu 12.04 系统: 目标机:FS210 平台: 内核版本:Linux-3.0.8 交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc: 二.步骤 运行Ubuntu 12.04系统,打开命令行终端. $ cd ~              $ cd driver              $mkdir logo              $ cd logo 将"fs210光盘:实验资料\4. Lin

linux基础:5、linux启动过程

linux启动过程 1.BIOS(basic in out system) 通电检查硬件,然后加载第一可用启动项的mbr: #可通过BIOS设置各种介质存储设备的启动顺序,比如:cdrom.disk.usb 2.MBR(main boot recorder) 磁盘的第一个扇区,共512字节,446字节的boot程序空间,64字节的分区表,2字节的校验位. 执行MBR内保存的boot loader程序,一般为GRUB,通过GRUB来找到kernel和initrd(centos6里面此文件更名)并将

Linux启动过程

Linux启动过程 传说]散人--南宁1,开机,读取BIOS并进行自我检测2,透过BIOS取得第一个开机装置,读取MBR取得开机管理程序3透过开机管理程序,取得KERNEL(内核)加载内存且侦测系统硬件4核心计动呼叫INIT的程序5INIT程序开始执行系统初始化6依据INIT的程序进行daemon start7加载本机设定 22:19:25[传说]Ed1 2015/1/20 22:19:25 启动第一个程序init,读取配置文件fstab22:20:37[传说]散人--南 2015/1/20 2

arm linux 启动之二:start_kernel到创建1号进程

本文介绍arm linux启动的第二部分,C语言编写,主要讲述start_kernel到1号进程的创建.主要讲述大概过程,以后再对子函数进行讲解. 一.start_kernel start_kernel位于init/main.c,主要完成linux一些子系统的初始化. 1)smp_setup_processor_id() 单CPU位为空. 2)lock_kernel() 锁CPU,linux是支持抢占的,多CPU时调用这个函数防止其他CPU抢占.3)tick_init() 时间相关初始化4)bo

Linux启动简单分析

1. 概述 从Bootloader至init程序主要过程如下 ++++++++++++++ ++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ | | -> | kernel_entry() | -> | start_kernel() -> rest_init() -> kernel_init() | ============== -> ================== -> =

记录Linux启动流程的工具bootchart

/*********************************************************************  * Author  : Samson  * Date    : 04/28/2014  * Test platform:  *              3.11.0-12-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************

linux 启动分析

一,Linux 启动分析图如下

linux 启动两个tomcat

按照下面的步骤操作即可部署成功:一些具体操作命令就不详细说了,直接说有用的:1.在 /usr/local 下部署两个Tomcat,tomcat的文件夹重命名为:tomcat6-1  .  tomcat6-2 2.修改 linux 的profile文件,文件路径 /etc       在profile 中增加以下内容:[plain] view plaincopyJAVA_HOME=/usr/java/jdk1.7.0_45  CLASSPATH=.:$JAVA_HOME/lib/tools.jar