Linux引导过程与服务控制

Linux操作系统引导过程

排除启动类故障

服务控制及切换运行级别

优化启动过程

Linux引导过程

引导过程总览:

简化来说就是由开机自检 MBA引导 GRUB菜单 加载内核(kernel) init进程初始化等组成

Linux 操作系统的引导过程:

1.开机自检

服务器主机开机,将检查硬件设备,检测成功后移交系统控制权,大多时候会移交给本机硬盘。

总结:检查硬件设备,检测出第一个能够引导系统的设备,比如硬盘或者光驱

2.MBR 引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,运行MBA扇区里的主引导程序(如 GRUB)。

总结:运行放在MBR扇区里的启动GRUB引导程序

3.启动 GRUB 菜单

系统读取GRUB配置文件,获取内核的设置和位置,并在屏幕中显示

总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置,并屏幕显示grub菜单

4.加载 Linux 内核

Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。默认的内核文件位于"/boot/vmlinuz-3.10.0-514.el7.x86_64"。

总结:把内核和镜像文件系统加载到内存中

5.init 进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的"/sbin/init"程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成整个系统的初始化,最后等待用户进行登录。

总结:加载硬件驱动程序,内核把init进程加载到内存中运行

系统初始化进程

init进程:有Linux内核加载运行/sbin/init程序

init进程是系统中的第一个进程,是所有进程的父进程

init进程的PID号永远是1

Systemd

Systemf是Linux操作系统的一种init软件

centos7中采用全新的Systemd启动方式,取代传统的SysVinit

centos7中运行的第一个init进程是/sib/systemd/systemd

Systemd单元类型

套接字文件:应用程序之间的数据链接文件

套接字格式:ip:port(端口号) ftp 192.168.80.20:21

|------|-------------------|----------------------|
| 运行级别 | 对应systemd单元 | 说明 |
| 0 | poweroff.target | 关机 |
| 1 | rescue.target | 单用户模式,不需要密码 |
| 2 | multi-user.target | 字符界面的多用户模式(无网络) |
| 3 | multi-user.target | 字符界面的多用户模式(完整的, 有网络) |
| 4 | multi-user.target | 字符界面的多用户模式(保留) |
| 5 | graphical.target | 图形界面的多用户模式 |
| 6 | eboot.target | 重启 |

排除启动类故障

修复MNR扇区故障

如果是 MBR 整个扇区数据被破坏了,需要进入到急救模式将备份的MBR数据导入还原

先是进入到急救模式

选择第二个rescue

敲1然后回车

新建mnr目录

挂载文件到新建的mbr

还原文件命令

reboot退出

GRUB配置文件故障

如果是GRUB配置文件被删了

重启服务器在加载过程中按下esc选择光盘进入,同理进入这个界面输入引导程序还原命令

重新登录后查看,发现原来删除的文件重新回来了

root密码故障

如果是root密码忘记了

在急救模式下 先切换系统根环境 chroot /mnt/sysimage -> passwd root

系统服务控制

sysytemctl

systemctl 控制类型 服务类型

以防火墙为例,查看防火墙的服务状态

service也可以实现对一些服务的控制,在centos6以前的版本中用到的

对network这个服务进行重启,实际上是执行network下面这个软连接执行脚本。

Linux系统的运行级别

查看运行级别,临时切换运行级别,设置永久运行级别。

runlevel查看当前运行级别,第一个数字是对上一次的运行级别进行查看,第二个数字是5,说明当前的运行级别是5,也就是图形界面多用户模式

切换运行级别为3

就切换到了3,字符界面的多用户模式

这里可以看到,当前的运行级别为3,上一次的运行级别就成了5

用这个systemctl get-default 查看到graphical.target。对应的就是5运行级别。

服务开机自启管理

systemctl enable|disable --now 服务名.service # --now选项可实现立即开启|关闭服务

systemctl is-enabled 服务名.service

ntsysv以图形界面实现开机自启的配置

字符集编码

ASCII 127个字符

GBK 中国字符集编码

UTF-8 万国字符集编码

hostnamectl set-hostname XXX

localectl set-locale LANG=语言.字符集

相关推荐
GeW11 分钟前
新质生产力落地实践:企业级Linux迁移与数据库国产化
linux
雯宝19 分钟前
usb_serial_generic_register
linux
龙亘川42 分钟前
适应人工智能发展、构建就业友好型发展方式
大数据·运维·人工智能·信息可视化·智慧城市
数据库小学妹43 分钟前
OLAP数据库怎么选、怎么优化?路线、提速与边界
运维·数据库·后端
织码weavecodes1 小时前
新闻资讯模块设计:内容发布、阅读计数与附件鉴权
java·服务器·数据库
说实话起个名字真难啊1 小时前
实战docker部署dify及注意点
运维·docker·容器
福建佰胜张工1 小时前
费希尔 FIELDVUE™ DVC6200-AC 智能阀门定位器深度解析:双作用配置、核心参数与典型应用
运维·安全·自动化
疯狂的Meng1 小时前
我把第一周的 Linux 命令整理成了自己的手册(附 7 个我踩的坑)
linux
wt95271 小时前
VMware 虚拟机静态 IP 配置
linux
小羊没烦恼!1 小时前
分布式事务 | 使用DTM 的Saga 模式
java·linux·运维·数据库·wpf