五、linux引导流程解析

linux引导流程以前没有接触过,这次记录的详细点~

目标:

1、linux从启动电源到正常登陆,中间经历了哪些引导步骤。--linux引导流程

了解linux无法正常启动时,应该怎么排查错误。

2、linux的运行级别,运行级别的切换。

3、linux启动服务管理,查看linux的某一个服务是否启动,怎么启动linux服务

4、自举程序GRUB的配置与应用

5、启动故障与解决

一、系统引导流程

56

 

固件:firmware ,介于软件和硬件之间的应用。例如:CMOS/BIOS。在硬件的层面上检查所有的硬件是否正常。

        不同的应用平台的固件并不相同。CMOS是固化在主板上的程序,BIOS是操作CMOS的管理控制界面

常用固件设置:

安全设置

可引导介质列表

可引导介质搜索顺序

电源管理

启动细节显示

固件时钟—hwclock      hwclock –-hctosys    同步硬件时钟到软件时钟

                                          --systohc    同步软件时钟到硬件时钟

软件时钟—date

MBR:master boot record 主引导记录,在0柱面0磁头1扇区。固件检测完成后跳转到MBR中读取记录,读取自举程序(BootLoader),linux中应用的bootloader有GRUB、lila、spfdisk

GRUB:配置信息grub.conf,其中最重要的信息是指定linux内核所在的位置。最重要的作用就是载入内核

内核:kernel,是一个可执行的文件, vmlinuz-3.5.0-17-generic,5为中间版本号,此号码若为偶数为正式版,为基数为测试版。内核的作用为:驱动硬件、启动进程init。

init:init进程启动后读取inittab文件,执行缺省运行级别,从而继续引导过程。在unix系统中init是第一个可以存在的进程,它的PID恒为1,但它也必须向一个更高的功能负责:PID为0的内核调度器(kernel scheduler),从而获得cpu时间。

执行配置文件/etc/inittab:在red hat系列的linux中存在这个文件,但是在debian 系衍生出来的linux 一向是没有使用/etc/inittab 作为登入状态文档来使用的,可以自己建立一个。因为从/etc/event.d/中的rc-default文件中代码可以看出:

script
runlevel --reboot || true

if grep -q -w -- "-s\|single\|S" /proc/cmdline; then
telinit S
elif [ -r /etc/inittab ]; then
RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)"
if [ -n "$RL" ]; then
telinit $RL
else
telinit 2
fi
else
telinit 2
fi
end script

系统会首先搜寻inittab文件,如果不存在,那么将运行在2级别上。所以你可以自己建个inittab文件,或者把相应的telinit 2 改为 telinit X(你想要运行的级别)。

linux的运行级别:

0:halt

1:single user mode,没有图形界面,只有root可进入

2:Muliuser,without NFS

3:Full multiuser mode

4:unsued

5:x11---x windows 缩写为x,11为版本号

6:reboot

runlevel 查看当前启动级别
init [0123456Ss]或telinit[0123456Ss] 切换启动级别

注:Debian系(包括Ubuntu)的runlevel和RH系差别很大,没有rh系分的那么细。2是多用户模式。3,4,5和2一样。需要退出X,可以使用sudo pkill gdm

inittab文件剖析

在inittab中所有条目采取以下格式:

id:run-levels:action:process

id:标识符,一般为两位字母或数字

run-levels:指定运行级别,可以指定多个(若为空则全部执行,若是123,则在运行级别123都执行)

action:指定运行状态

process:指定要运行的脚本/命令

action常用取值:

initdefault:指定系统缺省启动的运行级别

sysinit:系统启动执行process中指定的命令

wait:执行process中指定的命令,并等其结束后再运行其他命令

once:执行process中指定的命令,不等待其结束

ctrlaltdel:按下Ctrl+Alt+Del时执行process指定的命令

powerfail:当出现电源错误时执行process指定的命令,不等待其结束

powerokwait:当电源恢复时执行process指定的命令

respawn:一旦process指定的命令终止,便重新运行该命令

脚本:/etc/rc.d/rc.sysinit 启动此脚本,完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。

/etc/rc.d/rc[0123456].d分别存放对应于运行级别的服务程序脚本的符号链接,链接到init.d目录中的相应脚本。此目录中K(kill)开头的为不启动的脚本,S(start)开头的为启动的脚本。名称中数字为启动顺序。

系统中所有的服务在/etc/init.d目录中存放

设置自启动程序方式

1、生成软链接 ln –s ,首先在/etc/rc.d/init.d中添加脚本程序,在/etc/rc.d/rcN.d目录中添加以S开头命名的软链接

2、将/etc/rc.d/rcN.d中的相应程序改名

3、chkconfig命令

4、ntsysv命令

fileware –BootLoader—kernel—init—/etc/inittab—initdefault—/etc/rc.d/rc.sysinit—/etc/rc.d/rc—/etc/rc.d/rcN.d

小知识:

查看文件排除以“#”开头的行

grep –v “^#” /etc/inittab | more

linux 中所有的日志文件都存放在/var/log目录中

转载于:https://www.cnblogs.com/limiracle/p/3896854.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值