首页 > 系统相关 >Linux 引导及服务

Linux 引导及服务

时间:2022-10-15 23:11:47浏览次数:52  
标签:引导 systemd 服务 启动 init 内核 Linux chkconfig

导图

 

 

 

一.引导过程

1.开机自检BIOS

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

总结:检查出能引导系统的设备

tops:

硬件启动POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

主板的ROM:BIOS(Basic Input and Output System),保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等

2.MBR引导

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

总结:运行放在MBR扇区里的启动 GRUB引导程序

3.GRUB菜单 

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

总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

4.加载Linux内核kernel

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

总结:把内核和镜像文件加载到内存中

5.init进程初始化

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

总结:加载硬件驱动程序,内核把init进程加载到内存中运行

init进程:

由Linux内核加载运行/sbin/init程序;
init进程是系统中第一个进程是所有进程的父进程;
init进程的PID=1.

SysVinit(centos 6及以前的init)  依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢 ,需要排队;

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

二.服务

1.systemd服务

systemd的作用:

负责在系统启动或运行时,激活系统资源,服务器进程和其它进程

 systemd新特性:

  • 系统引导时实现服务并行启动

  • 按需启动守护进程

  • 自动化的服务依赖关系管理

  • 同时采用socket式与D-Bus总线式激活服务

  • socket与服务程序分离

  • 向后兼容sysv init脚本

  • 使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,

  • systemctl无法与之通信和控制

  • 系统状态快照

systemd核心概念:unit

unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听、socket、保存的系统快照以及其它与init相关的信息

在systemd中不同类型的systemd对象被统一称为单元,是让系统知道该如何进行操作和管理资源的主要对象,所以systemd有许多单元类型。
systemd单元文件最初默认存放在/lib/systemd/system目录中,每当安装新的软件都会自动在这个目录中添加一个配置文件。
systemctl 命令用于管理各种类型的systemd单元,可以使用“systemctl -t help”命令来查询systemd支持的单元类型。

单元类型:

单元类型扩展名说明
Service . service 描述一个系统服务
Socket .socket 描述一个进程间通信的套接字
Device .device 描述一个内核识别的设备文件
Mount .mount 描述一个文件系统的挂载点
utomount .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或交换文件
Path .path 描述一个文件系统中文件或目录
Timer .timer 描述一个定时器(用于实现类似cron的调度任务)
Snapshot .snapshot 用于保存一个systemd的状态
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述居于Cgroup的一-组通过层次组织的管理系统进程
Target .target 描述一组systemd的单元

1.1修复mbr分区

MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节

1.1.1故障原因:
  • 病毒、木马等造成的破坏
  • 不正确的分区操作、磁盘读写误操作
1.1.2故障现象:
  • 找不到引导程序,启动中断
  • 无法加载操作系统,开机后黑屏

1.1.3解决思路:

应提前做好备份文件

  • 准备添加另一块硬盘作为mbr备份;
  • 以安装光盘引导进入急救模式;
  • 从备份文件中恢复。
1.1.4模拟修复mbr分区

第一步:添加新硬盘

 

 

第二步:新硬盘格式化,并挂载

第三步:备份mbr,模拟破坏mbr

第四步:重启进入单用户模式(急救模式)

1.troubleshooting

 

 

2.rescue a Centos system

 

 

3. 选择序号 1 进入shell

 

 

4.创建目录并挂载----恢复备份----保存退出>>重启

 


 

1.2修复grub分区 

1.2.1故障原因

MBR中的GRUB引导程序(1-446字节)遭到破坏
grub.cfg文件丢失,引导配置有误,文件位置/boot/grub2/grup.cfg

1.2.2故障现象

系统引导停滞,显示grub >提示符

1.2.3解决思路
  • 尝试手动输入引导命令修复(不推荐)
  • 进入急救模式,重写或者从备份中恢复grub.cfg
  • 急救模式向MBR扇区中重建grub程序
1.2.4模拟修复GRUB引导故障

 

1.3修改密码

1.3.1故障原因

• 遗忘root用户密码

1.3.2故障现象

• 无法进行需要root权限的管理操作
• 若没有其他可以账号,将无法登录系统

1.3.3解决思路

• 进入急救模式,重设密码

#1
启动时任意键暂停启动 按e键进入编辑模式 将光标移动linux 开始的行,添加内核参数 rd.break 按ctrl-x启动 mount –o remount,rw /sysroot chroot /sysroot passwd root #如果SELinux是启用的,才需要执行下面操作,如没有启动,不需要执行 touch /.autorelabel exit reboot


#2

启动时任意键暂停启动
按e键进入编辑模式
将光标移动linux 开始的行,改为 rw init=/sysroot/bin/sh
按ctrl-x启动
chroot /sysroot
passwd root
#如果SELinux是启用的,才需要执行下面操作,如查没有启动,不需要执行
touch /.autorelabel
exit
reboot

 

 

1.3.4模拟重设密码

 

进入急救模式

 

 

 

 进入shell

 

进入根环境-----更改密码-----保存退出-----重启

 


 

1.4设置运行级别

 运行级别:

级别 作用
0 关机
1 单用户模式(root自动登录), single, 维护模式
2

多用户模式,启动网络功能,但不会启动NFS;维护模式

3 多用户模式,正常模式;文本界面
4 预留级别;可同3级别
5 多用户模式,正常模式;图形界面
6 重启

 

1.5chkconfig

chkconfig 命令用于检查,设置系统的各种服务

chkconfig工具:

格式:

chkconfig --list [服务名称]

chkconfig --add 服务名称

chkconfig --level 级别列表服务名on/off

chkconfig --add httpd

chkconfig --level 35 httpd on

#开启服务
chkconfig telnet on   //开启 Telnet 服务
chkconfig --list      //列出 chkconfig 所知道的所有的服务的情况

#关闭服务
chkconfig telnet off  // 关闭 Telnet 服务
chkconfig --list      // 列出 chkconfig 所知道的所有的服务的情况

 

三.总结:

标签:引导,systemd,服务,启动,init,内核,Linux,chkconfig
From: https://www.cnblogs.com/suoluo212/p/16770042.html

相关文章

  • Spring的同一个服务为什么会加载多次?
    问题现象最近在本地调试公司的一个Web项目时,无意中发现日志中出现了两次同一个服务的init记录,项目都是基于Spring来搭建的,按理说服务都是单例的,应该只有一次服务加载日志......
  • 大学生视角下的Linux学习之路
    如今的软件开发行业可谓是众星云集,要在这个行业干出一番大事业是比较艰难的。回看如今的服务器端市场,没有以前那些服务器一哥的存在了,更多的变成了Linux系统的身影。移动端......
  • RockyLinux清空buff/cache脚本
    一、脚本#!/bin/bash#开始清理缓存echo"开始清除缓存"#写入硬盘,防止数据丢失sync;sync;sync#延迟10秒sleep10#清理缓存echo1>/proc/sys/vm/drop_caches......
  • Linux之Docker-01
    一、镜像基础命令1、dockerversion[root@DY-Ubuntu-01~]#dockerversion#查看Docker版本2、dockerinfo[root@DY-Ubuntu-01~]#dockerinfoClient:Con......
  • http请求到达IIS服务器后发生了什么
    问题:1.思考“假如简书的服务器部署在IIS服务器上,那为什么在地址栏输入https://www.jianshu.com/u/e0bf9201fbed就可以看到我的页面呢?”2.有了上面的思考,脑海中大概会浮......
  • 大话西游服务端开服架设服务器搭建教程​
    大话西游服务端开服架设服务器搭建教程​大话西游一款回合制角色扮演手游,游戏内包含人族、仙族、魔族、鬼族四大种族,每个种族各有4个角色可供玩家选择。相信很多玩这款游戏......
  • Linux学习笔记 | Shell脚本创建与执行
    一、输出命令echo格式:echo[选项][输出内容]说明:选项  -e  表示的是支持反斜线控制的字符转换注意:如果输出的内容中含有空格,使用双引号,如果内容中含有“!”,使用单引......
  • Linux环境变量
    环境变量定义存储有关Shell会话和工作环境信息的变量作用为脚本和程序提供获取环境信息,存储临时数据和配置信息分类全局环境变量Shell与子Shell都适用局......
  • zookeeper 登录本地服务端很慢、很卡
    1.zookeeper连接本地服务端很慢、很卡,需要等好一会才能连接上2.检查1.检查zookeeper配置,端口等,未查看到相关信息2.ulimit-a查看到文件打开数最是1024.比较小,但修改......
  • Linux 下模拟制作块设备并挂载
    Linux下模拟制作块设备并挂载作者:Grey原文地址:博客园:Linux下模拟制作块设备并挂载CSDN:Linux下模拟制作块设备并挂载环境CentOS-7下载地址:下载CentOS-7Linux的......