Linux系统运维之Linux开机启动过程浅析
白羽 2018-07-11 来源 :网络 阅读 1118 评论 0

摘要:本文将带你了解Linux系统运维之Linux开机启动过程浅析,希望本文对大家学Linux有所帮助。


Linux开机启动过程浅析

Introduction
开机启动过程分为以下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.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

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

initrd表示Initial RAM Disk

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

Init
执行 /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

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

对应启动级别的目录如下

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

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

vim /etc/rc.d/rc.local

  1 #!/bin/sh
  2 #
  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't
  5 # want to do the full Sys V style init stuff.
  6
  7 touch /var/lock/subsys/local
  8 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  9    echo never > /sys/kernel/mm/transparent_hugepage/enabled
 10 fi
 11 if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
 12    echo never > /sys/kernel/mm/transparent_hugepage/defrag
 13 fi
 14
 15 /bin/bash /usr/local/apps/kylin/bin/kylin.sh start

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

Final
进入登录界面

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Linux!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程