搞它!!!Linux——引导、排障及修复
一、引导过程
引导过程总览
开机自检:1、加电,运行硬件自检 2、加载驱动
MBR引导:引导程序,加载硬盘(如是双系统,系统一定要放在不同的硬盘中)
GRUB菜单:加载系统(引导系统的必要菜单)、安全模式,急救模式
加载内核(kernel):(系统的心脏)确定好系统后加载系统的内核
Init进程初始化:全部还原默认设置后系统会进行加载,然后进程启动(2种):
- 自动:系统必要的进程
- 启动延迟启动:开机自启动的程序(第三方外在组件)
1、 Init进程
由Linux内核加载运行 /sbin/init程序
是系统中第一个进程
PID进程号永远为1
2、init运行级别所对应的Systemd目标
二、排除启动类故障
1、修复MBR 扇区故障
故障原因:
- 病毒、木马等造成的破坏
- 不正确的分区操作、磁盘读写误操作
故障现象:
- 找不到引导程序,启动终端
- 无法加载操作系统,开机后黑屏、
解决思路:
- 应提前做好备份文件(cp -p 保留权限备份*)
- 以安装光盘引导进入急救模式
- 从备份文件中恢复
修复MBR 扇区故障 实验步骤:
一、备份mbr扇区数据到其他磁盘
加一块硬盘留做备份sdb
分区——格式化——挂载
[root@localhost ~]# fdisk /dev/sdb //创建新磁盘
……省略内容
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs.xfs /dev/sdb1 //格式化
……省略内容
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir /abc //创建目录
[root@localhost ~]# mount /dev/sdb1 /abc //将/dev/sdb1挂载到/abc
[root@localhost ~]# df -hT //查看挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
……省略部分内容
/dev/sdb1 xfs 20G 33M 20G 1% /abc
备份:
[root@localhost ~]# dd if=/dev/sda of=/abc/sda.mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000145897 秒,3.5 MB/秒
二、模拟破坏mbr引导扇区: [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1 记录了1+0 的读入 记录了1+0 的写出 512字节(512 B)已复制,0.000106943 秒,4.8 MB/秒 三、重启后,加载系统镜像文件中的急救模式:
四、把备份数据做恢复 mkdir /aaa
mount /dev/sdb1 /aaa
dd if=/aaa/sda.mbr.bak of=/dev/sda bs=512 count=1
2、修复GRUB引导故障
故障原因:
- MBR中的GRUB引导程序遭到破坏
- grub.conf文件丢失、引导配置有误
故障现象:
-系统引导停滞,显示“grub>”提示符
解决思路:
-尝试手动输入引导命令 -进入急救模式,重写或者从备份中恢复grub.conf -向MBR扇区中重建grub程序
修复GRUB引导故障 实验步骤:
一、使用系统急救模式进入命令字符界面
二、加载镜像中的系统进入bash环境
chroot /mnt/sysimage //加载系统镜像
三、重新构建grub菜单系统
grub2-install /dev/sda //重新建立加载sda分区
grub2-mkconfig -o /boot/grub2/grub.cfg //重新构建grub菜单配置文件
exit //退出bash环境
reboot //重启或init 6 重启
三、服务控制及切换运行级别
1、系统服务控制
常用方式 systemctl 控制类型 服务名称
控制类型 start:启动 stop:停止*(现实中尽量不要操作)* restart:重新启动(先停止,在启动,现实中尽量不要操作) reload:直接重新加载配置文件(建议使用) status:查看服务状态 …………
2、Linux系统的运行级别
查看运行级别
- runlevel命令
- systemctl工具
临时切换运行级别
- init命令
- systemctl工具
设置永久运行级别
systemctl enabled/disable 服务名称
查看系统服务的启动状态
systemctl is-enabled 服务名称
- 算法模板——KMP字符串匹配
- 算法模板——Tarjan强连通分量
- 3211: 花神游历各国
- webpack学习(五)配置详解
- 1131: [POI2008]Sta
- 3172: [Tjoi2013]单词
- WebApiThrottle限流框架使用手册
- webpack学习(六)打包压缩js和css
- 1051: [HAOI2006]受欢迎的牛
- 1572: [Usaco2009 Open]工作安排Job
- 深海中的STL—mt19937
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
- POJ1201 Intervals(差分约束)
- 【NLP】十分钟快览自然语言处理学习总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 你真的了解synchronized吗?
- 2017年天梯赛大区赛题集 7-1 出生年
- 2017年天梯赛大区赛题集 7-9 人以群分
- 浙大版《C语言程序设计(第3版)》题目集 练习2-1 Programming in C is fun!
- 浙大版《C语言程序设计(第3版)》题目集 练习2-3 输出倒三角图案
- 这款网络排查工具,堪称神器!
- 浙大版《C语言程序设计(第3版)》题目集 练习2-4 温度转换
- 浙大版《C语言程序设计(第3版)》题目集 练习2-6 计算物体自由下落的距离
- 浙大版《C语言程序设计(第3版)》题目集 练习2-8 计算摄氏温度
- 浙大版《C语言程序设计(第3版)》题目集 练习2-9 整数四则运算
- 浙大版《C语言程序设计(第3版)》题目集 练习2-10 计算分段函数[1]
- 浙大版《C语言程序设计(第3版)》题目集 练习2-11 计算分段函数[2]
- SAP Spartacus产品页面的normalizer
- Nodejs中使用net-snmp库读取智慧站房的温湿度、空调等实时数据
- 生气!面试官你过来,我给你手写一个Spring Aop实现!