Linux引导及服务

目录

Linux系统开机引导过程

Linux开机启动

操作启动开机引导过程

开机自检

mbr引导

grub菜单

加载内核

init进程初始化(串行启动,速度较慢)

httpd、vsftpd(ftp)、sshd、network服务

systemd服务(并行启动,速度较快)

编译安装(nginx)自启动实验:

启动故障排除

mbr扇区故障修复

mbr扇区修复实验:

grub引导故障修复

grub引导修复实验:

CentOS 7密码遗忘或重置

密码重置实验:

设置grub密码

chkconfig工具(脚本运行)


Linux系统开机引导过程

Linux开机启动

操作启动开机引导过程
  • bios:开机自检系统,去第一启动项上,找主引导记录(mbr gpt)

  • mbr:主引导记录,协助硬件找到开机系统

  • grub:启动加载器(根据程序的配置文件找到内核,(操作系统)文件的位置)

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

  • 在操作系统上启动终极进程

    • centos 7:systemd

    • centos 6:init

内核文件:

vmlinuz-3.10.0-693.el7.x86 64 7

vmlinuz-2.6.32-696.el6.x86 64 6

开机自检

BIOS:是一个小程序,集成在主板

硬件启动POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分,负责硬件检测

主板的ROM:BIOS,Basic Input and Output System,保存基本程序

mbr引导

存放于第一个扇区(一个扇区512字节)

mbr大小:446字节

mbr与grup为同一程序,mbr为第一阶段,是一段二进制,类似于引导目录,引导硬件找到操作系统,由grup进行下一阶段

第一扇区中mbr剩余空间用来存放ext4文件

grub菜单

作用

  • 交互

  • 设置密码

  • 自我修复

加载内核

内核功能:实现进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能等

init进程初始化(串行启动,速度较慢)
  • 由Linux内核加载运行/sbin/init程序,用于CentOS 6系统

  • 是系统中的第一个进程

  • PID(进程标记)永远为1

httpd、vsftpd(ftp)、sshd、network服务

daemon:守护进程,在后台运行处理,不可用于管理程序

  • CentOS 7的管理命令是:systemd(常用命令,必须记得)

  • CentOS 6的管理命令是:chkconfig

systemd服务(并行启动,速度较快)
  • 是Linux操作系统的一种init软件

  • 是init的升级版本,用于CentOS 7系统

  • 运行的第一个init进程是/lib/systemd/systemd

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

systemd目标所对应的运行级别

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

切换运行级别:

命令:init 级别(0-6)

然后输入用户名及密码,完成切换

systemctl 常用命令:

命令作用
systemctl start 程序名 (服务名)启动某个服务
systemctl stop 程序名关闭某个服务
systemctl restart 程序名重启某个服务
systemctl reload 程序名重新加载某个程序的配置文件,在不停止服务的情况下重新加载服务
systemctl status 程序名查看目前服务的状态
systemctl enable程序名的状态 开
systemctl enable --now 程序名开机启动并且立即开启服务
systemctl disable 程序名开机不自启动
systemctl disable --now 程序名开机不自启动并且立即关闭服务

在编译安装的情况下将文件配置开机自启:

  • vim ~/.bashrc(启用一个程序)

  • vim /etc/profile(启用全部程序)

  • /apps/sbin/httpd:文件路径,一定必须是绝对路径

为方便统一管理会将文件都交给systemd服务管理:

  • systemctl ststus httpd.service pd

  • httpd.service文件在使用rpm或yum安装时会自动生成,编译安装需要手动配置

  • 文件位置:/usr/lib/systemd/system/文件名

    • vim /usr/lib/systemd/system/文件名

    • [Unit]

      [Service]

      [install]

编译安装(nginx)自启动实验:
  • 编译安装

  • 将安装程序交给systemd服务管理

  • 启动nginx

启动故障排除

mbr扇区故障修复
  • 故障原因

    • 木马、病毒等破坏

    • 不正确的分区及磁盘读写操作

  • 故障现象

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

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

  • 解决方案

    • 提前做好备份文件

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

  • 从备份文件中恢复

mbr扇区修复实验:
  • 新建磁盘分区,备份mbr扇区

注意:挂载目录不能与故障mbr在同一磁盘

查看文件是否备份成功

  • 故意破坏磁盘

  • 进入光驱页面,选择故障排除

  • 进入光驱的小型操作系统,选择继续

  • 将备份文件复制进系统盘中

grub引导故障修复
  • 故障原因

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

    • grub.conf文件丢失、引导配置有误

  • 故障现象

    • 系统引导停滞,显示“grub>”提示符

  • 解决思路

    • 尝试手动输入引导命令

    • 进入急救模式,重写或者从备份中恢复grub.conf

    • 向MBR 扇区中重建grub程序

grub引导修复实验:
  • 将/boot/grub2下的grub.cfg文件移除

  • 重启进入boot目录

  • 与mbr修复的光驱页面一样,选择故障排除>急救系统>选项一继续>h回车进入shell程序

  • 复制运行命令

  • 重新安装grub2

  • 退出二层登录界面并重启

CentOS 7密码遗忘或重置
  • 故障原因

    • 遗忘root用户的密码

  • 故障现象

    • 无法进行需要root权限的管理操作

    • 若没有其他可用帐号,将无法登录系统

  • 解决思路

    • 进入bash程序,重设密码

密码重置实验:
  • 方法一:配置光驱修改

  • 进入bash程序

  • 修改密码,并重启

  • 方法二:单机修改密码

  • 进入单机模式

  • 启动修改程序

  • 进入单机模式,重新挂载

  • 切换根目录,修改密码,并重启

设置grub密码
  • 运行命令grub2-setpassword

  • 重新进入重启界面

chkconfig工具(脚本运行)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值