前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系统-开关机

Linux系统-开关机

作者头像
运维小路
发布2024-11-01 20:12:44
430
发布2024-11-01 20:12:44
举报
文章被收录于专栏:运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

这是Linux进阶部分的最后一大章。讲完这一章以后,我们Linux进阶部分讲完以后,我们的Linux操作部分就算讲完了,后面的讲解就主要是Linux上的应用软件的讲解,包括虚拟化,容器,云原生,数据库,中间件等。Linux系统相关内容,主要从以下几个方面来讲解:

Linux系统-开关机(本章节)

Linux系统-单用户模式

Linux系统-救援模式

Linux系统-僵尸&孤儿进程

Linux系统-systemd

Linux系统-logrotate

Linux系统-发行版介绍

Linux系统-发行版rocky

Linux系统-发行版ubuntu

Linux系统-初始化

为什么一个开关机也要单独拿出来讲解呢,因为有不少运维问题是发生在开关机阶段,所以我们需要了解Linux开关机的都做了些啥操作。

开机

在 Linux 系统中,启动过程主要有以下六个阶段:

  1. 开机自检(BIOS/UEFI)
    • 当你打开计算机电源时,首先由基本输入输出系统(BIOS)或统一可扩展固件接口(UEFI)进行硬件自检。这个阶段会检查硬件设备是否正常工作,如内存、硬盘、显卡等,并初始化硬件设备。如果发现硬件故障,系统会发出相应的错误提示。
    • 你可以理解bios会告诉你从哪块硬盘或者其他介质启动(比如通过impi配置的cdrom)。
  2. 加载引导程序(Boot Loader)
    • 自检完成后,BIOS/UEFI 会根据设置的启动顺序,查找可引导设备(如硬盘、U 盘、光盘等)上的引导程序。常见的引导程序有 GRUB(Grand Unified Bootloader)等。引导程序的作用是加载操作系统内核,并将控制权交给内核。
    • 可以简单里面这里可以选择进入什么内核或者什么模式。
  3. 内核初始化(Kernel Initialization)
    • 引导程序将内核加载到内存中后,内核开始初始化。内核会检测硬件设备、初始化设备驱动程序、建立内存管理系统、创建进程管理系统等。这个阶段是系统启动的核心部分,决定了系统的稳定性和性能。
  4. 运行 init 进程(Init Process)
    • 内核初始化完成后,会启动第一个用户空间进程 ——init 进程。init 进程是系统所有进程的祖先,它的主要任务是根据系统的运行级别启动相应的服务和应用程序。不同的 Linux 发行版可能使用不同的 init 系统,如 System V init、Upstart 和 systemd。
  5. 系统初始化(System Initialization)
    • 根据 init 进程的配置,系统会启动各种服务和应用程序,如网络服务、文件系统服务、打印服务等。这个阶段还会执行一些系统初始化脚本,如 /etc/rc.d/rc.local 等,以完成一些特定的系统配置任务。
    • 我们配置的磁盘自动挂载,一些开机启动的服务将在这个阶段完成。
  6. 用户登录(User Login)
    • 系统初始化完成后,系统会启动登录管理器,等待用户登录。用户可以通过图形界面或命令行方式登录系统。登录成功后,用户可以开始使用系统,运行各种应用程序和命令。
    • 当然这个阶段并不是必须的

我们在讲Linux磁盘-开机启动的时候说过,如果错误的配置fstab,则会导致系统无法开机;如果所以需要使用mount -a 或者重启方式来验证磁盘的开机自动挂载是否正确,配置开机启动的时候最好用uuid,因为在多磁盘的机器,如果磁盘故障,重启以后磁盘的盘符是会发生改变的。

开机常见故障

1.找不到引导盘

比如我的系统安装在a硬盘,而我在bios里面配置了b盘作为启动盘,可以通过带外操作bios或者直接操作bios进行调整修复,如果是重装或者新安装系统,也是在这里选择引导盘。

2.引导盘故障

比如某些误操作删除了系统关键文件,或者磁盘文件系统损坏。以下故障是我手工删除了/etc目录和/bin目录重启失败的情况,修复方法参考后面会讲的Linux系统-救援模式

3.磁盘挂载失败

错误的fstab是常见的系统无法启动的原因之一

输入root密码进入系统修复磁盘挂载问题。

关机

为什么关机也要拿来单独讲呢,因为关机命令有多个,我们需要了解在Linux关机命令执行以后,系统做了哪些操作。

在 Linux 系统中,以 CentOS 为例,关机过程通常有以下步骤:

一、用户发起关机指令

  1. 用户可以通过以下方式发起关机指令:
    • 使用命令行:例如,运行 “shutdown -h now”、“poweroff” 或 “init 0” 等命令。这些命令会通知系统进行关机操作。
    • 通过图形界面:在桌面环境中,用户可以选择关机选项,这通常会触发相应的系统关机程序。

二、系统响应关机指令

  1. 内核接收到关机信号:当用户发起关机指令后,系统会将这个信号传递给内核。内核开始准备关闭系统。
  2. 停止服务和进程:
    • 内核会向所有正在运行的进程发送信号,通知它们系统即将关闭。进程可以在接收到信号后进行一些清理工作,如保存数据、释放资源等。
    • 系统会按照一定的顺序停止各种服务,如网络服务、文件系统服务、打印服务等。这通常是由初始化系统(如 systemd)来管理的。

三、卸载文件系统和设备

  1. 内核会通知文件系统将缓存中的数据写入磁盘,以确保数据的完整性。
  2. 系统会卸载所有已挂载的文件系统,包括本地文件系统和网络文件系统。
  3. 内核会停止对硬件设备的访问,并卸载设备驱动程序。

四、关闭系统

  1. 当所有的服务和进程都已停止,文件系统都已卸载,设备都已关闭后,内核会执行最后的关机操作。
  2. 如果是正常关机,系统会将电源管理系统设置为关机状态,计算机的电源将被关闭。

关机一般不会遇到问题,当然在实际运维中,我是遇到过无法关机,必须强制关机的情况,但是这个没有模拟出来故障。

总结

  1. 在运维中会出现一种情况,应用系统重启前都运行得好好的,重启以后业务运行就开始出现问题,这种情况主要是一些修改在重启后生效,而这个修改可能已经修改了很久,连自己都忘记。
  2. 在运维中,有些问题确实会通过重启解决,但是这个操作还是要慎重,对生产环境要有敬畏之心。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开机
    • 开机常见故障
    • 关机
    相关产品与服务
    消息队列 TDMQ
    消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档