Linux引导过程与服务控制(干货满满)

Linux操作系统引导过程

■ 引导过程总览

  • 开机自检(BIOS) MBR引导
  • MBR引导
  • GRUB菜单
  • 加载内核 (kernel)
  • init进程 (初始化)

流程:
1. 加载BIOS的硬件信息与进行自我检测,根据BIOS设置来取得第一个可启动的设备
2. 读取并执行第-一个启动设备内MBR的启动引导程序(可以是grub2, 也可以是spfdisk)
3. 根据启动引导程序的设置加载kernel, kernel会开始检测硬件与加载驱动程序
4. 在硬件驱动成功后,kernel会主动调用systemd程序,并以default. target流程启动

systemd执行sysinit. target初始化系统及basic. target准备操作系统                 
systemd启动multi-user. target下的本机与服务器服务                    
systemd执行multi-user. target下的/etc/rc. d/rc. local文件                 
systemd执行multi -user. target下的getty. target及登录服务                  
systemd执行graphical需要的服务    

几个专有名称解释:
BIOS: 不论是传统BI0S还是UEFI BIOS都会被简称为BIOS
MBR:虽然分区表有传统MBR及新式GPT,GPT有保留-一块兼容MBR的区块,因此,都简称MBR
关于内核文件:内核文件存放路径: /boot/vml inuz

系统初始化进程

■ init进程
● 由Linux内核加载运行/sbin/init程序
● init进程是系统中第一个进程
●init进程的PID (进程标记)号永远为1
■ Systemd
● Systemd是Linux操作系统的一种init软件
● CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
● CentOS7中运行的第一个init进程 是/ib/systemd/systemd

Systemd单元类型

在这里插入图片描述

运行级别所对应的Systemd目标

在这里插入图片描述

修复MBR扇区故障实验

■ 故障原因
● 病毒、木马等造成的破坏
● 不正确的分区操作、磁盘读写误操作
■ 故障现象
● 找不到引导程序,启动中断
● 无法加载操作系统,开机后黑屏
■ 解决思路
● 应提前作好备份文件
● 以安装光盘引导进入急救模式
● 从备份文件中恢复
操作步骤模拟MBR扇区实验
准备工作:

加一块硬盘做实验       
进系统查看磁盘       
fdisk -1 ##看是否有sdb        
mkfs -t ext4 /dev/ sdb            ###格式化sdb        
挂载mount /dev/sdb /opt

1、备份MBR扇区数据 dd if=/dev/sda of=/opt/ mbr. bak bs=512 count=1
2、模拟MBR扇区故障 dd if=/dev/zero of=/dev/sda bs=512 count=1
重启后观察系统是否有问题,出现 operating system not found
上述就是有故障了MBR挂了,光盘引导,进入急救模式,提示操作,从备份文件中恢复 MBR扇区,步骤如下:
1 装入光盘,在光盘引导界面选择troubleshooting:
2 进入troubleshooting菜单选择Rescue a centos system
3 进入引导可以按回车,或者等待
按1在按回车进入sh-4.2#

4 急救模式下sdb的挂载
mkdir / sdd
mount /dev/sdb /sdd
cd/sdd查询下该备份文件是否存在

5 dd if=/sdd/mbr. bak of=/dev/sda count=l bs=512
6 重启reboot进入系统测试是否正常。

备注:mbr扇区存在于第一块硬盘空间里,因此想要破坏mbr数据,只需要破坏第一块硬盘空间里的数据即可。对第一块硬盘备份时,注意备份磁盘空间不能小于第一块硬盘的空间大小。

修复GRUB引导故障实验

■ 故障原因
● MBR中的GRUB引导程序遭到破坏
● grub.conf文件丢失、引导配置有误
■ 故障现象
● 系统引导停滞,显示“grub>" 提示符
■ 解决思路
● 尝试手动输入引导命令
● 进入急救模式,重写或者从备份中恢复grub.conf
● 向MBR扇区中重建gru程序
准备工作:

cd /boot/ grub2         ###进入grub2            
rm -rf grub. cfg        ##删除grub2. cfg模拟故障             
init 6 重启

###修复如下###
1. 引导急救模式,加载系统镜像 chroot /mnt/ sys image/
2. 重新建立加载sda分区 grub2- install /dev/ sda
3. 重新构建grub菜单配置文件 grub2- mkconfig -0 /boot/ grub2/grub. cfg
4. 退出bash环境 exit
5. 重启 reboot

遗忘 root 用户密码实验

■ 故障原因
● 遗忘root用户的密码
■ 故障现象
● 无法进行需要root权限的管理操作
● 若没有其他可用帐号,将无法登录系统
■ 解决思路
●进入急救模式,重设密码
步骤如下:
sh-4. 2#chroot /mnt/sysimage 加载系统镜像
bash-4. 2#passwd root
new :
retry:
退出bash环境 exi t
重启reboot

系统服务控制

■ 系统服务控制
systemctl 控制类型 服务名称
■ 控制类型
● start:启动
● stop:停止
● restart:重新启动
● reload:重新加载
● status:查看服务状态

备注:重新启动:先关闭服务再开启服务,服务会中断
重新加载:不会中断服务

Linux系统的运行级别

查看运行级别
● runlevel命令
● systemctl工具
临时切换运行级别
● init命令
● systemctl工具
修改默认的运行级别:
#set-default用来指定默认的运行级别
[root@centos8 ~]# systemcth set-default multi -user.target
提示信息: Removed /etc/ systemd/ system/ default.target.
Created symlink /etc/ systemd/ system/default.target.→/usx/1ib/ systemd/ system/multi-user .targdt.

rm -f /etc/systemd/ system/default.target
ln -sf /usr/lib/systemd/ system/ multi -user.target /etc/systemd/ system/ default.target
Init 6/ reboot
两条命令功能相同,都要重启才能生效,说明:我们可以看到:set-default所做的操作

优化启动过程

■ ntsysv工具
● 提供一个交互式、可视化窗口
● 可以在字符终端运行
● 便于集中管理多个服务
■ systemctl工具
● 不提供交互式、可视化窗口
● 管理单个服务效率更高

系统服务的启动和控制

■ ntsysv系统服务管理工具
ntsysv
ntsysv --level 级别列表
■ 查看系统服务的启动状态
systemctl enable/disable 服务名称
■ 设置系统服务的启动状态
systemctl enable/disable 服务名称
systemctl start 服务=service 服务 start
systemctl stop 服务=service 服务 stop
systemctl status 服务=service 服务 status
systemctl reload 服务=service 服务 reload
systemctl restart 服务=service 服务 restart
注意: systemctl 或service管理服务时,在/lib/systemd/system下面要有这个服务. service文件或者在/etc/init. d/服务的配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值