引导过程与服务控制

一、引导流程

1、BIOS:BIOS是进本输入输出系统。服务器主机开机后,将根据主办BIOS只用的设置对CPU内存显卡,键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,检测失败会(1)通过显示器屏幕或(2)蜂鸣器报警,多时候会移交给本机硬盘。可存储硬件配置信息,独立电池供电。BIOS电池放电可以恢复出厂设置。

BIOS的功能:(1)加电自检(2)硬件初始化(3)引导操作系统(BOOT)

2、MBR引导:当从本机硬盘中启动程序时,首先根据硬盘第一个扇区MBR的设置,将系统控制权传递给包含操作系统引导文件的分区(/boot);或者直接根据MBR记录中的音带信息调用启动菜单。(GRUB)

3、GRUB菜单:对于Linux操作系统来说。GRUB是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB后,将会显示启动菜单给用户选择,并根据所选项加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS7采用的是GRUB2启动引导器。

4、加载Linux内核:Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌握整个Linux操作系统的运行过程。在CentOS系统中,默认的内核文件位于“/boot/VMLinuz-3.10.0.el7.x86_64”

5、init进程初始化:它是系统中的第一个进程,所有进程的父进程,PID永远为1。为了完成系统进一步的系统引导过程,Linux内核首先将系统先中的/sbin/init程序加载到内存中运行(运行中的程序称为进程),init进程负责完成系列的系统初始化进程,最后等待用户进行登录。

二、系统引导级别的查看及级别

1、runlevels:查看运行级别

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 :重新启动,使用该级别的即将会重启主机

2、切换级别:init 0/1/2/3/4/5/6

查看系统的默认运行级别:systemctl get-default

三、服务控制及优化启动

1、系统服务控制

sysytemctl+控制类型+服务名称

常用控制类型:start     启动

                         stop      停止

                         restart   重启

                         reload   先退出再重新运行,只是刷新配置文件,再重新加载配置

                         status   查看状态及相关信息

优化启动过程

2、ntsysv:提供一个交互式可视化窗口,可以再字符终端运行,便于集体管理多个服务

ntsysv --level 35(指定级别)

3、查看当前系统中已启用的所有系统服务

systemctl list-units --type=service

4、chkconfig:不提供交互式可视化窗口,管理单个服务效率更高

格式:chkconfig --list(全部服务)

           chkconfig --list+服务名称(某一个服务)

           chkconfig --level+级别列表+服务名 on|off (设置开机启用或禁用,不指定级别,默认2345)

四、修复MBR扇区故障

1、故障原因:病毒、木马等造成的破坏或者不正当分区操作、磁盘读写误操作

2、故障现象:找不到引导程序,启动中断或者无法加载操作系统,开机后黑屏

3、解决思路:应提前做好备份文件(因为MBR中保存了分区表信息等,必须把MBR备份到别的硬盘上,因为它无法读取当前的硬盘);以安装光盘引导进入急救模式;然后从备份文件中恢复。

操作:

硬盘分区:fdisk /dev/sdb

格式化:mkfs.ext4 /dev/sdb1

创建文件:mkdir /bakup

挂载:mount /dev/sdb1 /bakup

dd备份:dd if /dev/sda of=/bakup/sda.mbr.bak bs=512 count=1

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

重启:reboot

进入急救模式

创建文件:mkdir /lty

把之前的bakup挂载到创建的文件下:mount /dev/sdb1 /lty

dd复原:dd if=/lty/sda.mbr.bak of=/dev/sda

重新开机进入后先选第三项,之后选择第四项进入虚拟机。

五、修复GRUB引导故障

1、grub.conf文件丢失,引导配置有误

(1)模拟文件丢失,有备份

cp /boot/grub2/grub.cfg /tmp      //备份到tmp下

rm -rf /boot/grub2/grub.cfg         //模拟文件丢失

关机重启虚拟机进入固件模式,移到boot选项,把CD移动到第一行,按Fn+f10,保存退出

重新开机点击第三个选项后再点击第二个选项

输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                  cp /tmp/grub.cfg /boot/grub2      //把文件还原到boot下

                  exit(Ctrl+d)两次退出

重新开机进入后先选第三项,之后选择第四项进入虚拟机。

 (2)文件丢失没有备份

cp /boot/grub2/grub.conf /tmp      //备份到tmp下

rm -rf /boot/grub2/grub.conf         //模拟文件丢失

关机重启虚拟机进入固件模式,移到boot选项,把CD移动到第一行,按Fn+f10,保存退出

重新开机点击第三个选项后再点击第二个选项

输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                  grub2-mkconfig > /boot/grub2/grub.cfg

                  exit(Ctrl+d)两次退出

重新开机进入后先选第三项,之后选择第四项进入虚拟机。

2、MBR中GRUB引导程序遭到破坏

dd if=/dev/zero of=/dev/sda bs=200 count=1        //模拟引导程序遭到破坏

重新开机点击第三个选项后再点击第二个选项

输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                  grub2-install /dev/sda

                  sync

                  sync

                  exit退出

六、/boot文件误删除

rm -rf /boot     //模拟/boot文件误删除

重新开机点击第三个选项后再点击第二个选项

输入命令:chroot /mnt/systimage                                                                       //切换到硬盘目录下

                  mkdir /media/cdrom                                                                           //在media下创建一个新的文件

                  mount /dev/cdrom /media/cdrom                                                       //将/dev下的cdrom挂载到/media下

                  rpm -ivh /media/cdrom/Packages/kernel-3.10.0-229.e17...--force    //加载内核,还原/boot里的大部分文件

                  grub2-install /dev/sda                                                                        //将grub2安装到/sda下

                  grub2-mkconfig > /boot/grub2/grub.cfg                                             //将grub2这个文件重定向到/boot/下

七、root密码修复

重启:reboot

进入急救模式

输入命令:chroot /mnt/systimage                   //切换到硬盘目录下

                  root passwd                                   //直接改密码

                   输入新的密码即可

或者:vi /etc/shadown 把root:后面清空即可

八、文件系统修复

xfs_repair | fsck   //扫盘

两个命令:xfs_repair /dev/sdb1

                  fsck -y -t ext4 /dev/sdb1

九、空间耗尽故障(可能是文件数量过多)

比如在/data下创建了{1..65525}个文件

mkdir /lty                                           //创建一个新的文件

mv /data/* /lty                                    //将/data下的文件先转移到新创建的文件下

umount /data                                    //推出挂载

mkfs.ext4 -N 600000 /dev/sdb1       //重新格式化并指定文件数量

mount /dev/sdb1 /data                     //重新挂载

mv /lty/* /data                                   //把之前的文件重新移回来

十、磁盘坏道故障

磁盘坏道分为:物理坏道和逻辑坏道

物理坏道:只能换硬盘

逻辑坏道:badblocks -sv /dev/sdb       //扫描看看有没有坏道

原文地址:https://www.cnblogs.com/990624lty-jhc/p/11313072.html