linux开机视频教程,Linux入门教程:Linux开机启动过程浅析

本文详细解析了Linux系统的开机启动过程,从BIOS到GRUB,再到内核加载、Init进程和运行级别,最后执行自定义服务,最终进入登录界面。主要涉及BIOS、MBR、GRUB、内核、Initrd、Init、RunLevel及其相关配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 LANG=zh_CN.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进入登录界面

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值