引导过程和服务过程

引导过程

bios:开机 检测硬件。寻找第一启动项,找主引导记录 (MBR/GPT)

MBR: 协助硬件找到操作系统

GRUB:系统启动加载器 (根据程序配置文件找到 内核-->【操作系统】文件的位置)

加载内核:运行内核(操作系统)

在操作系统上启动祖宗进程: centos7 systemd (一起启动) ,centos6 init (一个一个启动)

服务:特殊的应用程序 一般是在后天一直执行

系统服务:给系统提供服务功能

应用服务:给人提供服务

systemd 服务程序 给其他应用程序使用 (给一部分服务提供叫醒服务

nginx 给人使用

这两个 只要启动 一直在运行

后台运行

rpcbind 远程过程调用

 

服务过程

systemd的新特性

系统引导时实现服务并进行启动

按需启动守护进程

自动化的服务依赖关系管理

同时采用socket式与D-Bus总线式激活服务

向后兼容sysv init 脚本

使用systemctl 命令管理,systemctl 命令固定不变,不可扩展,非由systemd启动的服务

systemctl 无法与之通信和控制

系统状态快照

 

systemd 核心概念:unit

unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听

socket、保存的系统快照以及其它与init相关的信息

systemd单元类型

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

 

init0 关机

init1 单用户 休系统 管理系统

init2 字符界面 不支持nfs功能

init3 最完整的字符界面

init4 保留下来的字符界面

init5 图形界面

init6 重启

 

dd if=/dev/sda        of=/opt/mbr.bak    count=1  bs=512         ( 备份)

dd if =/dev/zero of=/dev/sda count=1 bs=512 (模拟破坏)

systemctl常用命令

systemctl start httpd 启动httpd

systemctl stop httpd 关闭httpd

systemctl restart httpd 重启httpd (先停止服务)

systemctl relod httpd 重新加载httpd (在不停止的服务情况下重新加载服务)

systemctl status httpd 查看目前服务的状态

systemctl enable httpd 开机自启

systemctl disable httpd 开机不自启

systemctl enable --now httpd 开机启动并且立即开启服务

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

 

service unit file文件通常有三部分组成

unit

service

lnstall

 

unit端的常用选项

Description:描述信息

After :

Requires:

Wants

Conflicts:定义units间的冲突关系

 

实验一 模拟破坏并修复MBR

 #添加一个新的硬盘sdb

 #给/dev/sdb 创建xfs文件系统

 #将/dev/sdb挂载到/mnt

 #将/dev/sda备份到挂载的mnt下取名back 。共512字节全部备份

 #去mnt下查看下有无备份

 #查看下sda的非文本文件

 #将sda下的前512全部覆盖为0

 #再次查看sda的非文本文件

 #重启

 #进入急救模式,选择第三个

 # 进入排错界面,选择第二个,拯救centos系统

#选择第一个 延申。

 #继续点击回车键

 #根目录下创建个test的文件夹

 #将/dev/sdb 挂载到刚创建的test文件夹下

 #用lsblk命令查看下,挂载成功

 #切换到test文件夹下,ls查看有无备份的back

 

 #将test下的back 备份到/dev/sda下

 #用dexdump这个命令查看/dev/sda非文本文件有无恢复

 #重启

 #完成

实验二 修复grub分区

 #删除boot里grub2下的grub.cfg

 #重启

#手速要快,点一下esc进入boot menu(启动菜单)界面,选择第三个cd-rom驱动器

 #选择第三个

 #选择第二个

 #进入光驱里的操作系统,选择1

 #如果你想进入本来的系统请输入这个命令,更改环境

 #输入这个命令

 #重新建立sda分区

 #重新构建grub菜单配置文件

 #退出当前环境

 #重启

 #完成

实验三 忘记root密码,怎么修改回来

 #按一下esc进入菜单界面,选第三个

 #选取第三个

 #选第二个

 #选取1

 #进入本系统,请输入这个命令

 #修改密码

 #输入新密码,再输入一次新密码

 #退出当前系统

 #重启

 #需要重新输入密码  完成

实验四 不用光驱修改密码

 

 

 #按e键进入

 

 #进入单用户界面

 #在这行的末尾输入 rd.break

 #输入CTRL  x 进入这个界面

 #mount查下 挂载情况。root只有读没有写。重新挂载下

 #重新挂载,给他写的权限

 

 #有了写的权限

 #切根

 #修改密码

 #放开安全机制

 #退出

 #重启

 #需要重新输入密码。   完成

 

 

posted @ 2023-11-05 17:38  citywalk  阅读(112)  评论(0)    收藏  举报