Linux引导过程的基本指南

在本文中,我们将介绍Linux操作系统中的启动过程。我们将看到操作系统如何通过不同的启动状态阶段。

如我们早期的帖子中所承诺的,在这篇文章中,我们将回顾Linux操作系统中的启动过程。 操作系统如何通过不同的引导状态阶段。 本文是为那些刚刚在Linux世界中的步骤的读者编写的。 了解Linux如何启动对于系统故障时的有效故障排除非常重要。 当系统打开,几分钟后,我们得到一个登录提示。 我们尝试找出启动顺序的所有阶段,以及在系统启动过程中发生了什么事情。

Linux引导过程

Linux引导加载程序进程

打开

  1. BIOS( 基本输入输出系统 )是一个软件程序预装内置了主板芯片组。
  2. BIOS加载和扫描设备,如硬盘 ,CD-ROM,RAM等。
  3. 对于MBR BIOS搜索( 主引导记录 :1扇区)主硬盘驱动器,它扫描第一阶段装载程序(在我们的案例引导加载程序是(GRUB LILO),并移交责任MBR。
  4. 引导PROM / FLASH / BIOS是精通加载MBRRAM中并执行它。

MBR(主引导记录)

  • 512个字节的空间- > MBR
  • MBR包含了大多数的操作系统如UNIX,LinuxWindows的加载器的信息
  • MBR持有装载机第一阶段的小二进制信息
  • MBR是由第一个磁盘驱动器(即512字节 )的物理扇区,它不是任何分区的一部分。
  • 放置在主磁盘驱动器上,在轨道的第一汽缸的主要扇区中是0并且磁头是0(该整个路径通常被预订用于引导程序)
  • MBR涉及一个微型可执行程序和一个表指定主分区。
Boot Code (GRUB) 446 bytes
partition 1: 16 bytes
partition 2: 16 bytes
partition 3: 16 bytes
partition 4: 16 bytes
magic Number: 2 bytes
  1. MBR也记录哪个主分区处于活动状态
  2. BIOS的移交权利至第一阶段引导加载程序,然后将扫描分区表,发现上配置为可引导分区第二阶段引导加载器。

引导加载程序

  1. 引导加载程序的第一阶段装载器并加载本身到RAM称为。 所有这一切都以毫秒为单位。
  2. 默认的阶段2的引导加载程序是GRUB( 大统一的Boot Loader)LILO(Linux加载)
  3. 一旦GRUB加载到RAM中 ,那么它的搜索内核的位置。
  4. GRUB将密切关注映射文件,找到内核映像,位于下(/启动 )并加载它。
  5. GRUB从/ boot分区加载内核(vmlinuz-版

琐事1

GRUB组织RAMDISK对于initrd - >(RAMDISKRAM预留空间)。 此外,它的initrd驱动到RAM中准备的内核装载自己入内存,并依赖模块,因此,它可以让系统“ 初始化 ”的过程

在,Linux的大部分车手都预先编译成模块,这些将是初始RAM驱动器(initrd.img中 ),它可以让更多的模块的所有的信息。 所以,当内核启动,它会创建RAMDRIVE,加载的initrd.img及其依赖的模块。

GRUB读取/boot/grub/grub.conf文件及向我们展示了用于选择操作系统一个干净的界面

一旦内核加载其依赖的模块,然后将其交给“ 初始化 ”的过程。 内核映像有一个小的,解压缩的程序,解压缩内核并运行它。

琐事2

LILO需要指出的MBR,以找到在硬盘驱动器上的操作系统。 /etc/lilo.conf文件的任何修改,必须在MBR被更新,但在GRUB的情况下,没有必要更新,它从文件/boot/grub/grub.conf文件可以直接读取。

使得/etc/lilo.conf文件的更改后,我们就必须手动更新MBR

# /sbin/lilo -v

琐事3

GRUB的第二阶段装载程序驻留在MBR中和/ boot分区中。 一旦GRUB加载到内存中成为第二阶段装载。

琐事4

/ initrd的目录不应该被删除它是一个临时占位内核来快速访问它需要启动系统模块包括设备驱动程序的模块。

内核初始化亮点包括:

  1. 初始化CPU组件,例如,MMU
  2. 初始化调度(PID 0)
  3. 在rw模式下安装根文件系统
  4. 叉掉init进程(PID 1)

实质上,内核初始化有两件事情:

  1. 启动共用资源管理器(RAM,处理器和大容量存储器)的核心系统。
  2. 启动一个进程,/ sbin目录/初始化

init进程(sbin目录/ INIT)是加载所有不同的服务程序并安装它在/ etc / fstab中列出的所有分区非常拳头过程

关于/ etc / fstab

  1. / sbin目录/ init读取/ etc / inittab文件
  2. 设置默认运行级别(telinit命令允许管理员告诉init进程改变其当前运行级别)
  3. 呼叫/etc/rc.d/rc.sysinit/etc/rc.d/rc x(其中“X”是一个级别)
  4. /etc/rc.d/rc5.d目录中的文件开头字母K - >杀脚本和文件开头字母S - >启动脚本。
  5. 启动了TTY流程和XDM(X显示管理器)
  6. 启动用户的登录屏幕