这篇文章主要讲解了“Linux开机启动的流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux开机启动的流程是什么”吧!

Linux开机分为以下6个步骤,分别是BIOS, MBR, GRUB, Kernel, Init, RunLevel, RunDefinition。

BIOS

按下电源开关那一刻,开始加载BIOS,并且执行MBR(Master Boot Record)

BIOS表示基本输入输入系统(Basic Input/Output System),完成一些系统的完整性检查、搜索、 加载并且执行引导程序(boot loader), 它在软盘,CD-ROM或者硬盘上寻找引导程序。你可以在 系统启动时按下键盘(通常是F12或者F2,但是因系统而异)来修改启动顺序

一旦引导程序被检测到并且加载到内存,BIOS会将控制权移交给它

MBR

MBR表示主引导记录(Master Boot Record)

用于加载并执行GRUB

GRUB

GRUB是多重引导管理器(GRand Unified Bootloader)

执行 /etc/grub.conf, 加载内核镜像

vim/etc/grub.confdefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitleCentOS6(2.6.32-504.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-504.el6.x86_64roroot=/dev/mapper/vg_ddz-lv_rootrd_NO_LUKSrd_NO_MDrd_LVM_LV=vg_ddz/lv_rootcrashkernel=128M.UTF-8rd_LVM_LV=vg_ddz/lv_swapKEYBOARDTYPE=pcKEYTABLE=usrd_NO_DMrhgbquietinitrd/initramfs-2.6.32-504.el6.x86_64.imgKernel

执行内核首个进程 /sbin/init, 进程号为1, 是接下来所有其它进程的父进程

initrd表示Initial RAM Disk

initrd被内核用作临时的根目录,直到内核启动完成并且真正的根目录挂载成功。 它也包括一些编译好的必要的驱动程序,这些程序有助于它访问硬盘和其他硬件

Init

执行 /etc/inittab, 来确定启动级别

vim/etc/intttab#Defaultrunlevel.Therunlevelsusedare:#0-halt(DoNOTsetinitdefaulttothis)#1-Singleusermode#2-Multiuser,withoutNFS(Thesameas3,ifyoudonothavenetworking)#3-Fullmultiusermode(终端模式)#4-unused#5-X11(图形用户界面)#6-reboot(DoNOTsetinitdefaulttothis)#id:5:initdefault:

执行 /etc/rc.d/rc.sysinit, 来启动系统进程,比如说NetWork

RunLevel

执行启动级别相对应的一系列系统服务

对应启动级别的目录如下

ll /etc/rc.d/

drwxr-xr-x.2rootroot409611月2909:49rc0.ddrwxr-xr-x.2rootroot409611月2909:49rc1.ddrwxr-xr-x.2rootroot40963月1017:18rc2.ddrwxr-xr-x.2rootroot40963月1017:18rc3.ddrwxr-xr-x.2rootroot40963月1017:18rc4.ddrwxr-xr-x.2rootroot40963月1017:18rc5.ddrwxr-xr-x.2rootroot409611月2909:49rc6.dRunDefinition

最后执行 /etc/rc.d/rc.local, 来运行自定义的服务

vim /etc/rc.d/rc.local

1#!/bin/sh2#3#Thisscriptwillbeexecuted*after*alltheotherinitscripts.4#Youcanputyourowninitializationstuffinhereifyoudon't5#wanttodothefullSysVstyleinitstuff.67touch/var/lock/subsys/local8iftest-f/sys/kernel/mm/transparent_hugepage/enabled;then9echonever>/sys/kernel/mm/transparent_hugepage/enabled10fi11iftest-f/sys/kernel/mm/transparent_hugepage/defrag;then12echonever>/sys/kernel/mm/transparent_hugepage/defrag13fi1415/bin/bash/usr/local/apps/kylin/bin/kylin.shstart

其中第15行为自定义启动脚本

Final3

进入登录界面

感谢各位的阅读,以上就是“Linux开机启动的流程是什么”的内容了,经过本文的学习后,相信大家对Linux开机启动的流程是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!