草庐IT

linux引导和服务

feizirui 2023-03-28 原文

一、引导过程

引导过程总览

1.1开机自检

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

  • 硬件启动POST:加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测。
  • 主板的ROM:保存着有关计算机系统最重要的基本输入输出程序,系统信息设置,开机加电自检程序和系统启动自举程序等。

1.2MBR引导

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

1.3GRUB菜单

对于 Linux 操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)准备加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS 7采用的是GRUB2启动引导器。
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置。
grub功能和组成
bootloader:引导加载器,引导硬件去找到内核(操作系统的核心)

  • Windows:ntloader,仅是启动OS
  • Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开、并把系统控制权移交给内核

Linux的bootloader

  • LILO:LInux LOader,早期的bootloader,功能单一
  • GRUB:GRand Unified Bootloader,CentOS 5,6 ;GRUB 0.97,GRUB Legacy,CentOS 7以后使用GRUB 2.02

GRUB 启动阶段
(1)primary boot loader:

  • 1st stage:MBR的前446个字节引导硬件去找内核
  • 1.5 stage:MBR之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统

(2)secondary boot loader:2nd stage,分区文件/boot/grub2/grub.cfg

1.4加载linux内核,操作系统调度硬件

Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过程。在 CentOS 系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
总结:把内核和镜像文件系统加载到内存中可以使用

1.5init进程初始化这是linux运行的第一个程序

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

  • 传统init依赖于串行执行Shell脚本启动服务,导致效率低下,系统启动速度较慢需要排队启动。
  • systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度大家一起。

二、服务

2.1systemd服务

systemd服务:

  • 对比5和6可以解决依赖关系并行启动
  • 按需启动
  • 自动解决依赖关系

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

  • 系统引导时实现服务并行启动
  • 按需启动守护进程
  • 自动化的服务依赖关系管理
  • 同时采用socket式与D-Bus总线式激活服务
  • socket与服务程序分离
  • 向后兼容sysv init脚本
  • 使用systemctl命令管理systemctl命令固定不变,不可扩展,非由systemd启动的服务
  • systemctl无法与之通信和控制
  • 系统状态快照

systemd 核心概念:

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

2.2修复MBR分区

  • 备份mbr引导扇区到其他磁盘
  • 模拟破坏mbr引导扇区
  • 引导镜像急救模式进行mbr扇区恢复

实验1:没有出错情况下

出错情况下:

 1 总结:
 2 1.先备份第一块硬盘的前512字节,不要备份再同一块硬盘上
 3 命令:dd if=/dev/sda of=/mnt/mvr.bak conut=1 bs=512
 4 
 5 2.模拟破坏前512字节
 6 命令:dd if=/dev/zero of=/dev/sda conut=1 bs=512
 7            hexdump -C -n 512 /dev/sda(看sda前512字节)
 8 
 9 3.重启
10 选第三个选项,再选第二个文件,输入1回车,回车
11 创建空文件夹,挂载到空文件夹上
12 把文件夹复制到sda下

2.3修复GRUB分区

实验2:重新构建grub文件

出错情况:

  • 将整个boot文件删除
  • 将/boot/grub2文件删除
  • 将/boot/grub2/grub.cfg文件删除
1 总结:
2 rm -rf /boot/grub2/grub.cfg              #模拟删除grub.cf 文件
3 进入急救模式,选择1 继续
4 chroot /mnt/sysimage                  #进入急救模式后,更改环境
5 grub2-install /dev/sda                  #重新建立加载sda分区
6 grub2-mkconfig -o /boot/grub2/grub.cfg    #重新构建grub菜单配置文件
7 exit                               #退出当前系统
8 reboot                              #重启

2.4修改密码

实验3:有光驱前提下

 

 没有光驱的情况下重启出现下面的图片:

补充:centos6修改密码

启动时按上下键---->按a---->输入s 空格 1进入单用户模式---->passwd修改密码

2.5启动关闭服务

1 开启关闭服务:
2 查看服务状态:systemctl status 服务名
3 启动服务:systemctl start 服务名
4 关闭服务:systemctl stop 服务名
5 重新加载服务:systemctl reload 服务名
6 重启服务:systemctl restart 服务名
7 立刻开机自启:systemctl enable --now 服务名
8 立刻关闭服务开机不自启:systemctl disable --now 服务名

有关linux引导和服务的更多相关文章

  1. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  2. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  3. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  4. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

  5. ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件? - 2

    我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby​​所需的包和安装过程;它引

  6. Linux网络编程必备的POSIX API的细节 - 2

    目录POSIXAPI大集合五元组三次握手的过程,内核协议栈分析listen函数DDOS攻击,洪水攻击DDOS攻击的应对措施数据发送 怎么保证顺序?如何保证包地顺序到达(序号+确认应答机制+重传)TCP断开连接的过程问题1.大量的CLOSE_WAIT+FIN_WAIT2是为啥?time_wait状态存在的原因?POSIXAPI大集合五元组(sip,sport,dip,dport,protocol)三次握手的过程,内核协议栈分析内核协议栈中是有内核数据结构的.  我们send/write数据,都是先发送到内核协议栈中,然后由内核协议栈封装发送到物理介质中传输到对端的对端的接收过程也是经有内核协议栈

  7. Linux export 命令及如何删除export设置的环境变量 - 2

    背景:Linuxexport命令用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。语法:export[-fnp][变量名称]=[变量设置值]参数说明:-f 代表[变量名称]中为函数名称。-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p 列出所有的shell赋予程序的环境变量。实例:列出当前所有的环境变量#export-p//列出当前的环境变量值定义环境变量赋值#exportMYENV=7//定义环境变量并赋值添加环境变量:默认保存在

  8. Linux操作系统CentOS7安装Nginx[详细版] - 2

    Nginx安装1.官网下载Nginx2.使用XShell和Xftp将压缩包上传到Linux虚拟机中3.解压文件nginx-1.20.2.tar.gz4.配置nginx5.启动nginx6.拓展(修改端口和常用命令)(一)修改nginx端口(二)常用命令1.官网下载Nginxhttp://nginx.org/en/download.html这里我下载的是1.20.2版本,大家按需下载对应稳定版即可2.使用XShell和Xftp将压缩包上传到Linux虚拟机中没有XShell可以参考《Linux操作系统CentOS7连接XShell》3.解压文件nginx-1.20.2.tar.gz1)检查是否存

  9. 【Linux】初识Linux --指令Ⅰ - 2

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法,Linux…感兴趣就关注我吧!你定不会失望。目录1.ls显示当前目录下的文件内内容2.pwd-显示用户当前所在的目录3.cd-改变工作目录。将当前工作目录改变到指定的目录下1.cd-回到上一次待的工作空间2.cd..返回上一层目录1.相对路径:cd../aurora2.绝对路径:cd/home/aurora/lesson1/aurora3.cd~进入用户家目录4.cd/进入root目录4.mkdir-新建目录5.rmdir/rm-删除1.rmdir删除空文件夹2.rm删除1.rm-f2.rm-i3.rm-r1.ls显示当前目

  10. 从零开始学习Linux运维,成为IT领域翘楚(二) - 2

    文章目录🔥Linux系统目录结构🔥Linux用户和用户组🔥Linux用户管理🔥Linux系统目录结构文件系统组织结构⭐ /lib系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。⭐ /lost+found一般情况下是空的,当系统非法关机后,这里就存放了一些文件。⭐ /etc所有系统管理所需要的配置文件和子目录my.conf⭐ /usr用户的很多应用程序和文件都放在这个目录下。⭐ /bin是Binary的缩写,这个目录存放着经常使用的命令⭐ /sbin(usr/sbin、/usr/local/sbin)sbin就是peruse

随机推荐