引导过程与故障处理方法

Linux操作系统引导过程

引导过程总览
开机自检(BIOS)  →  MBR引导 →  GRUB菜单 →→  加载内核(kernel)→ init进程初始化
操作系统 OS      内核——硬件
                外壳——应用

引导过程每个步骤详细解释
1、开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU(Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多数会移交给本机硬盘。
2.MRR引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单。
3.GRUB菜单
对于Linux操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系列引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS 7采用的是GRUB2启动引导器。
4.加载Linux
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌握整个Linux操作系统的运行过程。在CentOS系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.e17.x86_64”。
5.init进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程,最后等待用户进行登录。

系统初始化进程

init进程
  由Linux内核加载运行/sbiin/init程序
  init进程是系统中第一个进程
  init进程的PID(进程标记)号永远为1

Systemd

Systemd是Linux操作系统的一种init软件
  CentOS7种采用全新的Systemd启动方式,取代传统的SysVinit
  CentOS中运行的第一个init进程是/lib/sysytemd/systemd   注:/lib是库文件

Systemd单元类型
在这里插入图片描述

运行级别所对应的Systemd目标
在这里插入图片描述

修复MBR扇区故障

故障原因

病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作

故障现象

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

解决思路

1.备份mbr引导扇区到其他磁盘
2.模拟破坏mbr引导扇区
3.引导镜像急救模式,进行mbr扇区恢复

验证实验
添加一块硬盘,点击确定,并重启
第一开硬盘上的引导扇区,备份至第二块,并破坏第一块硬盘,通过第二块硬盘来恢复第一块硬盘的引导扇区

查看磁盘是否添加成功
[root@server1 ~]# ls /dev/  
sdb    

对磁盘进行格式分区

[root@server1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xbb3fa952 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 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.
正在同步磁盘。

对分区的磁盘进行格式化

[root@server1 ~]# mkfs.xfs /dev/sdb1
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

新建挂载点并进行挂载

[root@server1 ~]# mkdir /data
[root@server1 ~]# mount /dev/sdb1 /data
[root@server1 ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        47G  4.4G   43G   10% /
devtmpfs       devtmpfs  898M     0  898M    0% /dev
tmpfs          tmpfs     912M     0  912M    0% /dev/shm
tmpfs          tmpfs     912M  9.0M  903M    1% /run
tmpfs          tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sr0       iso9660   4.3G  4.3G     0  100% /mnt
/dev/sda1      xfs      1014M  174M  841M   18% /boot
tmpfs          tmpfs     183M   24K  183M    1% /run/user/0
/dev/sdb1      xfs        20G   33M   20G    1% /data

备份第一块硬盘的引导扇区,并再次查看

[root@server1 ~]# dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.00015594 秒,3.3 MB/[root@server1 ~]# ls /data/  (备份在sdb1硬盘内,换一个挂载点仍然存在)
sda.mbr.bak

附加:sda.mbr.bak=备份后文件命名的名字

模拟破坏

[root@server1 ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000145092 秒,3.5 MB/[root@server1 ~]# init 6   //重启后查看

此时发现不能正常启动,查看光盘镜像是否存在
在这里插入图片描述

在这里插入图片描述

进入troubleshooting菜单,回车,选择Rescue a centos system,并回车

在这里插入图片描述
进入引导可以按回车,或者等待,按“1“,再按回车进入sh-4.2#,进入shell界面终端模式,查看并查看目录,发现没有/data目录

在这里插入图片描述
创建挂载点,并进行挂载,并查看新建挂载点目录下是否有第一块磁盘的引导扇区

在这里插入图片描述
创建挂载点,并进行挂载,并查看新建挂载点目录下是否有第一块磁盘的引导扇区

恢复第一块磁盘的引导扇区,并重启
在这里插入图片描述
在这里插入图片描述

附加:
如果没有备份第一台硬盘的引导扇区,直接删除,有如下解决办法
1.重新挂载
2.把好的一台复制一份引导扇区,然后放在本地,进行恢复

修复GRUB引导故障

 故障原因
   MBR中的GRUB引导程序遭到破坏
   grub.conf文件丢失、引导配置有误

故障现象

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

解决思路

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@server1 ~]# cd /boot/  //进入引导分区
[root@server1 boot]# ls
config-3.10.0-693.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-b020cbf4ea834caa8823720fd0761632.img
initramfs-3.10.0-693.el7.x86_64.img
initramfs-3.10.0-693.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-693.el7.x86_64.gz
System.map-3.10.0-693.el7.x86_64
vmlinuz-0-rescue-b020cbf4ea834caa8823720fd0761632
vmlinuz-3.10.0-693.el7.x86_64
[root@server1 boot]# cd grub
[root@server1 grub]# ls  
splash.xpm.gz   //启动菜单的背景图片及样式
[root@server1 grub]# cd ../grub2/
[root@server1 grub2]# ls
device.map  fonts  grub.cfg(grub菜单的配置文件)  grubenv  i386-pc  locale
删除grub.cfg配置文件,做验证,并重启
[root@server1 grub2]# rm -rf grub.cfg 
[root@server1 grub2]# ls
device.map  fonts  grubenv  i386-pc  locale
[root@server1 grub2]# init 6
出现以下故障

在这里插入图片描述
右击,重新启动,(立刻按esc),查看镜像是否存在
在这里插入图片描述
选择3.CD-ROM Drive,并选择急救模式Troubleshooting,
在这里插入图片描述
选择第二个Rescue CentOS system,进入急救命令模式

在这里插入图片描述
在这里插入图片描述
加载系统镜像,进入bash环境,并重新建立加载sda分区
在这里插入图片描述
退出bash环境
exit
重启 reboot
在这里插入图片描述

破解centos7 root 登录密码

1:加载镜像系统
2:修改密码

重启虚拟机(眼疾手快)
在这里插入图片描述
选择第三个 CD-ROM Drive
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入bsah环境,且设置密码
在这里插入图片描述
输入新密码,并退出bash环境,重启
在这里插入图片描述
系统内部修改密码(修改的是当前登录的用户)

[root@server2 ~]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值