目录
一.引导过程(centos启动过程)
操作系统存储在:
1.硬盘
2.光驱 udisk
3.网络的远端机器(通过网线下载到内存点)
1.1.开机自检(bios)
加电检测硬件是否有故障,如果无故障,就去bios中设置的第一启动项找操作系统
1.2.MBR引导
本机在硬盘中启动时,会在硬盘的第一个扇区中的MBR的设置(第一个扇区的前446字节,有一个grub程序第一阶段),根据 MBR 记录中的引导信息调用grub菜单,引导硬件找到操作系统。
总结:运行放在MBR扇区里的启动 GRUB引导程序
1.3.GRUB菜单及功能和组成
GRUB引导程序会根据grub.cfg配置文件找到操作系统
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
grub功能和组成:
新建一块硬盘 将mbr 前512字节 备份 sdv1(分区 也安装了文件系统)
1.4.加载Linux内核(操作系统)
加载内核:找到操作系统后,激活操作系统
把内核和镜像文件系统加载到内存中,可以使用
1.5.init进程初始化
init进程:由Linux内核加载运行/sbin/init程序,init进程是系统中第一个进程,init进程的PID(进程标记)号永远为1,init进程初始化:启动程序。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
祖宗进程:centos7:systemd;centos6:init
systemd可以将许多服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度许多进程一起上
init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢,要一个一个排队
二.服务
2.1.systemd服务(centos7)
Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/systemd
对比5 6 可以解决依赖关系并行启动
按需启动
自动解决依赖关系,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程
systemd特点:
系统引导时实现服务并行启动
按需启动守护进程
自动化的服务依赖关系管理
同时采用socket式与D-Bus总线式激活服务
socket与服务程序分离
向后兼容sysv init脚本
使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务
systemctl无法与之通信和控制
系统状态快照
linux运行级别:
systemctl get-default
# 获得当前的运行级别
systemctl set-defaul multi-user.targetln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
# 设置默认的运行级别为multi-user
systemctl islate multi-user.target#在不重启的情况下,切换到运行级别multi-user下
systemctl isolate graphical.target
# 在不重启的情况下,切换到图形界面下
2.2.systemctl系统服务类型
systemctl管理命令:
systemctl是用于管理systemd系统和服务管理器的命令行工具。
systemd是保姆级的进,代为管理所有进程
systemctl start 程序名 开启程序
systemctl stop 程序名 关闭程序
systemctl status 程序名 查看程序状态
systemctl restart 程序名 重启程序
systemctl reload 程序名 重新加载配置文件不会影响业务
systemctl enable 程序名 开机自启
systemctl disable 程序名 开机不自启
systemctl disable --now httpd 开机不自启并目立马关闭
systemctl enable --now httpd 开机自启并且立马启动
有 .service文件 并且在固定目录下 /usr/lib/systemd/system
2.3.系统服务控制
systemctl 控制类型 服务名称
控制类型:
start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态
三.修复MBR分区
修复mbr分区的方法有两种
1、将mbr分区内容第一个分区备份到另一块硬盘上,然后在mbr分区损坏之后,进入单用户模式,在单用户模式中,将备份拷贝到原mbr文件中,最后重启即可。
2、将mbr分区内容备份到其他主机中,通过网络进行恢复。
步骤:
本实验是人为损坏mbr分区后在恢复的所有步骤
(1)首先加一块硬盘,格式化并挂载在某个文件中
(2)备份mbr分区内容到新硬盘上
dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512
从哪复制 复制到哪去 复制几次 复制多少内容,不写单位默认是字节
dd if=/dev/sda of=/dev/sdb1 count=1 bs=512
# dd 相当于复制
# if 是源文件
# of 是目的文件
# count 指定读取数据块的数量
# bs 读取数据块的大小,不写单位默认为字节,加单位要写大小如M、G
(3)损坏mbr分区的内容
dd if=/dev/zero of=/dev/sda count=1 bs=512
(4)重启,进入单用户面模式
(5)创建文件夹,将硬盘挂载到新文件夹上
mkdir bak mount /dev/sdb1 /bak |
(6)将硬盘中备份的mbr文件拷贝到/dev/sda中,然后重启即可修复
dd if=/bak/mbr.bak of=/dev/sda count=1 bs=512 |
四.gurb分区修复
(1)模拟grub分区损坏,删除grub.cfg文件
rm -rf /boot/grub2/grub.cfg cfg(模拟删除grub.cf 文件) |
(2)重启进入急救模式,输入1
在下面这个界面按“esc”键进入,否则进入不了急救模式,且模拟器上这个界面只有0.5秒
3)进入急救模式后,更改环境
chroot /mnt/sysimage |
(4)重新建立和加载sda分区
grub2-install /dev/sda |
(5)重新构建grub菜单配置文件
(6)重启
五.修改密码
修改密码的方式有两种:
1.借助光驱
2.不借助光驱。
1.借助光驱
chroot /mnt/sysimage
#进入急救模式后,更改环境
passwd
#修改密码
2.不借助光驱(两种做法)
扩展:
用setenforce 0命令临时关闭SElinux
[root@sulibao ~]# setenforce 0
setenforce: SELinux is disabled
查看状态是否关闭
[root@sulibao ~]# getenforce
Disabled
1.第一种方法:
①先打开终端,输入vi /etc/selinux/config,修改配置文件/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出,永久关闭setenforce 0 关掉
②重启重启系统,进入选择系统界面,任意键取消自动选择,按e进入单用户模式
③找到在linux16这一段末尾,添加rd.break,输入完成后按住Ctrl+x。
④输入命令修改密码
a.输入命令 mount -o remount,rw /sysroot/ 回车
b.chroot /sysroot/ passwd root 回车
c.输入密码两次,密码不可见
d.输入命令touch /.autorelabel 回车 再输入 exit 回车 reboot
2.第二种做法:
①和第一种方法一样也是需要永久关闭selinux
vim /etc/selinux/config
②启动时任意键暂停启动,按e键进入编辑模式
③将光标移动linux 开始的行,将ro 及后面的改为 rw init=/sysroot/bin/sh,然后ctrl+x启动
(5)输入命令,修改密码,重启
chroot /sysroot
passwd root(修改密码的过程是不可看的)
如果SELinux是临时关闭或者是启用的,才需要执行下面操作,如查没有启动,不需要执行
touch /.autorelabel
exit
reboot