这篇文章主要讲解了“Linux开机启动的流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux开机启动的流程是什么”吧!
Linux开机分为以下6个步骤,分别是BIOS, MBR, GRUB, Kernel, Init, RunLevel, RunDefinition。
按下电源开关那一刻,开始加载BIOS,并且执行MBR(Master Boot Record)
BIOS表示基本输入输入系统(Basic Input/Output System),完成一些系统的完整性检查、搜索、 加载并且执行引导程序(boot loader), 它在软盘,CD-ROM或者硬盘上寻找引导程序。你可以在 系统启动时按下键盘(通常是F12或者F2,但是因系统而异)来修改启动顺序
一旦引导程序被检测到并且加载到内存,BIOS会将控制权移交给它
MBR表示主引导记录(Master Boot Record)
用于加载并执行GRUB
GRUB是多重引导管理器(GRand Unified Bootloader)
执行 /etc/grub.conf, 加载内核镜像
vim /etc/grub.conf default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS 6 (2.6.32-504.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg_ddz-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_ddz/lv_root crashkernel=128M.UTF-8 rd_LVM_LV=vg_ddz/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-504.el6.x86_64.img
执行内核首个进程 /sbin/init, 进程号为1, 是接下来所有其它进程的父进程
initrd表示Initial RAM Disk
initrd被内核用作临时的根目录,直到内核启动完成并且真正的根目录挂载成功。 它也包括一些编译好的必要的驱动程序,这些程序有助于它访问硬盘和其他硬件
执行 /etc/inittab, 来确定启动级别
vim /etc/intttab# Default runlevel. The runlevels used are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)# 3 - Full multiuser mode (终端模式)# 4 - unused# 5 - X11(图形用户界面)# 6 - reboot (Do NOT set initdefault to this)#id:5:initdefault:
执行 /etc/rc.d/rc.sysinit, 来启动系统进程,比如说NetWork
执行启动级别相对应的一系列系统服务
对应启动级别的目录如下
ll /etc/rc.d/
drwxr-xr-x. 2 root root 4096 11月 29 09:49 rc0.d drwxr-xr-x. 2 root root 4096 11月 29 09:49 rc1.d drwxr-xr-x. 2 root root 4096 3月 10 17:18 rc2.d drwxr-xr-x. 2 root root 4096 3月 10 17:18 rc3.d drwxr-xr-x. 2 root root 4096 3月 10 17:18 rc4.d drwxr-xr-x. 2 root root 4096 3月 10 17:18 rc5.d drwxr-xr-x. 2 root root 4096 11月 29 09:49 rc6.d
最后执行 /etc/rc.d/rc.local, 来运行自定义的服务
vim /etc/rc.d/rc.local
1 #!/bin/sh2 #3 # This script will be executed *after* all the other init scripts.4 # You can put your own initialization stuff in here if you don't5 # want to do the full Sys V style init stuff.6 7 touch /var/lock/subsys/local8 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then9 echo never > /sys/kernel/mm/transparent_hugepage/enabled 10 fi11 if test -f /sys/kernel/mm/transparent_hugepage/defrag; then12 echo never > /sys/kernel/mm/transparent_hugepage/defrag 13 fi14 15 /bin/bash /usr/local/apps/kylin/bin/kylin.sh start
其中第15行为自定义启动脚本
进入登录界面
感谢各位的阅读,以上就是“Linux开机启动的流程是什么”的内容了,经过本文的学习后,相信大家对Linux开机启动的流程是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。