课时21 Linux系统启动详解

时间:2021-04-09 04:31:46

Linux课程学习笔记来源于网易云课堂:Linux 入门基础

1 Linux系统启动流程:

BIOS à MBR: Boot Code(引导代码)à 执行引导程序 - GRUBà 加载内核 à执行inità runlevel

2 BIOS

       BIOS(Basic Input Output System),基本输入输出系统,一般保存在主板的BIOS芯片中

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

       可启动的设备在BIOS设置中进行定义,如USB、CDROM、HD

3 MBR

       BIOS找到可启动设备后执行引导代码

       引导代码为MBR的前446字节

4 GRUB

1)       Grub是现在linux使用的主流引导程序

2)       grub可以用来引导几乎所有操作系统

3)       相关文件保存在/boot/grub中

stage1 MBR

stage1_5  //stage1执行完之后再执行的

stage2  //stage1_5执行完之后再执行的

内核

4)       配置文件为/boot/grub/grub.conf,通过vim显示,#后的是注释语句

5)       配置格式:

default=0         //启动默认配置0

timeout=3        //开机时的,默认时间倒计时,如果不需要,可以改成0

splashimage=(hd0,1)/boot/grub/splash.xpm.gz       //启动时的背景图片,可以自己定制,设置为.xpm格式,放在/boot/grub/目录下

hiddenmenu     //隐藏菜单

title centos       //名字可以随便改

      root(hd0,1)     //启动分区,在第一个硬盘(hd0)的第2各分区下

      kernel /vmlinuz-2.6.32-279.el6.x86_64 roroot=UUID=b18ec4b9-367b-4e76-b180-e7e518f6adf2 rd_NO_LUKS rd_NO_LVMLANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgbquiet

//先启动内核kernel,在/boot/vmlinuz-2.6.32-279.el6.i686目录下。后面的都是参数设置。

initrd /initramfs-2.6.32-279.el6.x86_64.img

5 kernel(内核)

1)       MBR的引导代码将负责找到并加载linux内核

2)       Linux内核保存在/boot/vmlinuz-2.6.32-279.el6.1686

3)       一般还会加载内核模块打包文件:/boot/initramfs-2.6.32-279.el6.i686.img

4)       Linux为了保持kernel的精简,将一些不常用的驱动、功能编译成模块,在需要的时候动态加载,而这些模块被打包保存为一个initramfs文件。

5)       早期版本的linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间、更加灵活。

6)       命令dmesg可以查看本次启动时内核的输出信息。同样的信息也保存在/var/log/dmesg文件中

6 INIT

内核启动完毕就会运行init进程

1)       init 是linux系统中运行的第一个进程,是所有进程的附进程。

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

3)       linux运行级别:

0  关机

1  单用户模式

2  不带网络的多用户模式

3  多用户模式(没有图形界面)

4  未使用

5  xll图形化多用户

6  重新启动

top 命令可以查看PID,其中1为init

4)       默认的运行级别可以通过文件/etc/inittab 下修改,修改其中的id:5:initdefualt中的数字即可,或者在/etc/init/目录下修改,此目录下有较多的设置文件。

5)       每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中

6)       runlevel 显示当前及上一个运行级别

7)       命令init可以改变当前运行级别,init3 可以切换到3级别

7 单用户修改root密码

1)       为内核传递参数‘1’或者“single”系统进入单用户

2)       单用户模式下不启动任何服务

3)       单用户模式直接以root用户登录,并且不需要密码

4)       可以使用passwd修改root密码

忘记root密码时,可以在启动界面的时候,通过上下键进入pause界面,传递参数‘1’或者“single”系统进入单用户。

8 GRUB加密

       通过启动界面(重新启动,通过物理按键)进入单用户模式,存在安全隐患,需要通过GRUB加密对引导进行加密。

1)       通过在grub.conf中的启动配置中加入如下参数即可对grub进行加密:

Password –md5$1$aoWpTe$/MWUUYbBIF.2RUZK8nbWU0          //$后面的是通过grub进行加密后的密码

2)       加密后的密码可以通过grub-md5-crypt生成