Linux系统启动流程

这是看LinuxCast的笔记

Linux系统启动流程

Linux系统启动(使用GRUB引导)顺序是

  1. BIOS通电自检,并找到512字节的MBR(是GRUB引导的第一阶段),把控制权交给MBR
  2. GRUB分两个阶段引导系统
    1. 第一阶段MBR中的主引导加载程序加次引导载程序
    2. 第二阶段次引导加载程序加载内核映像
  3. 内核映像创建进第一个进程(init进程),初始化系统的服务

接下来我们详细介绍各个过程

BIOS

BIOS(Basic Input Output System). 计算机启动的时候第一个运行的就是BIOS, BIOS负责检查硬件并且查找可启动的设备

常见启动设备在BIOS设置中进行定义,如USB,CDROM.. 在找到启动设备后,BIOS就把控制权交给启动设备的主引导程序。

GRUB

GRUB分两个阶段来引导内核

第1阶

第一阶段主要由MBR中的主引导程序完成的,这里我们先介绍一下MBR

MBR(Master Boot Record)即主引导记录, 又叫做主引导扇区. 它共有512字节,主要功能是查找并加载次引导加载程序(第二阶段).

由三部分组成:

  • 446字节的引导程序.
  • 4个16字节的DPT(磁盘分区表)
  • 2字节的结束标志(0x55AA),BIOS正是通过这两个字节来辨别启动设备

在第一阶段后,MBR可以直接进入第2阶段.但也可以在进行第2阶段之前,加载一个程序用来理解Linux内核的特殊文件系统.

第1.5阶段

加载对文件系统的支持文件,在CentOS下, /boot/*_stage1_5 就是各种文件的支持,MBR根据配置来加载文件系统支持

第2阶段

进入第2阶段后,它后根据GRUB的配置文件,呈现一个界面区来让用户选择启动的操作系统

GRUB的配置文件和位置系统的不同而不同.在CentOS中,GRUB的配置文件是在 /boot/grub/grub.conf中,下面让我们来仔细研究一下grub.conf

GRUB的配置

以下是CentOS的grub.conf(去掉前面的一些注释)

default=0 # 采用默认的0配置
timeout=5 # 开机的时候等待几秒让你选择
splashimage=(hd0,0)/boot/grub/splash.xpm.gz #引导界面的背景图片
hiddenmenu #默认隐藏菜单栏
title CentOS (2.6.32-279.el6.x86_64) #启动项的标题
root (hd0,0) #操作系统所在的分区

#以下是要启动的内核的配置
kernel /boot/vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=887b0b9e-449b-414e-a11d-cd94093e3fe1 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 console=tty0 console=ttyS0,9600n8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet

#以下是内核模块
initrd /boot/initramfs-2.6.32-279.el6.x86_64.img
		

我们可以通过修改grub.conf来配置启动项, 我们可以通过dmesg来查看本次启动的信息

在kernel启动后就创建了Linux系统中运行的第一个进程init

init

init是Linux系统中运行的第一个进程,是Linux所有进程的进程,它的pid是1

init负责调用/etc/rc.d/rc.sysinit负责对系统进行初始化,持载文件系统,并且根据运行级别来启动相应的服务

Linux的运行级别

运行级别特点及功能
0关机
1单用户模式
2不带网络的多用户模式
3多用户模式
4未使用
5X11图形化模式
6重启

以下是INIT的一些知识点

  • 可以通过/etc/inittab 和 /etc/init 的配置文件修改默认的运行级别
  • 每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中
  • 命令runlevel可显示当前及上一个运行级别
  • 命令init可用来改变当前运行级别

实用技巧

单用户修改ROOT密码

可以通过在启动进入grub的界面时,编辑grub来进行单用户模式,具体步骤如下

  1. 开机时编辑grub,为内核传递参数"l"或者"single"
  2. 单用户直接以root用户登陆
  3. 用password修改root密码

GRUB加密

GRUB加密是为了,让有权限的人编辑GRUB,具体步骤如下

  1. 用grub-md5-crypt生成密文
  2. 通过在grub. conf上的启动配置下加入如下参数即可以对grub进行加密
  3. password --md5 你生成的密文

参考资料

转载请注明出处--nothi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值