Linux系统引导过程和故障排错

一.引导过程

1.开机自检:BIOS(基本输入输出系统)

控制CUP虚拟化开关,系统的引导顺序,主机硬件时间。

BIOS需要BIOS电池来维持供电,保证数据的存放。

BIOS 电池放电会恢复出厂设置。

特点:

(1.)加电自检   失败:通过屏幕或蜂鸣报警

(2.)硬件初始化

(3.)引导操作系统(BOOT)

2.MBR引导

主机开机后,首先根据硬盘第一个扇区中的MBR(主引导程序)将系统控制权传递给含操作系统引导文件的分区,读取主引导记录表的512字节,得以调用启动菜单(GRUB)

3.GRUB菜单

系统控制权传递给GRUB后,将会显示启动菜单给用户选择,进而加载Linux内核

4.加载Linux内核

介于各种硬件资源和系统进程之间,负责资源分配 和调度内核接到控制权后掌控整个Linux运行过程

5.init进程初始化

由Linux内核加载运行/sbin/init程序

系统中的第一个进程,控制Linux运行级别

6.Linux运行级别(censot7以上版本会以systemd替换掉init)

0:poweroff.target   关机状态,使用该级别时会关闭主机

1:rescue.target      单用户模式,不使用密码即可登录,多用于系统维护

2:multi-user.target    用户定义运行级别,默认等于3,不支持网络

3:multi-user.target   字符界面的完整多用户模式,多用于服务器运行级别

4:multi-user.target    用户定义运行级别,默认等于3,不常用

5:graphical.target    图形界面的多用户模式,提供图形桌面操作环境

6:reboot'.target       重新启动,使用该级别会重启主机

7.系统服务控制

格式:systemctl 控制类型 服务名称 [.service]

控制类型:start   启动类型

stop    停止类型

restart   重启类型

reload   重新加载配置

8.查看系统运行级别(target

runlevel命令:

前级别(N表示无,S表示单用户)   当前级别

9.查看系统默认运行级别(图形界面)

格式:systemctl  get-default

ln -sf   -s:创建软连接  -f:强制覆盖

10.开机优化工具

格式:ntsysv --level 级别   按空格键进行修改

systemctl   1.enable:启用

     2.disable:禁用

systemctl list-units --type=service :查看开机自启所有启动项

chkconfig --list 某个启动项   :查看该启动项

二、故障排错

1.MBR扇区故障(黑屏)

原因:1.分区不规范 2.病毒攻击

解决:备份分区表数据,存放在别的磁盘中。进急救模式进行数据还原

步骤:

1.在另外的磁盘中创建大小约1G的分区,格式化并将/devsdb1/挂载到文件/back下  

 [root@localhost ~]# mount /dev/sdb5 /back/

2.将主引导记录表的512字节拷贝到新分区的目录下的文件   /back/sda.mbr.bak

dd if=/dev/sda of=/back/sda.mbr.bak bs=512 count=1

3.模拟破坏主引导记录表

dd if=/dev/zero of=/dev/sda bs=512 count=1

4.重启进入急救模式

reboot

5.创建文件夹,将/dev/sdb5挂载到该目录下

6.将/back/sda.mbr.bak/中的主引导记录前512字节还原到/dev/sda中

dd if=/back/ of=/dev/sda

7.重启 :reboot

2.RGUB引导故障(停留在grub>界面

 grub.cfg文件损坏:

1.进行备份,将文件拷贝到/tmp下

cp /boot/grub2>grub.cfg   /tmp

2.模拟文件丢失,并重启

rm  /boot/grub2/grub.cfg

reboot(会显示故障界面)

 3.关机重启进入BIOS设置,设置boot选项为光驱第一启动盘

4.进入急救模式,切换到硬盘目录下

chroot /mnt/sysimage

5.将事先备份好的grub文件还原到原目录下

6.进入BIOS设置将硬盘改为第一启动盘后重启即可

MBR引导程序损坏导致的GRUB引导故障:

 1.在根目录下创建文件/beifen,将/dev/sdb1挂载到该目录下

[root@localhost ~]# mkdir /beifen

[root@localhost ~]# mount /dev/sdb1 /beifen

2.将/dev/sda中的前446字节备份到文件夹/beifen中

3.模拟MBR引导程序损坏

4.重启 

reboot

5.进入急救模式,切换到硬盘目录下

6.将/beifen中的引导数据还原到/dev/sda中

7.退出重启

exit    reboot

若没有grub备份,则需要重建grub引导程序

1.在没有备份的前提下清空grub前446字节数据

2.重启,调整光驱启动顺序后进入急救模式切换到硬盘目录

3.重建grub引导程序

grub2-install /dev/sda

 

4.sync确认后退出重启

sync

exit

reboot

3.修改root用户密码

(1.)进入急救模式,切换到硬盘模式

chroot /mnt/sysimage

输入  root  passwd   更改root密码

(2.)在急救模式中使用文本编辑器

vim /etc/shadow   将第一行的root密码删除即可

4./boot 误删除修复

1.进入急救模式切换到硬盘目录下

chroot /mnt/sysimage

2.在/media下创建子目录cdrom

mkdir /media/cdrom

3.将硬盘下的cdrom挂载到子目录下

mount /dev/cdrom /media/cdrom

4.强制安装boot内核

rpm -ivh /media/cdrom/Pachages/kernel-3.10…………--force(强制条件)

5.查看/boot后会恢复大部分内容

ls /boot

6.创建grub2文件

grub2-install /dev/sda

7.创建grub.cfg文件

grub2-mkconfig

5.修复文件系统

xfs_repair /dev/...     针对xfs系统

fsck -y -t ext4 /dev/...    针对ext4系统

6.磁盘资源耗尽故障

原因:固定的inode数量被用户创建的文件占用完,剩余容量空间不可用

(1.)查看文件是否重要,若重要需拷贝后进行格式化,调整inode数量后再进行文件恢复

(2.)若文件不重要则直接清理进行格式化,再调整inode数量(一般情况)

7.磁盘坏道损坏修复

使用badblocks -sv /dev/...  命令进行坏道扫描

原文地址:https://www.cnblogs.com/990114-jhc/p/11315288.html