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