Linux系统引导过程与服务控制

概述

在这里插入图片描述

一、Linux操作系统引导过程

分为5步:开机自检——MBR引导——GRUB菜单——加载Linux内核——init进程初始化
(1)、开机自检:服务器主机开启后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备初步检测,检测成功以后根据预设的启动顺序移交系统控制权,大多数会移交给本机硬盘。

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

(3)、GRUB菜单:使用最广泛的多系统引导器程序了,系统控制权传递给GRUB后,将会显示启动菜单提供给用户选择,并根据所选项加载Linux内核文件,然后将系统控制权转交给内核

(4)加载Linux内核:Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权后,将完全掌控整个Linux 操作系统的运行过程

(5)init进程初始化,为完成进一步的系统引导过程,Linux内核首先将系统中的/sbin/init程序加载到内存中运行(运行中的程序称为进程),init进程负责完成一系列的系统初始化进程

二、init进程

Linux系统中进程使用数字进行标记,每个进程的身份标记号称为PID,在引导Linux系统的过程中,、sbin/init是内核第一个加载的程序,因此init进程对应的PID号总是为1

Init进程运行后将陆续执行系统中的其他程序,不断生成新的进程,这些进程称为init进程的子进程,这些子进程可以进一步生成各自的子进程,形成进程树

init进程是维持整个Linux系统运行的所有进程的始祖,因此init进程是不允许轻易终止,需要切换不同的系统运行状态时,可以向init进程发送正确的执行参数,由init自身完成操作

三、initab各字段的意义

1、id——标记字段
标记字段可以由1到4个字符组成,用以区别于其他行的配置

2、runlevel——运行级别字段
通过将不同的系统服务进行搭配组合,来协同满足不同的功能需求,不同的服务组合其实现的功能各不相同。默认7种不同的服务搭配方式

  • 0 关机状态,使用该级别时将会关闭主机
  • 1 单用户模式,不需要密码验证即可登录系统,多用于系统维护
  • 2 字符界面的多用户模式(不支持访问网络)
  • 3 字符界面的完整多用户模式,大多数服务器主机运行在此级别
  • 4 未分配利用
  • 5 图形界面的多用户模式,提供了图形桌面操作环境
  • 6 重新启动,使用该级别时将会重启主机

3、axtion——动作类型字段
描述了该行配置所对应的操作类别,initdefault表示设置初始化系统后默认进入的运行级别

4、process——程序或脚本字段
用于指定该行配置所对应的实际操作,可以是具体的命令、脚本程序

四、排除启动类故障

Linux系统启动过程中,涉及MBR主引导记录、GRUB启动菜单、系统初始化文件,其中任何一个环节出故障会导致系统启动的失常,必须做好相关文件的备份工作

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

对MBR扇区进行备份、模拟破坏、修复的过程,有3点:

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

2、修复GRUB引导故障
GRUB是Linux系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统

当配置文件/boot/grub/grub.conf丢失,或者关键配置错误,或者MBR记录中引导程序遭到破坏时,Linux主机启动后可能只出现“grub>”的提示符,无法完成进一步的系统启动过程。
解决方法:

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

3、遗忘root密码
忘记root用户密码时,无法登录Linux系统执行管理、维护等任务,只能通过普通用户登录使用受限制的功能,如果系统中有其他具有root权限的用户,或者拥有修改root账号密码权限的用户,也可以使用这些用户登录系统,然后重新设置root用户的密码

1、通过单用户模式重设root 账户的密码
(1)重新启动主机,出现GRUB菜单时按上、下箭头取消倒计时,并定位到要进入的操作系统选择项,按e键进入编辑模式
(2)定位到以kernel开头的一行并按e键,在行尾添加single的启动参数
(3)按enter键确认后,按b键将系统引导进入单用户模式,直接进入shell环境
(4)在单用户模式的shell环境中,可以执行passwd root 重新设置root 用户密码

2、通过急救模式重设root账号的密码
进入急救模式的shell环境,只需切换到待修复的Linux系统的根目录环境,直接执行passwd root 命令重设root用户的密码即可,或者修改/etc/shadow文件,将root 用户的密码字段清空,重启后以空密码可登录系统,

五、服务控制及优化启动过程

1、服务控制
常见的几种控制类型如下:

  • start (启动) 运行指定的系统服务程序,实现服务功能
  • stop(停止) 终止指定的系统服务程序,关闭相应的功能
  • restart (重启)先退出,再重新运行指定的系统服务程序
  • reload (重载)不退出服务程序,只是刷新配置
  • status(查看状态)查看指定的系统服务的运行状态及相关信息

2、切换运行级别
(1)查看系统的运行级别
直接执行runlevel命令进行查询,显示结果中的字符表示切换前的级别和当前的级别
若之前未切换过运行级别,第一列将显示N

(2)切换系统的运行级别
用户要将系统转换为其他的运行级别时,可以通过init程序进行,只要使用与运行级别相对应的数字作为命令参数
将系统切换到字符模式后,图形桌面环境将不再可用,需要再使用图形界面时,可以执行init5切换回去
只要执行init0、init6可以实现相应的关机、重启操作

3、优化启动过程
Linux 系统每次开机后进入默认的运行级别(如字符模式或图形模式),并运行该级别中默认设为启动的各种系统服务,若要禁止系统服务自动运行,可以使用ntsysv或者chkconfig工具优化

(1)使用ntsysv工具
ntsysv工具可以在字符模式中运行,为用户提供一个仿图形的交互式操作界面,专门用于配置各种系统服务的启动转态,当需要设置多个服务的启动状态时,使用ntsysv工具非常方便
执行ntsysv命令时用于管理当前运行级别中的服务,通过–level选项可以对指定运行级别中的服务进行管理

(2)使用chkcofig工具
不提供交互式的操作界面,用于查询或设置系统服务的默认启动状态,当需要设置某一个服务在不同运行级别中的默认启动状态时,使用chkconfig工具会更有效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南通市民李某人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值