操作系统引导过程 与 服务进程的控制

简介: 操作系统引导过程 与 服务进程的控制

一,linux操作引导过程

bios加电自检        mbr    gurb     加载内核文件    启动第一个进程

(一)bios 加电自检

检测硬件是否正常,然后根据bios中的启动项设置,去找内核文件

硬件启动POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

主板的ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等

问:boot 开机启动顺序:你可以把内核文件放在何处?

答:1,硬盘

      2,移动设备(u盘 移动硬盘 光驱)

      3,网络启动

问:什么原因造成服务器一直重启

答:

1,硬盘坏了

2,第一启动项是移动设备,无移动设备

3,第一启动项网络启动,无网

4,第一启动项网络启动,有网,但是没有网络操作系统服务

(二)mbr

因为grub太大 mbr第一个扇区太大,所以grub程序,分为两部分

作用:指引硬件找到内核文件    即运行放在MBR扇区里的启动 GRUB引导程序

(三)grub

1,grub  含义

根据gurb配置文件(gurb.cfg)中记录的位置,去找内核文件

对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是 使用最为广泛的多系统引导器程序。系统控制权传递给 GRUB 以后,将会显示启动菜单给 用户选择,并根据所选项(或采用默认值)准备加载 Linux 内核文件,然后将系统控制权转交给 内核。需要注意的是,CentOS 7 采用的是 GRUB2 启动引导器。

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

2,grub 功能和组成

bootloader: 引导加载器,引导硬件去找到 内核(操作系统的核心)

  • Windows: ntloader,仅是启动OS
  • Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

Linux的bootloader

  • LILO:LInux LOader,早期的bootloader,功能单一
  • GRUB: GRand Unified Bootloader, CentOS 5,6 GRUB 0.97: GRUB Legacy, CentOS 7 以后使用GRUB 2.02

GRUB 启动阶段

  • primary boot loader :
    1st stage:MBR的前446个字节 引导 硬件去找 内核
    1.5 stage:MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
  • secondary boot loader :2nd stage,分区文件/boot/grub2/grub.cfg

(四)加载内核文件

把内核运行在内存中      可以使用

(五)启动第一个进程(系统初始化进程)

启动第一个祖宗进程

centos6    init

centos7   systemd

总结开机启动的完整过程

加电后,bios程序会自检硬件,硬件无故障后,会根据第一启动项去找内核,一般来说第一启动项是硬盘,找到硬盘后,会根据mbr的指引 找到完整的grub程序,再根据grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好后,会启动第一个程序

二,系统初始化进程

(一)init  进程

1,由linux 内核加载运行  /sbin/init   程序

2,是系统中第一个进程

3,init  进程的pid号  (进程标识)永远为1

4,centos6只能用 chkconfig

(二)systemd

1,systemd  是linux操作系统的一种inti 软件

2,centos7两个都能用 但是systemd 好用多了

3,centos7中 运行的第一个init  进程是  /lib/systemd/systemd

(三)inti  systemd  区别

init 串行启动后续的程序 一个一个按顺序启动

systemd 并行启动程序 全部一起启动

三,对systemd详细介绍

(一)systemd 介绍

是系统的级的程序 代为管理系统上的服务程序

systemd 是保姆级程序,如果是yum,以及rpm安装的软件可以直接使用systemctl 去启动  关闭  重启  开机自启高等功能。

但是!编译安装不可以直接使用systemctl 命令去管理程序  ,需要手写一个配置文件

(二)systemd 单元

在systemd中不同类型的systemd对象被统一称为单元,是让系统知道该如何进行操作和管理资源的主要对象,所以systemd有许多单元类型。

systemd单元文件最初默认存放在/lib/systemd/system目录中,每当安装新的软件都会自动在这个目录中添加一个配置文件。

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的单元

(三)linux 操作系统有运行级别

0 关机

1 单用户(类似windos的急救模式)

2 字符功能 少些功能

3 字符功能 从来没见过

4 字符功能                 multi-user.target

5 图形界面                 graphical.target

6 重启

语法:

init 0-6         切换系统运行级别

查看默认运行级别    systemctl get-default

设置默认级别          

runlevel  查看当前运行级别

四,排查启动类故障

(一)mbr扇区故障

1,故障原因

  • 病毒、木马等造成的破坏
  • 不正确的分区操作、磁盘读写误操作

2,故障现象

  • 找不到引导程序,启动中断
  • 无法加载操作系统,开机后黑屏

3,解决思路

  • 应提前做好备份文件
  • 以安装光盘引导进入急救模式
  • 从备份文件中回复

4,解决方法

用磁盘备份

mbr分区 远程备份

5,实验模拟mbr 扇区故障时用磁盘备份解决

5.1新加一块磁盘,刷新磁盘供电接口

5.2 格式化  并挂载

5.3 备份分区表以及mbr

5.4  输入hexdump -C -n 512  /dev/sda 查看磁盘的前512个字节

5.5  模拟破坏

输入:dd  if=/dev/zero  of=/dev/sda  count=1  bs=512  

这条命令的意思是在/dev/sda前512个字节写0,就相当于破坏了该文件的十六进制代码

可以看到都变成0

5.6解决故障

5.7

5.8

5.9

5.10     要再次挂载sdb  磁盘挂载后才能用

5.11   将之前备份的内容   再复制到sda里

5.12查看  已经恢复了

5.13  reboot  重启、

6,实验模拟mbr 扇区故障时用远程备份解决

(二)grub故障

1,故障原因

  • MBR中的GRUB引导程序遭到破坏
  • grub.conf文件丢失,引导配置有误

2,故障现象

3,解决思路

  • 尝试手动输入引导命令
  • 进入急救模式,重写或者从备份中恢复grub.conf
  • 向MBR扇区中重建grub程序

4,实验模拟破坏grub.cfg 配置文件并解决

4.1先模拟破坏grub.cfg 配置文件

输入mv  /boot/grub2/grub.cfg  /opt,在grob2目录下直接输入文件名就可以

 

4.2 重启,它会进入grub界面

4.3 重启后在读条时进入急救模式,这个要求手速比较快,大概在0.5秒作用

4.4    或者选择开机模式,打开电脑时进入固件

设置启动加载方式第一项为光盘启动

按F10保存退出

4.5

和修复mbr一样 321    进入急救模式            以CD-ROM 模式进入

4.6从光盘的根切换到自己的系统根

chroot   /mnt/sysimage  

4.7重新安装grub2程序

把grub2程序重新安装在sda磁盘

grub2 -install /dev/sda

4.8重新生成配置文件

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

4.9退出重启

先输入exit退出到光驱的根下 再输入reboot重启

(三)破解密码

如果root密码遗忘了,需要进入急救界面修改密码

1,有光驱

1.1看到vm  摁Esc进入急救模式

1.2    以CD-ROM 模式进入

1.3直接切换到系统根,输入passwd修改密码

1.4  exit  reboot

2,无光驱

2.1   进入内核编辑

2.2在Linux开头行末尾处加上rd.break,添加后按ctrl  + x执行

2.3重新挂载

入mount  -o  remount,rw  /sysroot 添加权限

2.4  切根

2,5  修改密码

2.6如果你的selinux没有关闭,则需要输入touch  /.autorelabel  刷新一下该文件时间,重新打上标记

3,安全措施

 

这样看,我们只要接触到服务器都能修改root 密码,有没有一个安全措施呢?

可添加grub 密码

五,服务程序管理

(一)服务程序的特点

1.一旦运行,一直运行

2.一般是后台运行,不会影响前台操作

(二)管理服务程序

开启

关闭

重启

重新加载配置文件

查看状态

开机自启

开机不自启

(三)管理服务程序centos6的命令

1,chkconfig   的使用

0123456代表级别

0代表关机;1代表单用户;234代表字符界面(2没有nfs;4没有用过);5图形化界面;6重启

将3,5 打开 开机自启

在/etc/init.d写一个同名文件的脚本(必须要有执行权限)

chkconfig  --add  服务名称

chkconfig  --level  35  服务程序  on    开机自启

chkconfig  --level  35  服务程序  off  关闭开机自启

例题:一个开机自启的服务卡主,导致系统起不来,怎么办?

          答:进入急救模式,把他干掉

举例:testsrv 服务启动 出了问题,因为这个服务设置了  35 级别自动启动,会导致进入不了系统

解决办法:急救模式进去  单用户模式(级别1)把这个服务自启动关闭

chkconfig   --list | grep  

chkconfig  --level  35  testsrv  off

 

2,Service  的使用

Service       服务程序   start                                              开启

Service       服务程序   stop                                              关闭

Service       服务程序    restart                                          重启

Service       服务程序    reload                                          重新加载配置文件

Service       服务程序   status                                            查看服务状态

(四)管理服务程序centos7的命令

1,systemctl   的用法

systemctl          start            服务程序                                  开启

systemctl          stop             服务程序                                 关闭

systemctl           restart         服务程序                                 重启

systemctl           reload          服务程序                                重新加载配置文件

systemctl             status          服务程序                                  查看服务状态

systemctl enable 服务名                开机自启

systemctl enable --now 服务名      开机自启并立即启动

systemctl disable 服务名               开机不自启

systemctl disable --now 服务名     开机不自启并立即关闭

注意:如果用yum安装以及rpm安装 会自动生成一个配置文件 不需要我们手动加入systemd会自己添加

看非编译软件 的配置文件

2,实验编译安装nginx  并将nginx交给systemctl  管理

编译安装nginx  并将nginx交给systemctl  管理

1,下载源码包

2,解压

3,安装环境,发现一直有进程占用,kill 3159

5,指明安装路径

6,安装

7,编译安装  需要手写配置文件

8,写配置文件

9,重新加载配置文件

10,开启并查看状态

注意事项:

1,如有报错,在   [Service]  段 加上   这个Type=forking  (后台程序)

2,不写restart 也没关系 restart就是先stop再start

systemctl restart 命令一样能用

3,stop 也可以这么写  

ExecStop=/ccc/nginx/sbin/nginx   -s   stop

相关文章
|
25天前
|
人工智能 弹性计算 运维
AI驱动的操作系统服务评测报告
阿里云推出AI驱动的一站式免费操作系统服务套件,包含SysOM管控组件和OS Copilot智能助手,提供集群健康监测、深度系统诊断等功能。通过直观的操作界面和详尽的诊断报告,帮助运维人员优化系统性能,提高工作效率。特别针对EOL操作系统提供订阅管理服务,确保系统安全。整体体验令人满意,但在文档详细度和定制化方面仍有提升空间。
58 14
|
2月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
109 1
|
1月前
|
人工智能 运维 监控
|
1月前
|
人工智能 运维 数据可视化
AI驱动操作系统服务评测报告
阿里云操作系统服务套件集成AI技术,提供集群健康、系统诊断、观测分析和OS Copilot等功能,助力高效管理。安装组件流程简便,系统观测与诊断功能强大,数据可视化效果佳,支持历史趋势分析。OS Copilot智能助手回答逻辑清晰,但部分问题需增强专业性。整体评价高,建议进一步优化错误提示、自动诊断及订阅服务记录,提升用户体验。
81 25
AI驱动操作系统服务评测报告
|
10天前
|
人工智能 运维 监控
AI驱动的操作系统服务评测报告
作为一位运维工程师,我使用Alibaba Cloud Linux 3操作系统进行云资源的运维和管理。通过控制台可快速开通并管理云资源,界面简洁、功能明确。安装SysOM和OS Copilot组件简单高效,支持实时监控集群健康状况,并提供精准的系统诊断与优化建议。OS Copilot智能助手能有效解答技术问题,提升工作效率。针对EOL系统的订阅服务提供了安全迁移保障。整体体验优秀,尤其适合中小企业降低运维复杂度。建议进一步优化权限管理、增加报告导出功能及增强Copilot交互性。
|
25天前
|
人工智能 运维 监控
探索未来:AI驱动的操作系统服务评测
### 探索未来:AI驱动的操作系统服务评测 本文介绍阿里云新推出的AI驱动操作系统服务套件,为运维工程师和开发者提供免费、智能的操作系统管理体验。通过Alibaba Cloud Linux的实际操作,评估其安装便捷性、系统健康监控、智能助手OS Copilot等功能。该服务显著提升了工作效率约30%,并增强了服务可靠性。AI技术的融入使系统管理更加智能化,值得尝试。
66 16
|
25天前
|
人工智能 弹性计算 运维
操作系统服务套件评测报告
阿里云推出以AI为核心的操作系统服务套件,助力云端高效运维。评测基于Ubuntu 20.04 LTS环境,涵盖安装、系统健康检查、诊断、OS Copilot智能助手等功能。套件简化故障排查,提升工作效率,尤其适合专业运维人员。建议增强文档支持和社区互动,整体表现优异,推荐给寻求高效云管理方案的用户。
57 16
|
1月前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
128 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
30天前
|
人工智能 运维 Linux
AI驱动的操作系统服务体验:大模型时代的运维革新
AI驱动的操作系统服务体验:大模型时代的运维革新
36 5
|
1月前
|
人工智能 运维 监控
评测报告:AI驱动的操作系统服务套件体验
评测报告:AI驱动的操作系统服务套件体验
28 3

热门文章

最新文章