Linux——引导过程与服务控制

Linux操作系统引导过程

引导过程总览

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

系统初始化进程

init进程
1、由linux内核加载运行/sbin/init程序
2、init进程是系统中第一个进程
3、init进程的PID(进程标记)号永远是1
systemd
1、systemd是Linux操作系统的一种init软件
2、CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
3、CenOS7中运行的第一个init进程是/lib/systemd/system
Systemd单元类型
在这里插入图片描述
运行级别所对应的Systemd目标
在这里插入图片描述

排除启动类故障

修复MBR扇区故障

故障原因
1、病毒、木马等造成的破坏
2、不正确的分区操作、磁盘读写误读写
故障现象
1、找不到引导程序,启动中断
2、无法加载操作系统,开机后黑屏
解决思路
1、应提前做好备份文件
2、以安装光盘引导进入急救模式
3、从备份文件中恢复
特别说明
mbr扇区存在第一块硬盘空间里,因此想要破坏mbr数据,只需要破坏第一块硬盘空间里的数据即可。
对第一块硬盘备份时,注意备份磁盘空间不能小于第一块硬盘的空间大小。
相关实验原理及命令
故障原因:病毒、木马等造成的破坏,不正确的分区操作,磁盘读写操作
故障现象:找不到引导程序,启动中断,无法加载操作系统,开机后黑屏
应对思路:应提前做好备份文件,以安装光盘引导进入紧急急救模式,重备份文件中恢复
操作步骤模拟MBR扇区实验
加一块硬盘做实验
进系统查看磁盘
fdisk -l 查看是否有sdb
mkfs -t ext4 /dev/sdb 格式化sdb
mount /dev/sdb/opt 挂载
1、备份MBR扇区数据
dd if =/dev/sda of=/opt/mbr.bar 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=1 bs=512
6、重启reboot 进入系统测试是否正常

修复GRUB引导故障

故障原因
1、MBR中的GRUB引导程序遭到破坏
2、grub.conf文件丢失、引导配置有误
故障现象
系统引导停滞,显示“grub>”提示符
解决思路
1、尝试手动输入引导命令
2、进入急救模式,重写或者从备份中恢复grub.conf
3、向MBR扇区中重建grub程序
相关实验原理及命令
cd /boot/grub2 进入grub2
rm -rf grub.cfg 删除grub2.cfg 模拟故障
init 6 重启
出现故障,如下
grub>
###修复如下###
1、引导急救模式,加载系统镜像
chroot /mnt/sysimage/
2、重新建立加载sda分区
grub2-install /dev/sda
3、重建构建grub菜单配置文件
grub2-mkconfig -o/boot/grub2/grub.cfg
4、退出bash环境
exit
5、重启
reboot

遗忘root用户密码

故障原因
遗忘root用户密码
故障现象
1、无法进行需要root权限的管理操作
2、若没有其他可用账号,将无法登录系统
解决思路
进入急救模式,重设密码
相关实验原理及命令
sh-4.2#chroot /mnt/sysimage 加载系统镜像
bash-4.2#passwd root
new:
retry:
退出bash环境 exit
重启 reboot

服务控制及切换运行级别

系统服务控制

systemctl 控制类型 服务名称
控制类型
start:启动
stop:停止
restart:重新启动(先关闭服务再开启服务,服务会中断)
reload:重新加载(不会中断服务)
status:查看服务状态

Linux系统的运行级别

查看运行级别
runlevel命令(只能查看切换运行级别与当前运行级别)
systemctl工具(systemctl时能查看默认的运行级别)
临时切换运行级别
init命令(运行级别所对应的数字)
systemctl工具(命令参数是具体的target)
设置永久运行级别

查看当前的运行级别
1、切换到命令行界面
systemctl isolate multi-user.target /graphical.target (相当于 init 3/5)
2、用runlevel查看当前的运行级别
runlevel
5 3
说明:5是前一个运行级别 3是当前的运行级别
3、也可以用who -r命令
who -r
run-level 3 2020-04-07 16:44 last=5
run-level 是当前的运行级别

修改默认的运行级别:(set-default用来指定默认的运行级别)
systemctl set-default multi-user.target
提示信息:Removed /etc/systemd/stystem/default.target.
created symlink /etc/systemd/system/default.target→/usr/lib/systemd/system/multi-user.target.

rm -f /etc/systemd/system/default.target
ln -sf /usr/lib/sysytemd/system/multi-user.target /etc/systemed/system/default.target
init 6/reboot
两条命令功能相同,都要重启才能生效

优化启动过程

优化启动过程

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

系统服务的启动和控制

ntsysv系统服务管理工具
ntsysv
ntsysv --level 级别列表
按照默认设置,只有当前运行级别会被配置。要配置不同的运行级别,使用“–level”选项来指定一个或多个运行级别。
例如,命令“ntsysv --level 345”配置运行级别3、4和5
查看系统服务的启动状态
systemctl is-enabled 服务名称
设置系统服务的启动状态
systemctl enable/disable 服务名称
补充:
systemctl start(stop/status/reload/restart) 服务
= service 服务 start(stop/status/reload/restart)
注意:systemctl或service 管理服务时,在/lib/systemd/system下面要有这个服务,service文件或者在/etc/init.d/服务的配置文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值