39.Linux系统启动原理及故障排除(centos7)

目录

1.centos7 系统启动过程

2.登陆系统图解

3.管理系统服务 

4.运行级别 

例 1:默认系统启动使用 3 级别字符界面 

例 2:默认系统启动使用 5 级别图形界面 

例 3: centos7 修改内核启动顺序 

1.centos7 系统启动过程

加载 BIOS/UEFI 信息,进行硬件检测。按照 BIOS 设定找到第一个可以启动的设备。

读取第一个设备的 MBR(主引导记录),加载 MBR 中的 BootLoader(启动引导程序 grub2)

依据 grub2 的设置加载内核,内核再次进行系统检测。

grub2 加载 initramfs 虚拟文件系统,在内存中加载虚拟文件系统/boot/initramfs.

内核初始化,以加载动态模块的形式加载部分硬件的驱动。并且调用 initrd.target,挂载/etc/fstab 中的文件系统。此时可以由虚拟文件系统模拟出的根目录切换回硬盘真实的根目录。

内核启动的第一个进程,systemd。systemd 接管启动过程,并行启动后续程序。

systemd 调用默认 default.target 单元组,并按照 default 运行子单元组。

在 systemd 中将启动程序成为单元 unit,多个单元组成单元组(target)。

systemd 调用 sysinit.target 单元组,初始化系统。检测硬件,加载剩余硬件的驱动模块等。

systemd 调用 basic.target 单元组,准备操作系统。加载外围硬件的驱动模块,加载防火墙,

加载 SELinux 安全上下文等。

systemd 调用 mutil-user.target 单元组,启动字符界面所需的程序。

systemd 调用 mutil-user.target 单元组中/etc/rc.d/rc.local 文件,执行文件中命令。

Systemd 调用 mutil-user.target 单元组中的 getty.target 单元组,初始化本地终端。

Systemd 调用 graphical.target 单元组(字符界面不需要)。

2.登陆系统图解

3.管理系统服务 

服务状态

[root@localhost ~]# systemctl list-unit-files

#显示状态

loaded:Unit 配置文件已处理

active(running):一次或多次持续处理的运行

active(exited):成功完成一次性的配置

active(waiting):运行中,等待一个事件

inactive:不运行

enabled:开机启动

disabled:开机不启动 

4.运行级别 

总结:centos6 和 7 运行级别的变化

CentOS6                                       CentOS7

init                                            systemd

Traditional runlevel         |         New target name                 Symbolically linked to...

Runlevel 0                      |         runlevel0.target         ->       poweroff.target

Runlevel 1                      |         runlevel1.target         ->       rescue.target

Runlevel 2                      |         runlevel2.target         ->       multi-user.target

Runlevel 3                      |         runlevel3.target         ->       multi-user.target

Runlevel 4                      |         runlevel4.target         ->       multi-user.target

Runlevel 5                      |         runlevel5.target         ->       graphical.target

Runlevel 6                      |         runlevel6.target         ->       reboot.target

                                                                                              

Init  0      à              systemctl  poweroff                                       关机

Init  1      à              systemctl  isolate rescue.target                    单用户

Init  3      à              systemctl  isolate multi-user.target               字符界面

Init  5      à              systemctl  isolate graphical.target                图形化

Init  6      à              systemctl  reboot                                          重启

5.运行级别的切换

在 centos6/7 下切换到字符界面:

[root@localhost ~]# init 3   #切换到字符界面

[root@localhost ~]# init 5   #切换到图形界面

centos7 设置默认系统默认启动级别

systemctl set-default name.target 来修改我们的目标态。

我们看一下我们的默认目标态究竟为何物

[root@localhost ~]# ll /etc/systemd/system/default.target

例 1:默认系统启动使用 3 级别字符界面 

[root@localhost ~]# systemctl set-default multi-user.target

Removed symlink /etc/systemd/system/default.target.

Created symlink from /etc/systemd/system/default.target to

/usr/lib/systemd/system/multi-user.target.

[root@localhost ~]# ll /etc/systemd/system/default.target   #查看链接

lrwxrwxrwx 1 root root 41 5 月 23 19:08 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target

例 2:默认系统启动使用 5 级别图形界面 

[root@localhost ~]# systemctl set-default graphical.target

mutil-user.target 和 graphical.target 的关系:

systemctl list-dependencies sysinit.target

grub2 和 grub 区别

在 centOS6 上,我们的 grub 文件是/boot/grub/grub.conf在 centOS7 使用 grub2,配置文件改成/boot/grub2/grub.cfg 了, 但是功能还是大致一样的都是用于加载内核的,不过在 centOS7 上设置默认启动项发生了一些变化。

例 3: centos7 修改内核启动顺序 

[root@localhost ~]# vim /etc/default/grub

GRUB_TIMEOUT=5

#开机时 grub 默认 5 秒后启动内核

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

改:GRUB_DEFAULT= saved

为:GRUB_DEFAULT= 1

#这里我们改成 1,0 代表第一个内核,1 代表第二个,以此类推。

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

#修改完成后,并没有立即生效,使用此命令来生成 grub2.cfg 文件,在下次启动的时候就会默认选择新的默认内核。

[root@localhost ~]# uname -r

3.10.0-693.2.2.el7.x86_64

[root@localhost ~]# reboot

[root@localhost ~]# uname -r

3.10.0-693.el7.x86_64

例 2: centos6 修改内核启动顺序-了解

[root@localhost ~]# vim /boot/grub/grub.conf

改:10 default=0

为:10 default=1

[root@localhost ~]# reboot

猜你喜欢

转载自blog.csdn.net/weixin_46659843/article/details/123401710