引导过程与服务控制

发布于:2024-04-21 ⋅ 阅读:(166) ⋅ 点赞:(0)

服务管理:很多应用已服务的方式提供,与一般的交互式程序有所区别,开机时自动启动

程序:执行特定任务的一串代码,是静态的,存于硬盘中

进程:运行中的程序叫进程,是动态的,存于内存中

一、Linux操作系统引导过程

1.kernel内核

kernel(操作系统的核心):实现进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能等,内核就是一个文件,一个代码

2.rootfs包括程序和glibc库

程序:二进制执行文件

库:函数集合,function,调用接口(头文件负责描述)

3.内核设计流派

1.宏内核(monolithic kernel):又称单内核和强内核,Unix,Linux把所有系统服务都放到内核里,所有功能集成于同一个程序,分层实现不同功能,系统庞大复杂,Linux其实在单内核内核实现了模块化,也就相当于吸收了微内核的优点

2.微内核(micro kernel):Windows,Solaris,HarmonyOS简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护,每种功能使用一个单独子系统实现,将内核功能移到用户空间,性能差

4.开机启动过程

开机自检bios--->mbr引导--->grub菜单--->加载内核kernel--->init进程初始化启动程序

bios(集成在主板上)

1.开机检测硬件是否有故障

2.指引硬件去哪里找操作系统(根据bios中设置的启动顺序去找操作系统1.本地硬盘2.外接设备3.网卡)

mbr(硬盘)512字节

1.开机引导程序(446字节)

2.分区表(64字节)

grub

根据grub.cfg配置文件找到内核文件,(kernel)加载内核,把内核放入内存中运行

启动程序

1.centos7:启动的第一个程序systemd

2.centos6:启动的第一个程序init

系统初始化进程

先启动systemd或init,再启动其他程序

init:启动其他程序时是串行,123456789依次启动,由Linux内核加载运行/sbin/init程序,init进程是系统中第一个进程,init进程的PID(进程标记)号永远为1

systemd:启动程序时是并行,123456789同时启动,systemd是Linux操作系统的一种init软件,CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit,CentOS7中运行的第一个init进程是/lib/systemd/systemd

5.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 .target 描述一组systemd的单元

6.运行级别所对应的systemd目标

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

二、排除启动类故障

故障原因

病毒、木马等造成的破坏

不正确的分区操作、磁盘读写误操作

故障现象

找不到引导程序,启动中断

无法加载操作系统,开机后黑屏

解决思路

应提前做好备份文件

以安装光盘引导进入急救模式

从备份文件中恢复

1.修复mbr扇区故障

1.添加新硬盘,lsblk查看新加硬盘sdb、sdc、sdd

2.分区,命令格式:fdisk  /dev/sdb

3.查看,一会和故障后的做对比,命令格式:hexdump -C -n 512 /dev/sda

4.新建eva文件夹作为挂载点和备份点

5.格式化sdb1分区并挂载到/eva下

6.备份MBR扇区数据到新硬盘的分区

7.备份成功

8.我们模拟故障先破坏MBR扇区,用空字符替换,模拟MBR扇区故障

9.现在用hexdump -C -n 512  /dev/sda查看现在故障后的MBR扇区

10.重启虚拟机

11.回到虚拟机,进入紧急模式,用备份文件恢复MBR扇区数据,解决故障

12.选择紧急模式

13.选择1.continue,按下回车

14.新建esdeath文件夹

15.将有备份文件的硬盘挂载到新建目录

16.将之前备份的文件复制到出现MBR故障的磁盘

17.在命令行输入exit,退出急救模式并重启,MBR引导正常启动,可以选择操作系统

18.可以正常登录,MBR故障修复成功

2.修复grub引导故障

故障原因:

1.MBR中的GRUB引导程序遭到破坏

2.grub,cfg文件丢失、引导配置有误

修复grub引导故障

1.切换到grub配置文件所在目录

2.删除配置文件grub,cfg

3.reboot重启

4.无法登录

5.重启虚拟机,出现这个界面的时候迅速按esc进入启动菜单

6.选择光盘启动,引导界面进入急救模式

7.选择Troubleshooting

8.选择急救模式

9.光标输入1,继续

10.切换到/mnt/sysimage

11.重新建立加载sda分区

12.重新构建grub菜单配置文件

13.退出引导界面,reboot重启,查看是否可以选择操作系统

14.可以选择操作系统

15.可以登录

修复成功

3.模拟修改root密码

1.在选择系统界面按e进入编辑界面

2.添加一个内核参数rd.break

3.修改根目录的权限并重新挂载

4.创建一个临时的根文件系统环境,使在此环境中运行的程序只能访问到这里,切换新命令行

5.关闭selinux,修改root用户的密码,并且再次确认密码

6.退出临时环境并重启

7.登录用户root

登录成功

三、服务控制及切换运行级别

运行级别(runlevel):系统的工作状态,定义了系统启动时运行的服务和进程,init0-6可以切换到对应的运行级别

1.运行级别0(halt)

系统关机状态,所有服务已停止,可以安全地关闭电源

2.运行级别1(single user mode)

单用户模式,只有boot用户可以登录,用于系统修复和维护

3.运行级别2(multi-user mode)

文本模式多用户模式,登录后进入命令行界面,功能不全的字符界面

4.运行级别3(full multi-user mode)

文本模式多用户模式,登录后进入命令行界面,完整的字符界面

5.运行级别4(unused)

保留,未分配特定用途,可以根据需要进行自定义

6.运行级别5(graphical multi-user mode)

图形多用户模式,登陆后进入图形界面

7.运行级别6

重启

四、sysremd程序管理-systemctl

1.服务程序

为其他机器提供服务的程序,服务程序启动后,会持续监听端口。

使用systemctl 命令管理systemd服务。

1.系统必要的程序

2.yum,rpm安装的程序

3.编译安装的程序,需要手写配置文件后才可以

/usr/lib/systemd/system/服务名.service的文件

yum和rpm安装会自动生成,天生可以被systemd管理,而编译不行,编译需要手写该文件

systemd进行管理的时候使用的是systemctl命令

开始服务命令格式:systemctl start  服务名   

关闭服务命令格式:systemctl stop  服务名

查看服务状态命令格式:systemctl  status  服务名

重启服务命令格式:systemctl  restart  服务

重新加载服务,不影响用户使用命令格式:systemctl  reload  服务

开机自启命令格式:systemctl  enable  服务

关闭开机自启命令格式:systemctl  disable  服务

开机自启,并立即启动命令格式:systemctl enable --now

关闭开机自启,并立即关闭命令格式:systemctl  disable --now

关闭防火墙:systemctl stop firewalld永久关闭:setenforce 0

2.service unit文件格式

1.unit

主要用来描述此软件的功能、man帮助、依赖关系等

2.service

主要作用是systemd程序怎么具体管理该程序(如何启动该程序,如何关闭该配置,怎么优化该程序的配置)

3.lnstall

在哪个运行级别启动


网站公告

今日签到

点亮在社区的每一天
去签到