Linux的引导和服务

 


一、linux的引导过程

1.1、开机自检

服务器主机开机后,根据主板BIOS的设置对cpu、内存、显卡等设备进行基础检测,检测成功后根据预设的启动程序移交系统控制权,大多时候会移交系统控制权,大多时候会移交给本机硬盘。

注意:如果是网络启动的话会开启pxe。

1.2、MBR引导

当本机硬盘启动系统时,首先根据第一个扇区中MBR的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单

注意:运行在MBR扇区里启动GRUB引导程序

1.3、GRUB菜单

对于linux操作系统来说GRBR(统一管理器)是使用最为广泛的多系统引导程序。

系统控制权传递给GRUB以后,将会显示用户菜单给用户选择,并根据所选项(或采用默认值)加载linux内核文件,然后将系统控制权交给内核,需要主要的是cenos7采用的是GRUBR2启动引导器。

注意:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置。

1.4、加载linux内核

linux内核是一个预先编译好的内设二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度,内核接过系统控制权后转交给内核后,将完全掌握整个linux操作系统的运行过程,在cenos中默认的内核文件放置位置在/boot/vmlinuz-3.10.0-514.el7.x86_64”。

1.5、init进程初始化

为了完成进一步的系统引导过程,linux内核首先将系统中的“/sbin/init”程序加载到内存运行(运行中的程序称为进程),init进程完成一系列的初始化过程,最后才会让用户登录

注意:加载硬件驱动程序,内核init加载到内存中运行。

二、MBR扇区修复

故障原因

  • 病毒木马造成的伤害
  • 不正确的分区操作,磁盘读写误操作

故障现象

  • 找不到引导程序,启动中断
  • 无法加载操作系统,开机后黑屏

解决思路

  • 应提前做好备份文件
  • 以安装光盘引导进入急救模式
  • 从备份文件中恢复

MBR扇区修复实例操作

创建一块新磁盘让系统识别

1
2
3
[root@localhost ~]# echo "- - -">/sys/class/scsi_host/host0/scan  刷新接口命令
[root@localhost ~]# echo "- - -">/sys/class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -">/sys/class/scsi_host/host2/scand

对新磁盘进行分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost ~]# fdisk /dev/sdb        给磁盘分区命令
欢迎使用 fdisk (util-linux 2.23.2)。
  
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
  
Device does not contain a recognized partition table
使用磁盘标识符 0x5df804d8 创建新的 DOS 磁盘标签。
  
命令(输入 m 获取帮助):n                   创建一个新磁盘
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p             
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB   
  
命令(输入 m 获取帮助):w
The partition table has been altered!
  
Calling ioctl() to re-read partition table.g 

给分区创建文件系统

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# mkfs.xfs /dev/sdb1        给/dev/sdb1 创建xfs文件系统
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

将分区挂载到/opt/目录下  

1
2
[root@localhost ~]# vim /etc/fstab
UUID=81c4e848-8165-4554-9eaf-e3fd5da392f9 /opt  xfs      defaults       0  0

将/dev/sda备份到/opt/mbr.bak

1
2
3
4
[root@localhost ~]# dd if=/dev/sda of=/opt/mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000254405 秒,2.0 MB/秒

破坏MBR扇区

1
2
3
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
  
使用空白文件破坏MBR扇区

重启

1
[root@localhost ~]# reboot

 

 

 

 选择第一个继续

 

 按照如下操作

 

 

三、GRUB修复

故障原因

  • MBR中的GRUB引导程序遭到破坏
  • grub.conf 文件丢失,引导配置有误

故障现象

系统引导停滞  ,显示grub>提示符

解决思路

尝试手动输入引导

进入急救模式,重写或恢复grub.conf文件

向MBR扇区中重建grub

3.1、修复grub文件

将grub.cfg文件备份到/opt/目录

1
[root@localhost grub2]# cp grub.cfg /opt/

删除这个配置文件

1
root@localhost grub2]# rm -rf grub.cfg

重启

1
[root@localhost grub2]# reboot

在读条状态时按“ESC”选择光驱进入

 

 选择解决问题

 

 进入急救模式

 

 选择第一个模式

 

 按照以下方式操作

 

四、修改密码

故障原因

遗失root用户密码

故障现象

无法进行需要root权限的管理操作

若没有其他可用账号,将无法登录系统

解决思路

进入急救模式修改密码

4.1、光驱修改密码

 

 

 

 

 

 

 

 

 

 

4.2、编辑模式修改密码

启动时任意键暂停启动,按e键进入编辑模式

 

 将光标移动linux开始的行,添加内核参数rd.break

按ctrl-x启动

 

 

 

posted @   赵哈哈#  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示