专栏首页用户7721898的专栏搞它!!!Linux——引导、排障及修复

搞它!!!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 服务名称

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 做完这个实验你才会真的明白什么是DHCP!!!

    实验案例:在华为ensp软件上做DHCP中继实验 实验环境 如图所示,在win10下使用华为ensp软件上进行模拟实验

    不吃小白菜
  • 排障集锦:九九八十一难之第十二难!mysql 主从同步error: The slave I/O thread stops because master and slave have equa

    error: The slave I/O thread stops because master and slave have equal MySQL serv...

    不吃小白菜
  • 弄它!!!2020年了NET地址转换你还不知道么?小小net!小编带你分分钟拿下!

    打开你的命令行输入ipconfig查询你的Ip地址 打开百度,输入Ip查询,查询你的ip地址 你是不是发现了一件很神奇的事情,这两个地址是不一样的。但是我们...

    不吃小白菜
  • 加载宏

    加载宏其实就是一个特殊一点的Excel带VBA程序的文件,最大特点就是不会显示出Excel表格的界面,只有在VBA编辑器里才能看到它的工程属性并编辑它的VBA代...

    xyj
  • 记一次 PowerShell 免杀实战

    UNIX 系统一直有着功能强大的壳程序(shell),Windows PowerShell 的诞生就是要提供功能相当于 UNIX 系统的命令行壳程序(例如:sh...

    信安之路
  • svn 冲突Skipped ‘inm/inm/templates‘ -- Node remains in conflict

    windseek
  • 梯度下降法及其Python实现

    梯度下降法及其Python实现 基本介绍 梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最优化问...

    企鹅号小编
  • 1.3 自定义类加载器

    前面说了类加载器的双亲委派机制, 也知道了一个类是如何被类加载器加载进来的. 接下来. 我们来看一看如何自定义类加载器

    用户7798898
  • 剑指offer第6题:使用两个栈实现队列

    对于这种数据结构的实现类题目,出题者的意图主要还是想让我们对这种数据结构具有深刻的了解。对于栈而言,具有先进后出的特点,而对于队列而言,具有先进先出的特点。所以...

    鹏-程-万-里
  • iOS App 启动性能优化

    导语 本文介绍了如何优化 iOS App 的启动性能,分为四个部分: 第一部分科普了一些和App启动性能相关的前置知识 第二部分主要讲如何定制启动性能的优化目标...

    腾讯Bugly

扫码关注云+社区

领取腾讯云代金券