引导过程
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只有读没有写。重新挂载下
#重新挂载,给他写的权限
#有了写的权限
#切根
#修改密码
#放开安全机制
#退出
#重启
#需要重新输入密码。 完成
标签:引导,systemd,服务,httpd,dev,systemctl,sda,过程 From: https://www.cnblogs.com/yanrui07/p/17806212.html