菜鸟笔记
提升您的技术认知

Linux启动过程

Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。

Linux系统启动过程:

  • 第一步:开机自检,加载BIOS

  • 第二步:读取MBR  硬盘0柱面0磁道1扇区的前446byte

  • 第三步:Boot Loader grub引导菜单   cat /etc/grub.conf

  • 第四步:加载kernel内核

  • 第五步:运行init进程(读取/etc/inittab文件来设定运行级别,执行/etc/rc.d/rc.sysinit等脚本,执行不同运行级别的脚本程序/etc/rc.d/rc脚本)

  • 第六步:执行/bin/login程序,启动mingetty,进入登录状态

如下图:

Linux启动过程

其中,BIOS的工作是检查计算机的硬件设备,如CPU、内存和风扇速度等;

  • MBR会在启动盘的第1个块中,大小为512B。其中前446中的程序代码是用来选择boot partition(分区),也就是由哪个分区来装入开机用的代码,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查;

  • 在kernel内核部分主要是装机计算机设备的驱动程序以便操作系统可以控制计算机上的设备。并且以只读的方式挂载/(根)文件系统,也就是此时的操作系统只能读到根文件系统(目录)所在的分区;

  • init程序的进程id为1,即Linux操作系统第1个执行的程序。

1、BOIS的初始化和引导加载程序

掌握BIOS的定义:BIOS(Basic Input/Output System)(基本输入/输出系统的缩写),它是硬件与软件之间的接口,而且是非常基本的接口。

2、GRUB程序和grub.conf文件

掌握GRUB的定义:GRUB是Grand Unified Bootloader(多重操作系统启动管理器)的缩写。

掌握grub的配置文件为:grub.conf

3.设置grub Md5加密命令 grub-MD5-crypt

Password = 明文或 password --md5 密文(编辑grub配置文件的密码)

Title red hat 标题

Password = 明文或 password --md5 密文(加载内核系统引导必须的密码)

内核的初始化和init的初始化

  • 掌握init的配置文件为:/etc/inittab

  • 了解init程序要做的工作:

  • 决定预设(默认)要使用哪个run levels(运行级别)。

  • 执行一些系统初始化的脚本(程序)来初始化操作系统。

  • 根据run level的设置来执行所对应目录中的程序,以决定要启动哪些服务。

  • 设定某些组合键。

  • 定义UPS不间断电源系统,即当电源出现问题时或电源恢复时要执行哪些程序。

  • 产生6个virtual consoles,也就是tty1~tty6

run levels(运行级别)

所有的运行级别及每一个运行级别对应的功能:

run level

功能

0

系统停机状态,不能设置为initdefault即系统默认运行级别不能设为0,否则不能正常启动

1

单用户工作状态,root权限,用于系统维护,禁止远程登陆

2

多用户模式(没有NFS),但是没有启动网络功能

3

多用户模式(有NFS),启动了网络功能,但是为文字界面,登陆后进入控制台命令行模式

4

系统未使用,保留,用户自定义模式,默认与run level 3相同

5

与run level 3相同,并且启动了X11(即图形界面),登陆后进入图形GUI模式。

6

重新启动系统,不能设置为initdefault,否则不能正常启动


常用的可以关闭系统的命令:

  • shutdown -h now
  • halt
  • poweroff
  • init 0

常用的可以重启系统的命令:

  • shutdown -r now
  • reboot
  • init 6
  • Ctrl+Alt+Delete键
  • Tips

init程序的类型:

  • SysV: init, CentOS 5之前, 配置文件: /etc/inittab。
  • Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。

  • Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。

用户的登录方式有三种:

  • 命令行登录

  • ssh登录

  • 图形界面登录