引导过程和服务控制

Posted 还行少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引导过程和服务控制相关的知识,希望对你有一定的参考价值。

linux操作系统引导过程

1)开机自检(BIOS)
当我们打开计算机电源的时候,随后会听到滴的一声,自检开始,这个过程中主要是检测我们的计算机硬件设备比如:CPU,内存,主板,显卡,CMOS等设备是否有故障存在

2)MBR引导
Bios自检,首先会在一个Boot Sequence程序中搜索可以让系统启动的引导设备(比如我们有时在BIOS中设置为从硬盘启动,或者从CD-ROM启动等等)
这时如果BIOS找不到可以引导的设备及相关程序后,便会启动失败,如果顺序的找到了相关设备硬盘,那么BIOS将把控制权交给启动设备中的MBR(Master Boot Record)主引导记录
MBR在大小为512字节,存放预启动信息、分区表等信息

3)grub菜单
系统控制权传递给GRUB 以后,读取grub.conf信息,里面包含内核信息、等待时间等

4)加载内核
系统引导器程序会从本地硬盘中加载内核以及内存文件系统(centos7 中使用的是 initramfs),内存文件系统 initramfs 是经过gzip 的 cpio 归档,其中包含启动时所有必要的硬件内核模块、初始化脚本等

5)初始化进程
内核初始化在 initramfs 中找到驱动程序的所有硬件,然后作为PID 1 从initramfs 执行 /sbin/init,CtnOS7 中将其复制为 systemd,systemd启动 initrd.target 中所有单元,并挂载根文件系统 /sysroot,内核与文件由内存文件系统切换至系统根文件系统,并重新运行 /sysroot.systemd。systemd启动默认target (图形或者字符终端),最后等待用户登录

Systemd 单元类型

单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个systemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.tar.get描述一组systemd的单元

linux系统的运级别

查看运行级别

runlevel命令

[root@localhost ~]# runlevel    //runlevel只能查看切换运行级别与当前运行级别
N 5

systemctl工具

[root@localhost ~]# systemctl get-default  //systemctl只能查看默认的运行级别
graphical.target

临时切换运行级别

init命令

[root@localhost ~]# init 3   //init的命令参数时运行级别所对应的数字
[root@localhost ~]# runlevel
5 3
[root@localhost ~]# 

systemctl工具

[root@localhost ~]# systemctl isolate graphical.target  //systemctl的命令参数是具体的target

设置永久运行级别

[root@localhost ~]# systemctl set-default graphical.target 
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
[root@localhost ~]# 

运行级别所对应的Systemd目标

运行级别Systemd的target说明
0target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target用户定义/域特定运行级别,不能使用net file system,默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target保留,未使用
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

排除启动类故障

1)修复MBR扇区故障
故障原因
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象
找不到引导程序,启动中端
无法加载操作系统,开机后黑屏
解决思路
应提前作好备份文件
以安装光盘引导进入急救模式
从备份文件中恢复
具体过程
1、首先模拟故障,备份并破坏mbr扇区
dd if=/dev/sda of=/mk1/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=512 count=1
在这里插入图片描述

2、重启电脑,无法正常进入系统
在这里插入图片描述

3、选择修复模式进入
在这里插入图片描述

4、重新挂载,并将备份的数据恢复
在这里插入图片描述

5、reboot重启,顺利进入系统
在这里插入图片描述

2)修复GRUB引导故障
故障原因
MBR中的GRUB引导程序遭到破坏
grub.cfg文件丢失、引导配置有误
故障现象
系统引导停滞,显示“grub>”提示符
在这里插入图片描述

解决思路
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复grub.cfg
向MBR扇区中重建grub程序
具体过程
1、从光盘启动,进入救援模式,进入修复shell
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、执行chroot /mnt/sysimage #初始系统已经挂载到了/mnt/sysimage下面,想要进入初始系统下面,需要执行chroot /mnt/sysimage命令
在这里插入图片描述

3、执行grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
在这里插入图片描述

4、执行exit
reboot
在这里插入图片描述
5、成功进入系统
在这里插入图片描述

3)遗忘root用户密码
故障原因
遗忘root用户密码
故障现象
无法进行需要root权限的管理操作
无法以root用户登录系统
解决思路
进入修复模式,重设密码
进入单用户模式,重设密码
具体过程
1、启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式
在这里插入图片描述
在这里插入图片描述

2、在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh
在这里插入图片描述

3、按Ctrl+x启动到shell
在这里插入图片描述

4、挂载文件系统为可写模式:mount –o remount,rw /
在这里插入图片描述

5、运行passwd,并按提示修改root密码(密码要八位数以上,否则会报密码错误)
在这里插入图片描述

6、运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启
在这里插入图片描述

7、开机,输入修改后的密码,成功进入系统
在这里插入图片描述
8、如果卡在开机界面或者开机界面只显示一个 — ,可删除/etc/selinux/config文件
在这里插入图片描述

以上是关于引导过程和服务控制的主要内容,如果未能解决你的问题,请参考以下文章

Linux引导过程和服务控制

引导过程和服务控制

Linux引导过程及服务控制

linux引导过程和服务控制

引导过程与服务控制

引导过程与服务控制