电脑默认启动盘顺序-(电脑默认启动盘顺序不对)

默认情况下,计算机启动盘的顺序。  (默认情况下,计算机启动盘的顺序不对)。  关注优麒麟,更多干货等着你!。  systemd文章续集来了,上期我们介绍了systemd的基本概念,本期将为您详细讲解 ......

  默认情况下,计算机启动盘的顺序。

  (默认情况下,计算机启动盘的顺序不对)。

  关注优麒麟,更多干货等着你!。

  systemd文章续集来了,上期我们介绍了systemd的基本概念,本期将为您详细讲解systemd相关的操作逻辑希望能帮助优化系统资源的研究。

  systemd时代的启动过程。

  在systemd作为系统的init在程序时代,Linux系统的启动过程大致可以分为6个阶段:BIOS自检阶段、GRUB引导阶段、kernel内核加载阶段,initrd虚拟根文件系统阶段,systemd初始化阶段,终端登录阶段。各阶段各司其职,为下一阶段铺平道路,相互联系,缺一不可。接下来介绍一下每个阶段:。

  BIOS自检阶段。

  从按下电源键开始,计算机开始通电,然后系统开始加载主板内存上的第一段代码:BIOS,系统进入BIOS自检阶段。

  BIOS全称为基本输入输出系统BasicInputOutputSystem,它烧录在主板的内存上,内容只能读不能改。如果要改变,只能重新烧录在主板的内存上。BIOS启动阶段最重要的功能是上电自检,它会逐一检查主板上接入的硬件设备,如检查CPU、当某些主要硬件(如主板、内存、软硬盘系统、键盘、光驱等)正常接入时(如CPU、当内存出现问题时,BIOS会报错,系统无法继续启动。启动电脑时听到的滴滴声是BIOS当硬件出现问题时,蜂鸣器发出的声音可以听到蜂鸣器响两到三次报错,系统无法启动下一步。启动电脑时听到的滴滴声是BIOS当硬件出现问题时,蜂鸣器发出的声音可以听到蜂鸣器响两到三次报错,系统无法启动下一步。

  BIOS当检查所有硬件状态和状态正确时,根据设定的启动顺序找到相应的启动板,然后引导系统进入相应的启动板继续启动系统。有刷机经验的朋友应该知道,当系统启动时,按下它F12或者delete键就会进入BIOS界面,然后选择相应的启动盘刷机,启动盘可以安装U盘、光驱,也可以是已经装了系统的磁盘等等,BIOS默认启动顺序可以设置,例如:可以设置U盘为第一启动项,开机启动时BIOS会引导系统去找U当找不到盘对应的硬件接口时,找不到盘对应的硬件接口U盘时,BIOS第二个启动项目将继续尝试。当选择启动项目时,系统将进入相应的启动盘,并开始执行启动盘中第一个磁盘和第一个风扇区域的代码。到目前为止BIOS自检阶段结束。

  GRUB引导阶段。

  GRUB是GRandUnifiedBootloader缩写,它是一个多操作系统的管理器,存储在第一个磁盘的第一个风扇区域的主导风扇区域,如果您的计算机安装了多个系统,例如Linux系统和Windows然后你可以通过系统GRUB移动光标选择您想进入的系统,选择系统后GRUB就会根据系统分区表里找到对应系统所在的磁盘分区,加载相应的grub。cfg通过配置文件加载配置文件/boot文件系统驱动分区,然后在文件系统中找到系统内核,加载并启动内核,最后将系统的控制权交给内核。到目前为止GRUB引导阶段结束。

  GRUB除了引导系统的主要功能外,还可以通过grub。cfg配置文件实现其他功能。grub。cfg存储配置文件/boot/grub在/目录下,配置文件,Linux参数表示系统启动时相应加载的内核。当多个内核存储在系统中,或算机上修改和编译新内核时,可以配置此项选择相应的内核进行加载;quiet参数类似于loglevel参数,配置日志启动等级;splash配置相应的启动动画等参数。

  Kernel核心加载阶段。

  在解释内核启动之前,先简要介绍一下Linux内核。Linux内核是一种在单个地址空间中运行的宏内核的单一程序,集中了系统的过程线程管理、内存管理、文件系统、驱动管理、网络管理等基本功能。内核中的每个函数都可以访问内核的其他部分,不同于微内核(代表:Windows微内核是将这些功能独立划分为不同的服务,通过通信接口与中心内核通信服务。

  在结束了GRUB引导阶段,内核拿到系统的控制权后,首先开始初始化系统中各种设备的相关配置工作,其中包括CPU、I/O设备、存储设备的初始化等,其次,核心创建核心状态kernel_init然后找到过程initrd并解压文件,加载initrd虚拟根文件系统中的驱动程序完成相关硬件的初始化,最后调用initrd虚拟根文件系统init到目前为止,内核在系统启动过程中的作用已经基本完成,内核开始等待initrd执行init内核加载阶段结束。

  Initrd虚拟根文件系统阶段。

  initrd(InitialRAMDisk)它是一个虚拟的根文件系统GRUB复制到内存阶段,在内核中解压,是一个临时的虚拟根文件系统,解压后,可以看到其目录结构与实际根文件系统相似,并包含了一些驱动程序。下图为解压麒麟initrd。img5.。18-32虚拟根文件系统的目录结构:。

  由于内核为了精简,只保留了最基本的模块,因此没有各种设备硬件的驱动程序,这些驱动程序存储在中initrd内核启动时,从内核开始initrd在虚拟根文件系统中加载必要的驱动模块,完成硬件的初始化。init即虚拟根文件系统下的程序systemd程序,systemd作为核心子程序,获得了系统的控制权,开始做一些系统初始化的工作。

  通过以上描述,可以概括虚拟根文件系统的阶段大致可以分为内核加载initrd驱动程序在虚拟根文件系统下,systemd因此,虚拟根文件系统的阶段也可以分别归类为内核加载阶段和程序加载阶段systemd初始化阶段是与上下两个阶段重叠的阶段。此外,initrd它还提供了美化启动图形界面的功能,统启动过程中的功能log提高用户体验的日志输出。此外,initrd还提供了美化启动图形界面的功能,用来遮盖系统启动过程中的log提高用户体验的日志输出。initrd下的systemd当环境初始化完成,系统切换到真正的根文件系统时,initrd阶段结束。

  systemd初始化阶段。

  systemd是systemdeamon简称,是一个Linux系统基本组件的集合提供了系统和服务的管理pid为1的init过程是所有过程的父亲过程。需要详细了解systemd小伙伴可以阅读上一篇文章:systemd这里重点介绍一下systemd启动过程中所做的。

  通过前面的描述,我们可以systemd分为虚拟根文件系统和实根文件系统两个阶段。内核通过解压initrd获取虚拟根文件系统执行虚拟根文件系统init程序来启动systemd,systemd在虚拟根文件系统下,子过程作为核心开始运行。在虚拟根文件下systemd首先,检查当前系统,如判断系统的运行状态user态还是system状态、系统是正常启动状态还是异常错误后的重启状态等,然后进行一些系统的初始配置,包括:环境变量配置、日志相关配置等,然后挂载一些关键文件系统,主要包括/proc、/sys、/dev、/var在这一步之后,这些基本的文件系统目录,systemd开始准备切换实根文件目录,保存一些已配置的项目,并适应一些环境,systemd执行setsid()系统调用脱离核心控制,成为一个完全独立的父亲过程,至此systemd虚拟根文件系统阶段结束,systemd进入实根文件系统阶段。

  实根文件系统阶段,systemd首先,对切换后的环境进行适应,然后打开日志终端的功能,提取系统启动时临时保存在核心中的日志,并将其存储在相应的日志文件中。下一步,systemd与系统相关的初始化和配置能力的初始化和配置,例如:CPU获取亲和力,配置主机名,系统ID的配置,cgroup完成上述所有初始化工作后,控制器的挂载、回环网络的配置等,systemd作为PID为1根据相应的保护过程,开始了各系统服务的创建和管理Unit配置单元文件执行相应的系统服务,系统启动工作通过各种服务逐步完成。systemd执行Unit顺序大致可以分为sysinit。target->basic。target->default。target,其中sysinit。target与basic。target主要用于启动一些与系统初始化相关的服务,并在启动初期执行一些任务,default。target指向不同的操作级别target如果文件进入命令行模式,则指向multi-user。target如果文件进入图形界面模式,则指向graphical。target文件。至此,systemd启动阶段完成工作。至此,systemd启动阶段完成工作。

  终端登录阶段。

  在完成了systemd初始化阶段结束后,系统根据配置的运行水平进入不同的登录界面,以下主要介绍图形登录界面。在优麒麟操作系统中,systemd启动过程主要如下:systemd->lightdm->X->lightdm-greeter->ukui-greeter->ukui-session,通过优麒麟终端pstree命令可以看到以下两个过程树:。

  lightdm是全新的,轻的Linux桌面桌面显示管理器首先会拉起X,X负责屏幕绘制的显示后台,然后lightdm还会拉起lightdm-greeter,lightdm-greeter是lightdm它会拉起子的过程ukui-greeter进程,ukui-greeter是登录界面进程,因此ukui-greeter当输入登录用户名和密码时,系统将进入登录界面,通过用户名和密码效果后,lightdm建立个人的ukui-session到目前为止,终端登录阶段已经结束,系统已经启动。

  systemd相关命令。

  systemd提供了systemctl管理系统使用相关命令,以下是一些基本的常用命令:。

  1系统管理命令,控制系统电源状态。

  #重启系统。

  $sudosystemctlreboot。

  #关闭系统,切断电源。

  $sudosystemctlpoweroff。

  #暂停系统,使系统进入睡眠状态。

  $sudosystemctlsuspend。

  #让系统进入冬眠状态。

  $sudosystemctlhibernate。

  #让系统进入交互式休眠状态。

  $sudosystemctl。