引导过程与服务控制

目录

一.Linux操作系统引导过程

二.系统初始化进程

三.排除启动类故障

四.系统服务控制


linux操作系统引导过程

1. 主机加电后,系统首先加载BIOS,这个BIOS是烧录在主板上的ROM芯片上的。
2. BIOS启动后,执行了一些例如开机自检,硬件初始化等工作,然后读取硬盘MBR分区的第 一个扇区(前512字节),其中前446字节储存了一个小程序叫做boot loader,中间的64 字节是磁盘分区表,最后两个字节是固定的0x55AA的文件类型识别标记。
  (1)UEFI对比BIOS本身就是一个微型的操作系统,直接读取FAT格式的文件分区(EFI 程序),相比BIOS读取MBR文件分区快了不少。
     (2) 常见的boot loader有GRUBU-boot、UEFI、Etherboot、ARMboot等。
3. bootloader程序主要用的两个文件,/boot/vmlinuz*内核文件,/boot/initramfs*虚拟文件系 统。
4. 这两个文件加载到内存运行后,系统会加载真正的文件系统,然后启动1号进程systemd(init)。 这样真正使用的系统就启动了。

1.开机自检

服务器主机开机以后,将根据主板BIOS中的设置对CPU( Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

2.MBR引导

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

3.GRUB菜单

对于Linux操作系统来说,GRUB( Grand Unified Boot loader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载 Linux内核文件,然后将系统控制权转交给内核。需要注意的是, Centos7采用的是GRUB2启动引导器。

4.加载 Linux内核

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

5.init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中/sbin/init"程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化过程,最后等待用户进行登录 systemed

系统初始化进程

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

init进程是系统中的第一个进程,是所有进程的父进程

init进程的PID(进程标记)号永远为1

2.2 systemd
systemd是Linux操作系统的一种init软件

CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit

CentOS7中运行的第一个init进程是/lib/systemd/systemd

传统SysVinit依赖于串行执行shell脚本启动服务,导致效率低下,系启动速度较慢

systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。

2.3 Systemd单元类型

   2.4运行级别所对应的Systemd目标

init进程的主要功能包括:

             1.运行级别管理:init进程负责根据系统的运行级别启动相应的服务和进程。运行级别是Linux系统中的一种工作状态,包括单用户模式、多用户模式和关机模式等。
             2.进程管理:init进程负责启动和停止系统中的其他进程,包括系统服务和用户进程。它根据系统配置文件(如/etc/inittab或/etc/init.d)来启动特定的进程。
系统初始化:当系统启动时,init进程负责执行系统初始化任务,例如加载驱动程序、设置系统参数、挂载文件系统等。
             3.孤儿进程管理:当一个父进程退出时,init进程会接管它的子进程,并将它们的父进程设置为init进程。这样可以确保没有进程成为孤儿进程,防止资源泄露。
             4.信号处理:init进程会接收和处理一些系统级别的信号,例如关机信号、重启信号等。

排除启动类故障

Linux 操作系统的启动过程涉及MBR(Main Boot Record,主引(导记录)GRUB启动菜单、系统初
始化配置文件等各方面,其中任何一个环节出现故障都可能导致系统启动失常,因此一定要做相关的
文件的备份工作。

MBR扇区故障

MBR位于物理硬盘的第一个扇区(512字节),该扇区又称为主引导扇区(MBR扇区),除了包含系
统引导程序的部分数据外,还包含整个硬盘的分区表记录。当主引导扇区发生故障时,将可能无法进入引导菜单,或者因无法找到正确的分区位置而无法加载系统,通过该硬盘引导主机时很可能进入黑屏状态。

故障原因:

          病毒、木马等造成的破坏;

         不正确的分区操作、磁盘读写误操作。

故障现象:

         找不到引导程序,启动中断;

        无法加载操作系统,开机后黑屏。

解决思路:

       应提前作好备份文件;

      以安装光盘引导进入急救模式;

     从备份文件中恢复

MBR扇区特点:
mbr扇区存在于第一块硬盘空间里,因此想要破坏mbr数据,只需要破坏第一块硬盘空间里的数据即可。对第一块硬盘备份时,注意备份磁盘空间不能小于第一块硬盘的空间大小

模拟MBR扇区实验:
1.添加一块硬盘做实验;
2.进系统查看磁盘

fdisk -l 看是否有sdb

3.格式化sdb   mkfs -t ext4 /dev/sdb
4.挂载sdb   mount /dev/sdb /opt

5.备份MBR扇区数据   dd if=/dev/sda of=/opt/mbr.bak bs=512k count=1

6.模拟MBR扇区故障   dd if=/dev/zero of=/dev/sda bs=512k count=1

7.重启后观察系统是否出现问题:operating system not found

此时表示MBR出现了故障,恢复步骤如下:

1.装入光盘,在光盘引导界面选择 troubleshooting;
2.进入troubleshooting菜单选择Rescue a centos syst;
3.进入引导可以按回车,或者等待。按1 再按回车进入sh-4.2
4.急救模式下sdb的挂载:

mkdir /sdd
mount /dev/sdb/sdd
cd /sdd
查询下该备份文件是否存在

5.恢复备份数据:dd if=/sdd/mbr.bak of=/dev/sda count=1 bs=512k
6.重启reboot 进入系统测试是否正常。

4.2 grub故障修复
故障原因:

MBR中的GRUB引导程序遭到破坏;
grub.conf文件丢失、引导配置有误。
故障现象:

系统引导停滞,显示“grub>”提示符
解决思路:

尝试手动输入引导命令;
进入急救模式,重写或者从备份中恢复grub.conf;
向MBR扇区中重建grub程序

模拟故障:

cd /boot/grub2  进入grub2

rm -rf grub.cfg  删除grub2.cfg模拟故障
init 6 重启

出现故障如下:grub>

修复步骤:

1.引导急救模式,加载系统镜像;chroot  /mnt/sysimage/

2.重新建立加载sda分区   grub2-install /dev/sda

3.重新构建grub菜单配置文件   grub2-mkconfig -o /boot/grub2/grub.cfg

4.退出bash环境,exit

5.重启,reboot

4.3 遗忘root密码

故障原因:

遗忘root用户的密码

故障现象:

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

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

解决思路:

进入急救模式,重设密码

忘记root密码实验步骤:

sh-4.2 chroot /mnt/sysimage  加载系统镜像
bash-4.2 passwd root    设置密码
new:  新密码
retry: 确认新密码

exit    退出bash环境
reboot    ##重启系统

系统服务控制

在0penEuler系统中,各种系统服务的控制脚本默认放在/usr/lib/systemd自录下。通过
systemctl命令工具可以实现对指定系统服务的控制,语法格式如下:
systemctl控制类型服务名称
对于大多数系统服务来说,常见的几种控制类型如下所述。
start(启动):运行指定的系统服务程序,实现服务功能。
stop(停止):终止指定的系统服务程序,关闭相应的功能。
restart(重启):先退出,再重新运行指定的系统服务程序。
reload(重载):不退出服务程序,只是刷新配置。在某些服务中与restart的操作相同。
status(查看状态):查看指定的系统服务的运行状态及相关信息

systemctl工具

systemctl 控制类型 服务名称

控制类型

start 启动
stop 停止
restart 重启
reload 重新加载
status 查看服务状态

常见系统服务

在CentOS系统中,默认安装的系统服务多达100多种,这些系统服务为用户提供了丰富的应用服务,只有了解各个系统服务的用途,才能有选择地进行优化操作,实现按需启用Linux服务

CentOS系统中常见的系统服务

优化开机自动加载的服务

Linux操作系统在每次开机后会进入默认的systemd运行目标(如字符模式或图形模式),并运行该
目标中默认设为启动的各种系统服务。若要禁止某些系统服务自动运行,可以使用ntsysv或者
systemctl工具进行优化。

使用ntsysv工具
ntsysv工具可以在字符模式中运行,为用户提供一个仿图形的交互式操作界面,专门用于集中
各种系统服务的启动状态。当需要同时设置多个服务的启动状态时,使用ntsysv工具会非常方便。

使用 systemctl 工具
systemctl工具与ntsysv的功能类似,但是systemctl不提供交互式的操作界面,它用于查询或
设置系统服务的默认启动状态。当需要设置某一个服务在当前前运行目标中的默认启动状态时,使用
systemctl工具会更有效率。使用 systemctl工具控制服务开机启停的命令格式如下:

控制选项
服务名称
systemctl
常用的选项有三种:
enable:开机自动启动。
disable:开机自动关闭。
is-enable:查看开机启动状态。




 

                            
                        
 

   
                        
 



 


 

                           
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值