第八章 Linux传导过程与服务控制

本文详细介绍了Linux操作系统的引导流程,包括MBR引导、Systemd的运行级别与服务控制,以及如何修复启动类故障和优化启动过程,如服务控制、运行级别切换和开机自启动设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Linux操作系统引导过程

1、引导过程总览

         2、系统初始化进程

(1)init进程

(2)Systemd

3、Systemd单元类型

4、运行级别所对应的Systemd目标

二、排除启动类故障

1、修复MBR扇区故障

(1)故障原因

(2)故障现象

(3)解决思路

三、服务控制及切换运行级别

1、Linux关系的运行级别

2、系统服务控制

(1)系统服务控制

(2)控制类型

3、Linux系统的运行级别

(1)查看运行级别

(2)临时切换运行级别

(3)设置永久运行级别

四、优化启动过程

1、系统服务的启动和控制

(1)查看系统服务的启动状态

(2)设置系统服务的启动状态


一、Linux操作系统引导过程

1、引导过程总览

a、开机检测:检测硬件设备,找到能够引导系统的设备,比如硬盘

b、MBR引导:运行MBR扇区里的主引导程序GRUB

c、CRUB菜单:系统读取GRUB配置文件(/boot/grub2/grub.cfg)获取内核的设置和位置,并在屏幕显示GRUBN菜单页面

d、加载linux内核:把内核加载到内存,将系统控制权交接给内核

e、INIT进程初始化:内核将init进程加载到内存中运行,并把init进程作为系统的第一个进程

f、系统初始模块:启动内核模块,执行级别的启动脚本,执行/etc/rc.d/rc.local文件里的命令

2、系统初始化进程

(1)init进程

a、有Linux内核加载运行/sbin/init程序

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

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

init进程 文件位于 /sbin/init -> /lib/systemd , init进程PID号为固定为 1 ,是系统中其他所有进程的父进程

(2)Systemd

a、Systemd是Linux操作系统的一种init软件

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

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

进程启动方式

3、Systemd单元类型

套接字文件:应用程序直接的数据连接文件

套接字格式:ip:port                ftp    192.168.80.20:21

4、运行级别所对应的Systemd目标

二、排除启动类故障

1、修复MBR扇区故障

(1)故障原因

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

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

(2)故障现象

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

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

(3)解决思路

a、应提前做好备份文件

b、已安装光盘引导进入急救模式

c、从备份文件中

启动类故障恢复
MBR   主引导程序 1~446字节   硬盘分区表 447~510字节
如果是 MBR 整个扇区数据被破坏了,需要进入到急救模式将备份的MBR数据导入还原
备份命令:dd if=/dev/sda  of=备份文件  bs=512  count=1
还原命令:dd if=备份文件  of=/dev/sda
  
如果是 MBR 的GRUB主引导程序被破坏了
1)在急救模式下使用备份文件恢复          dd if=备份文件  of=/dev/sda  bs=446  count=1
2)在急救模式下重建MBR的GRUB主引导程序   chroot /mnt/sysimage   ->   grub2-install /dev/sda
      
如果是GRUB配置文件被删了
在急救模式下重建GRUB配置文件  chroot /mnt/sysimage   ->   grub2-mkconfig -o /boot/grub2/grub.cfg

如果是root密码忘记了
1)在急救模式下   先切换系统根环境 chroot /mnt/sysimage   ->  passwd root
2)在GRUB菜单按 e 键,修改内容 
在 linux16 /vmlinuz-3.10.0-1160.71.1.el7.x86_64 root=UUID=a99fd431-dc10-4233-a655-3c4b8d710624 ro rhgb quiet LANG=zh_CN.UTF-8 这行后面追加配置
rw single init=/bin/bash ,再按 ctrl + x 重启系统
再在bash界面输入 passwd root 修改密码  ->  touch /.autorelabel  -->   exec /sbin/init

三、服务控制及切换运行级别

1、Linux关系的运行级别

运行级别 功能 对应的systemd单元      切换
0关机 poweroff.target        
 

init 0    

 systemctl isolate poweroff.target

1单用户模式rescue.target        

  init 1    

 systemctl isolate rescue.target

2字符界面的多用户模式(无网络)multi-user.target
 
3字符界面的多用户模式(完整的,有网络)multi-user.target      

init 3      

systemctl isolate multi-user.target

4字符界面的多用户模式(保存) multi-user.target
 
5图形界面的多用户模式 graphical.target      

 init 5    

 systemctl isolate graphical.target

6 重启

reboot.target          

init 6    

 systemctl isolate reboot.target

2、系统服务控制

(1)系统服务控制

systemctl 控制类型 服务名称

(2)控制类型

a、start:启动

b、stop:停止

c、restart:重新启动

d、reload:重新加载

e、status:查看服务状态

服务管理操作
systemctl start|stop|restart|reload|status|is-active 服务名[.service]   #要确保在 /usr/lib/systemd/system/ 目录中有相关服务的 XXX.service 文件

service 服务名 start|stop|restart|reload|status                         #要确保在 /etc/init.d/ 目录中有相关服务的管理脚本文件

服务开机自启管理
systemctl enable|disable [--now] 服务名[.service]       # --now选项可实现立即开启|关闭服务
systemctl is-enabled 服务名[.service]

3、Linux系统的运行级别

(1)查看运行级别

a、runlevel命令  (runlevel只能查看切换运行级别与当前运行级别)

b、systemctl工具   (systemctl时能查看默认的运行级别)

(2)临时切换运行级别

a、init命令  (init的命令参数是运行级别所对应的数字)

b、systemctl工具   (systemctl的命令参数是具体的target)

(3)设置永久运行级别

runlevel         #查看上一次的运行级别 和 当前的运行级别

systemctl get-default    #查看当前的默认运行级别

systemctl set-default multi-user.target|graphical.target      #设置默认运行级别
等效于 ln -s -f /usr/lib/systemd/system/multi-user.target|graphical.target  /etc/systemd/system/default.target

四、优化启动过程

1、系统服务的启动和控制

(1)查看系统服务的启动状态

systemctl is-enabled 服务器名称

(2)设置系统服务的启动状态

systemctl enable 服务名称         //开启开机自启动

systemctl disable 服务名称        //关闭开机自启动

一个命令开机自启

关闭开机自启

ntsysv    #图形化管理开机自启

chkconfig --add 服务名                             #服务名就是 /etc/init.d/ 目录下的脚本文件名
chkconfig --level 运行级别列表  服务名  on|off     #开启|关闭服务在哪些运行级别下开机自启
chkconfig --list 服务名                            #查看自启状态

runlevel         #查看上一次的运行级别 和 当前的运行级别

systemctl get-default    #查看当前的默认运行级别

systemctl set-default multi-user.target|graphical.target      #设置默认运行级别
等效于 ln -s -f /usr/lib/systemd/system/multi-user.target|graphical.target  /etc/systemd/system/default.target


字符集编码
ASCII  127个字符   
GBK    中国字符集编码   
UTF-8  万国字符集编码

hostnamectl set-hostname XXX
localectl set-locale LANG=语言.字符集
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值