引导过程与服务控制



引导过程与服务控制

1.引导

1.过程

image-20240523093652144

引导过程:当你按下开机的电源键知道屏幕显示登录的画面,这中间系统做的一系列的开机过程.

1.开机自检(bios):

​ 服务器开机之后,根据主板的bios设置,对cpu,内存,显卡,键盘等等设备(不包括硬盘),对这些核心的设备进行初步的检测,检测无误后,根据预设的启动顺序(默认的启动顺序,第二就是硬盘,要么就是手工设置的u盘启动),系统的控制权转移到了硬盘(大多数的时候都给硬盘)

​ 总结:初步的检测硬件工作是否正常,检测成功后,把系统的引导控制权交给硬盘或者光驱或者u盘

2.MBR引导:

​ MBR是硬盘的分区记录表,在这个表里里面记录了硬盘的分区,以及系统启动盘的位置在哪.

​ 系统的控制权到了硬盘,根据mbr记录表来找,找系统的启动盘(在linux里,系统盘是sda1),找到了之后将系统的控制权传递给包含操作系统引导文件的分区,以及mbr记录中系统的启动菜单(grub)

​ 总结:先找系统,再把控制权给grub菜单

3.GRUB菜单

​ 硬盘启动之后,找到了系统分区,也找到了操作系统所在的位置,grub就会显示启动菜单,包含所有当前可选的操作系统,选择了其中一个操作系统之后,系统又会转移控制权到操作系统的内核文件.(Centos7开始使用的都是grub2启动引导器)

4.加载内核文件

​ 操作系统的内核文件是一个预先编译好的特殊的二进制文件(已经编译好的可执行代码),介于硬件资源和系统程序之间,负责分配资源,调度资源.只是分配和调度,并没有真正运行.把它们预加载到内存当中,系统程序等待启动.

5.init/systemd启动方式

​ /sbin/init进程是系统当中的第一个进程,是所有其他进程的父进程.init进程在系统中的进程号永远是1,因为init是串行(一个一个启动,有先后顺序)

​ lib/systemd/system/是systemd的第一个进程,进程号也是1,systemd是并行(在载在内存当中的程序,一起启动,速度快)

​ ps -elf 看进程

​ killer -9

2.systemd单元类型:

​ systemd是centos7之后用来管理系统服务进程,使用单元模式(unit)来描述和控制系统服务和资源.

​ 主要单元类型: 扩展名 描述

image-20240523102017657

​ Service .service 描述一个系统进程

​ socket .socket 描述进程启动时,根据其配置,分配系统端口,监听端口状态.如果有请求,维护端口通信(提供网络服务)

​ target .garget 描述一组systemd的单元(进程在不同级别下的状态)

​ device .device 管理硬件设备包括光驱,驱动程序,设备文件,设备属性

​ mount .mount 管理文件系统的挂在,以及挂载之后的数据管理

​ Automount .automount 根据配置自动实现设备或者文件系统的挂载.

nginx.service

[Unit] #服务的说明
Description=nginx - high performance web server #描述nginx的web服务信息
Documentation=http://nginx.org/en/docs/ #描述nginx的网址信息
After=network-online.target remote-fs.target nss-lookup.target#依赖,启动的这个进程,systemd会根据after的条件把相关的进程一并启动.
Wants=network-online.target #表示支持dns解析以及该软件依赖于网络,是一个依赖条件,systemd也会把这个网络功能一并启动,先启动网络服务,才能启动nginx
[Service] #服务运行的菜蔬
Type=forking #后台运行
PIDFile=/usr/local/nginx/run/nginx.pid #路径,注意文件位置,如果不对 启动不了
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #服务启动时具体运行的命令,注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID #重启的命令
ExecStop=/bin/kill -s TERM $MAINPID #停止进程的命令
[Install] #服务安装的相关设置,以及运行的模式
WantedBy=multi-user.target #多用户,支持多用户模

3.系统的运行级别

​ runlevel查看运行级别,init切换系统级别

​ 级别 systemd对应target 说明

​ 0 target 关机

​ 1 rescue.target 单用户模式,系统维护时使用

​ 2 multi-user.target 字符模式和3一样

​ 3 multi-user.target 字符模式完整的字符模式,3模式可以支持多用户,在工作中,我们遇到的都是3

​ 4 multi-user.target 字符模式

​ 5 graphiccal.target 学习时使用,图形化多用户模式(工作中没有)

​ 6 reboot.target 重启

​ 特点:1.支持并行服务,提高系统的启动速度

​ 2.可以支持自动重启

​ 3.可以在进程运行期间,动态的控制它的资源和相关的服务参数

​ 4.可以自动解决服务启动过程中的依赖关系

​ 5.支持多种管理方式,如命令行,也可以图形化工具

4.如何对服务进行进程进行控制

​ systemctl 控制类型 服务名称(进程)

​ 控制类型

​ start 启动

​ stop 停止

​ restart 重启(先stop再start(修改服务的配置文件,必须要重启服务才能生效))

​ reload 重新加载单元配置

​ status 查看服务的状态(runing正常运行,dead服务停止,fail启动失败,查找启动失败的原因,exit-code是真正的启动失败,如果是result:signal表明有人强制终止了该进程,不一定是报错)

2.服务控制

​ 实验:

​ 1.mbr引导:mbr分区表被删了,如何恢复?

​ 先对虚拟机CD/DVD(IDE)那项把设备状态两个选项勾上,确保镜像挂载了.

​ 然后对硬盘添加一个硬盘,确定退出,重启虚拟机,链接xshell

​ lsblk查看硬盘,发现多了一块硬盘

image-20240523141336174

​ 输入,fdisk /dev/sdb

image-20240523141405349

​ 输入 n

​ 回车,回车,回车,w

image-20240523141633518

​ 之后再查看硬盘lsblk,发现以形成sdb1分区

image-20240523141819988

​ mkfs.xfs /dev/sdb1(创建一个文件系统)

image-20240523143050593

​ 创建一个目录,并且挂载它,最后查看一下

​ mkdir /backup

​ mount /dev/sdb1 /backup/

​ df -h image-20240523143312114

​ 挂上去后进入这个目录,用dd if语句创建一个文件,然后查看一下

​ mbr分区表在第一块硬盘当中的第一个分区,大小512字节,把这个分区表欧诺个第一个硬盘当中提取出来,保存在sdb的硬盘中,相当于把mbr分区表做了个备份

​ cd /backup/

​ dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1

image-20240523143922416

​ 模拟把原本的分区表用空文件填满,相当于删了

​ dd if=/dev/zero of=/dev/zero of=/dev/sda bs=512 count=1

​ 然后重启

​ init 6

image-20240523144428072

​ 回到虚拟机选第三个,解决故障

image-20240523144507546

​ 然后选第二个,进入急救模式

image-20240523144617096

​ 这里输入1

image-20240523144734094

​ 第二个默认回车

image-20240523144830663

​ 第三个输入 创建新目录,然后对sdb1重新挂载,再查一下

​ mkdir /backupdir

​ mount /dev/sdb1 /backupdir/

​ df -h

image-20240523145203897

​ 然后cd去刚刚创建的目录查看一下mbr.bak文件在不在,然后把文件还给/dev/sda

​ cd backupdir/

​ ls

​ dd if=/backupdir/mbr.bak of=/dev/sda

image-20240523145650691

​ 然后exit,退出重启,就好了

​ 2.grub引导菜单故障

​ 模拟删除grub

​ cd /boot

​ ls

​ cd grub2/

​ ls

​ rm -rf grub.cfg

​ reboot

image-20240523150620120

​ 之后回到虚拟机,重置虚拟机,手速快一点按esc,选择3 cd-rom drive

image-20240523150917849

接下来就眼熟了,选3,2,1,回车,

image-20240523151002706

image-20240523151022790

image-20240523151232778

image-20240523151322355

		输入chroot命令,进入系统的根环境

​ chroot /mnt/sysimage/

​ 把grub2的文件重新安装到到第一块硬盘

​ grub2-install /dev/sda

​ 接下来重新构建group2菜单的配置文件

​ grub2-mkconfig -o /boot/grub2/grub.cfg

image-20240523153036006

然后exit退出,reboot重启,会重启两次,就好啦

3.root密码忘了,该怎么办?

​ 先关闭安全机制,否则会被selinux阻拦可能会失败

​ setenforce 0

​ 然后虚拟机重启,考验手速esc,然后就眼熟了,3,3,2,

image-20240523153950959

image-20240523154148816

image-20240523154232167

之后输入1

​ 回车

​ chroot /mnt/sysimage/

​ passwd root

​ 就可以开始改密码了

image-20240523154558393

然后就是exit,reboot重启了

,3,3,2,

​ [外链图片转存中…(img-hMBwUhvR-1716451515012)]

​ [外链图片转存中…(img-qQVsmiUg-1716451515012)]

[外链图片转存中…(img-gZSQzHA8-1716451515012)]

之后输入1

​ 回车

​ chroot /mnt/sysimage/

​ passwd root

​ 就可以开始改密码了

​ [外链图片转存中…(img-yca9SJoc-1716451515012)]

然后就是exit,reboot重启了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值