前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS 8启动流程

CentOS 8启动流程

作者头像
星哥玩云
发布于 2022-09-15 07:31:13
发布于 2022-09-15 07:31:13
2.4K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

一、BIOS与UEFI

BIOS

​Basic Input Output System的缩写,翻译过来就是“基本输入输出系统”,是一种业界标准的固件接口,第一次出现在1975年,是计算机启动时加载的第一个程序,主要功能是检测和设置计算机硬件,引导系统启动。

UEFI Unified Extensible Firmware interface的缩写,翻译过来为统一可扩展固件接口,是BIOS的替代方案,前身是Intel在1998年开始开发的Inter Bot Initiative,后来被命名为可扩展固件接口(Extensible Firmware Interface EFI),2005年交由统一可扩展固件接口论坛,并更名为UEFI

UEFI的优势

​1、支持硬盘容量更大:相比于传统BIOS+MBR只能支持2048G的硬盘分区和4个主分区相比,UEFI+GPT不会受到硬盘容量大小、分区数量的限制,不过在Windows系统上由于系统的限制,支持最多128个GPT磁盘分区,最大分区18EB,并且GPT格式是没有主分区和逻辑分区这个概念的

2、容错特性:UEFI是模块化构建,比BIOS容错和纠错特性强。

​3、鼠标操作:UEFI内置图形驱动,可以提供原生分辨率的图形环境,用户进入后可以使用鼠标调整。

​4、扩展性强:UEFI包含一个可编程的开放接口,厂商利用这个接口可以对功能进行扩展,如:备份和诊断

​5、支持联网:在不进入操作系统的前提下就可以通过网络进行远程故障诊断

二、CentOS8启动流程

​现代计算机是软件与硬件的复杂组合,从接通电源开始,到可以登录到系统中,需要大量的软件和硬件的配合,我们一起来了解一下CentOS8的x86_64系统在启动过程中所涉及的任务,虚拟机的流程也是大致相同的,但是某些与硬件相关的步骤是由虚拟机的相关程序在软件中处理的。

1、接通电源

​ 系统固件(UEFI或BIOS初始化)运行开机自检,并初始化部分硬件

2、系统固件搜索可启动设备

​ 启动设备可能是UEFI启动固件中配置的,也可能是按照BIOS中配置的顺序搜索所有磁盘上的主启动记录(MBR)

3、读取启动加载器(boot loader)

​ 系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器,在CentOS8中启动加载器为GRUB2

4、grub.cfg

​ GRUB2将从/boot/grub2/grub.cfg文件中加载配置并显示一个菜单,在这个菜单中可以选择要启动的内核,我们可以使用grub2-mkconfig命令配合/etc/grub.d/目录和/etc/default/grub文件生成grub.cfg文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# cd /boot/grub2/
[root@zutuanxue grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc
[root@zutuanxue grub2]# pwd
/boot/grub2

5、initramfs

​ 在选择内核或到达超时时间后,启动加载器会从磁盘加载内核(vmlinuz)和initramfs,并将它们放入内存中,initramfs中包含启动时所有必要硬件的内核模块(驱动)和初始化脚本等,使用lsinitrd和dracut命令配合/etc/dracut.conf.d/目录可以查看和配置initramfs文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue grub2]# lsinitrd  | more
Image: /boot/initramfs-4.18.0-80.el8.x86_64.img: 27M
##可以在回显中看到系统的主要目录,包括/etc /usr /dev /lib /lib64等

6、启动加载器放权

​ 启动加载器将控制权交给内核

7、内核初始化

​ 内核会在initramfs中寻找硬件的相关驱动并初始化相关硬件,然后启动/usr/sbin/init(PID=1),在CentOS8中/sbin/init是systemd的链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue grub2]# ll /sbin/init 
lrwxrwxrwx. 1 root root 22 523 2019 /sbin/init -> ../lib/systemd/systemd
[root@zutuanxue grub2]# find / -name systemd
/usr/lib/systemd/systemd

8、启动initrd.target并挂载

​ systemd会执行initrd.target包含的所有单元,并将根文件系统挂载到/sysroot/目录,在initrd.target启动时的依赖单元,会按照/etc/fstab设置对硬盘进行挂载

9、切换根文件系统

​ 内核将根文件系统从initramfs切换为/sysroot(硬盘上的根文件系统),systemd会找到磁盘上安装的systemd并自动重新执行

10、启动相应目标

​ 硬盘上安装的systemd会查找从内核命令行传递的目标或是系统中配置的默认目标并启动对应单元后就可以进入到对应的登录界面。默认目标是/etc/systemd/system/default.target,

注意: 字符界面:

​ 如果默认目标为multi-user.target(字符界面),systemd会先执行sysinit.target初始化系统之后执行basic.target与getty.target准备基本系统环境和终端,再启动multi-user.target下的相关应用,同时执行/etc/rc.d/rc.local(需要执行权限)与与登录服务(systemd-logind.service),开启登录界面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# systemctl list-dependencies multi-user.target | grep target
multi-user.target
● ├─basic.target
● │ ├─paths.target
● │ ├─slices.target
● │ ├─sockets.target
● │ ├─sysinit.target
● │ │ ├─cryptsetup.target
● │ │ ├─local-fs.target
● │ │ └─swap.target
● │ └─timers.target
● ├─getty.target
● ├─nfs-client.target
● │ └─remote-fs-pre.target
● └─remote-fs.target
●   └─nfs-client.target
●     └─remote-fs-pre.target

图形界面:

​ 在multi-user.target的基础上执行graphical.target启动所需要的服务,开启图形界面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# systemctl list-dependencies graphical.target | grep target
graphical.target
● └─multi-user.target
●   ├─basic.target
●   │ ├─paths.target
●   │ ├─slices.target
●   │ ├─sockets.target
●   │ ├─sysinit.target
●   │ │ ├─cryptsetup.target
●   │ │ ├─local-fs.target
●   │ │ └─swap.target
●   │ └─timers.target
●   ├─getty.target
●   ├─nfs-client.target
●   │ └─remote-fs-pre.target
●   └─remote-fs.target
●     └─nfs-client.target
●       └─remote-fs-pre.target

三、运行级别切换与相关配置文件

运行级别切换

​ 通过前面的课程我们了解到CentOS8在启动过程中需要判断对应的运行级别,在不同的运行级别中会启动不同的单元,那么运行级别如何切换呢?

​ 在CentOS8中运行级别的设置涉及到下面几个命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl isolate	.../init [0-6]	切换运行级别
systemctl	get-default				查看当前的默认运行级别
systemctl set-default ...		设置默认的运行级别
runlevel										查看之前的运行级别和当前的运行级别

​ 运行级别对照

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost system]# cd /usr/lib/systemd/system
[root@localhost system]# ll runlevel*.target
runlevel0.target -> poweroff.target
runlevel1.target -> rescue.target
runlevel2.target -> multi-user.target
runlevel3.target -> multi-user.target
runlevel4.target -> multi-user.target
runlevel5.target -> graphical.target
runlevel6.target -> reboot.target

所以当我们使用init [0-6]切换运行级别的时候系统执行的是systemctl isolate runlevel[0-6].target

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# runlevel #查看运行级别
N 5
[root@zutuanxue ~]# init 3	#切换到字符界面
[root@zutuanxue ~]# runlevel 	#查看运行级别
5 3
[root@zutuanxue ~]# systemctl isolate graphical.target 	#切换到图形界面
[root@zutuanxue ~]# runlevel 
3 5

#########
emergency.target
[root@zutuanxue ~]# systemctl isolate emergency.target 

注意:此为紧急模式,用于紧急处理系统的错误,无法使用rescue.target时,可以尝试使用此模式。

四、Boot Loader与GRUB2

​前面的课程我们了解的CentOS8的启动流程,在这个流程中有一个叫启动加载器,也就是boot loader的工具,如果没有这个boot loader就无法加载内核。在CentOS8中使用的是启动加载器是Grub2,在了解Grub2之前,我们先聊一下boot loader

4.1、Boot Loader的两个阶段

​我们知道在BIOS或者UEFI加载完成之后,会到MBR中读取boot loader,这个boot loader可以让用户选择加载的内核并且移交系统的控制权限等,而加载内核只能通过boot loader,但是boot loader在MBR中,这个MBR是硬盘的第一个扇区,一个扇区的大小是512字节,boot loader的大小只有446字节,即便是GPT磁盘也没有足够的空间存储boot loader所包含的内容,所以为了避免空间的限制,导致无法引导系统正常启动的问题,Linux将boot loader的工作过程分为了两步。

​stage1 执行boot loader的主程序 主程序必须安装在MBR或者是启动扇区,由于空间限制,MBR或启动扇区仅存放最小化的boot loader,并不会存放相关的配置文件

stage2 通过主程序加载配置文件 通过boot loader的主程序加载所有相关的配置文件,这些配置文件中包括定义文件系统类型的和CentOS8中的grub.cfg文件,而这些文件通常都存放在/boot当中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# ll -F /boot/grub2/
总用量 32
-rw-r--r--. 1 root root    64 1213 21:50 device.map
drwxr-xr-x. 2 root root  4096 1213 21:50 fonts/
-rw-r--r--. 1 root root  5032 1213 21:50 grub.cfg
-rw-r--r--. 1 root root  1024 1213 21:50 grubenv
drwxr-xr-x. 2 root root 12288 1213 21:50 i386-pc/

device.map		设备对应文件,用来帮助系统判断磁盘与设备文件的对应关系
fonts					开机过程中用到的字体文件
grub.cfg			grub2的主配置文件
grubenv				grub环境区块文件大小为1K,用来记录GRUB环境变量
i386-PC				针对x86架构的电脑所需要的相关模块,包括电源管理支持,文件系统支持等模块

在这些文件中最重要的就是grub.cfg文件,以及文件系统支持的相关模块

4.2、GRUB2

GRUB与LILO 目前为止,linux下的启动加载器有两种,一种是LILO另外一种就是GRUB,由于GRUB的功能更强大,支持的文件系统较多,所以越来越多的操作系统使用GRUB做为boot loader,CentOS从7开始使用了功能更为强大的GRUB2

GRUB2的优点

  • 支持更多的文件系统
  • 开机时可以手动调整启动参数
  • 动态更新配置文件,修改完配置文件后不需要重新安装

GRUB2与硬盘

​由于grub2的主要任务是从硬盘当中加载内核,所以grub2必须要识别硬盘,但是grub2识别硬盘的方式与linux系统识别的方式还是有些区别的。在Linux系统中,硬盘一般会被识别为类似sda1这种形式,而在grub2中硬盘会统一被识别为hd的设备,排序方式全部是用数字进行排序,而不是用字母加数字的混合形式。这么做的目的是为了定义grub2的查找内核时的顺序。如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hd0,1		搜索第一块硬盘的第一个分区
hd0,msdos1	搜索第一块MBR硬盘的第一个分区
hd0,gpt1	搜索第一块GPT磁盘的第一个分区
简单来说,两个数字,第一个数字表示硬盘序号,第二个数字表示分区序号

grub2配置文件

了解了grub2中的硬盘识别方式,我们就可以了解一下grub2的配置文件了,这个文件建议各位不要随意更改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

此部分内容提示我们不要编辑这个文件,此文件是有grub2-mkconfig命令自动建立的,相关模板与设置存放在/etc/grub.d/目录以及/etc/default/grub中,也就是说grub.cfg文件的内容会调用/etc/grub.d目录下的内容,如果需要修改的话需要调整/etc/default/grub文件

基本上grub2不希望用户去修改grub.cfg这个文件,如果需要调整的话需要通过修改其它文件并配合grub2-mkconfig命令来生成新的grub.cfg文件,但是各位还是要了解一下这个文件的大致格式

/etc/default/grub与/etc/grub.d/

​在前面的课程中我们知道了grub2的配置文件是grub.cfg,但是此文件内容比较复杂,且官方不建议我们手动修改,如果需要修改的话需要通过/etc/default/grub文件以及/etc/grub.d/目录内的内容来实现,那我们一起来看一下

​**/etc/default/grub**

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zutuanxue ~]# vim /etc/default/grub
GRUB_TIMEOUT=5	定义在启动菜单默认的等待时间,单位是秒
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"		定义获取操作系统名称的方式
GRUB_DEFAULT=saved	定义开机时默认启动的项目,可以是数字,也可以是标题名称,(这个标题就是开机时看到的那个标题),还可以是saved(表示默认启动上次启动成功的操作系统)	
GRUB_DISABLE_SUBMENU=true	是否隐藏子菜单
GRUB_TERMINAL_OUTPUT="console"	定义启动时的界面使用哪种终端输出,值包含console,serial,gfxterm,vga_text等
GRUB_CMDLINE_LINUX="resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"	定义额外的启动参数
GRUB_DISABLE_RECOVERY="true"	是否启用修复模式
GRUB_ENABLE_BLSCFG=true	是否启用bootloader规范

修改完成之后需要使用
grub2-mkconfig -o /boot/grub2/grub.cfg,重新生成配置文件

/etc/grub.d/

00_header 设置默认参数

00_tuned 额外调整的值

01_menu_auto_hide 与菜单隐藏相关的设置

01_users 与用户相关的设置

10_linux 与内核相关的设置

20_ppc_terminfo 与终端相关的设置

20_linux_xen 与虚拟化相关的设置

30_os-prober 与操作系统检测相关

30_uefi-firmware 与UEFI启动设置相关,需要硬件支持

40_custom&41_custom 自定义设置

注:这些文件会按照数字的顺序由小到大加载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解析 Linux 操作系统启动流程(CentOS 6)
加电自检(power-on-self-test)用来检查各硬件是否正常工作,如 cpu、内存、显卡、硬盘、键盘等。加电自检的过程是通过主板上的 ROM 芯片(CMOS)所定义的程序来实现的,CMOS 可以做一些设定,是通过基本输入输出系统(BIOS)实现的,如选择计算机由哪块设备进行引导。
懒人的小脑
2019/01/22
1.6K0
解析 Linux 操作系统启动流程(CentOS 6)
Linux: 深入解析GRUB2引导加载器的核心原理
GRUB2(GRand Unified Bootloader 2)是现代计算机系统中广泛使用的引导加载器。它继承了GRUB的灵活性和强大功能,为用户提供了一个高度可配置和扩展的平台,用于引导多种操作系统。本文将深入探讨GRUB2的工作原理、配置方法以及常见应用场景,帮助读者更好地理解和使用GRUB2。
运维开发王义杰
2024/06/12
1.2K0
Linux: 深入解析GRUB2引导加载器的核心原理
开机启动流程
grub and boot Centos5,6的开机启动流程 grub Centos7的开机启动流程 Centos5,6的开机启动流程 initrd / initramfs 一般存储在/boot目录下
小小科
2018/05/03
1.6K0
开机启动流程
Linux启动流程 梳理| 思维导图 | 流程图 | 值得收藏
嵌入式与Linux那些事
2024/06/11
3740
Linux启动流程 梳理| 思维导图 | 流程图  | 值得收藏
Linux启动流程与模块管理
系统的启动其实是一项非常复杂的过程,因为内核得要检测硬件并加载适当的驱动程序,接下来则必须要调用程序来准备好系统运行的环境,以让用户能够顺利的操作整台主机系统,如果你能够理解系统启动的原理,那么将有助于你在系统出问题时能够很快速的修复系统,而且还能够顺利的配置多重操作系统的多重启动问题,为了多重启动的问题,你就不能不学 grub 这个 Linux 下优秀的启动管理程序(boot loader),而在系统运行期间,你也得要学会管理内核模块,下面进入正题开始学习吧.
王瑞MVP
2022/12/28
1.4K0
Centos7笔记 | 操作系统启动流程、Linux用户及权限
Centos 服务管理器:systemd和init并行运行。(systemctl和service)
网络技术联盟站
2019/08/16
1.2K0
Centos7笔记 | 操作系统启动流程、Linux用户及权限
从无盘启动看 Linux 启动原理
作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器。一凡研究后我看上了 volumio(https://volumio.org/) 这是一个基于 Debian 二次开发的 HIFI 播放器系统,可以运行下 x86 和树莓派上。 我打算让 volumio 运行在我 2009 年购买的老爷机笔记本上,也让它发挥一点余温热。正常操作是将 volumio 的系统镜像刷到 U 盘上,连接电脑后使用 U 盘启动系统即可。但是家
腾讯技术工程官方号
2020/11/02
8.8K0
系统启动流程详解:从BIOS/UEFI到GRUB/Bootloader
这里推荐一篇实用的文章:《揭秘!Vue3.5响应式重构如何让内存占用减少56%》,作者:【前端欧阳】。
Echo_Wish
2024/11/19
2620
系统启动流程详解:从BIOS/UEFI到GRUB/Bootloader
CentOS7下Systemctl详解
Systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服Sys V 固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的启动方式,centos7上使用systemd替换了Sys V,Systemd目录是要取代Unix时代依赖一直在使用的init系统,兼容SysV和LSB的启动脚本,而且能够在进程启动中更有效地引导加载服务。 system:系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其他进程,根据管理,字母d是守护进程(daemon)的缩写,systemd这个名字的含义就是它要守护整个系统。
用户5807183
2019/08/02
1.4K0
搞它!!!Linux——引导、排障及修复
二、模拟破坏mbr引导扇区: [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1 记录了1+0 的读入 记录了1+0 的写出 512字节(512 B)已复制,0.000106943 秒,4.8 MB/秒 三、重启后,加载系统镜像文件中的急救模式:
不吃小白菜
2020/09/03
8.3K0
搞它!!!Linux——引导、排障及修复
Linux系统安全-Linux启动流程和服务管理(init和systemd)
GRUB2相较于GRUB一代的提升:更健壮、可移植、更强大。支持BIOS、EFI和OpenFirmware,支持GPT和MBR分区表。支持非Linux系统,如苹果HFS文件系统和Windows的NTFS文件系统。
谢公子
2022/01/19
2.4K0
Linux系统安全-Linux启动流程和服务管理(init和systemd)
Linux运维工程师面试题(1)
如果 root 密码忘记了,grub 的密码也忘记了,可以进救援模式将 /mnt/sysimage/boot/grub/grub.conf 文件里密码那行删了即可,或者直接修改 shadow 文件,直接把 root 密码删了,即可以使用 root 进行空口令登录了。
阿贤Linux
2023/08/22
7000
Linux运维工程师面试题(1)
linux生成initramfs,Linux启动过程与initramfs
BIOS读取硬盘的MBR,运行启动扇区中的代码,旧系统往往需要自己写启动扇区,而新系统基本上由专用的启动软件接管了,在 Linux 世界中,目前都是用的 Grub2。由于启动扇区空间太小,放不下太复杂的代码逻辑,所以 Grub2 也使用了多阶段启动的策略;
全栈程序员站长
2022/09/22
4.4K0
【Linux】《how linux work》第五章 Linux内核的启动过程
You now know the physical and logical structure of a Linux system, what the kernel is, and how to work with processes. This chapter will teach you how the kernel starts— or boots. In other words, you’ll learn how the kernel moves into memory up to the point where the first user process starts.
阿东
2024/04/10
5510
【Linux】《how linux work》第五章 Linux内核的启动过程
第十六章.Linux系统管理-开机启动流程
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
2.5K0
第十六章.Linux系统管理-开机启动流程
linux基础命令介绍十三:启动流程
固件(firmware)是指设备最底层的,让设备得以运行的程序代码。简单理解就是:固定在硬件上的软件。计算机中的许多设备都拥有固件(如硬盘、鼠标、光驱、U盘等),在计算机启动过程中,最先读取的就是位于主板上的固件,这个固件当前有两种类型:传统的BIOS和新的通用性更强的UEFI。
用户5030870
2019/04/11
2.1K0
Linux基础——centOS7的安装
一、centOS7/RHEL7的新特性: 1、身份管理 (1)kerberos的跨平台信任机制:kerberos将完全兼容微软活动目录,实现完全使用活动目录进行认证。 (2)REALMD:该功能简化了RHEL 加入微软活动目录的配置,支持自动发现域信息。 RHEL 7增加了两个关键性的新特征改善了RHEL对AD的处理方式。 现在,RHEL 7和AD之间建立了跨域信任(Cross-realmtrusts),因此AD用户可以在Linux端无需登录就能访问资源。RHEL 7增加的另外一个AD相关的功能是realm
L宝宝聊IT
2018/06/20
1.2K0
CentOS7启动及排错
配置文件 :/boot/grub2/grub.cfg 修改:/etc/default/grub GRUB_DEFAULT=saved saved改为0 grub2-mkconfig -o /boot/grub2/grub.crg 重新生成
咻一咻
2020/05/29
1.7K0
linux centos系统开机启动流程
任何系统启动的第一步都是加电,也就是按下电源,然后计算机硬件会主动读取BIOS来加载硬件设备信息以及硬件设备的自我检测,之后系统会主动地读取第一个有引导程序的设备,该引导程序可以指定使用哪个内核来启动,并将其加载至内存当中运行,同时内核还要加载其他硬件设备以及对应的驱动程序,来使主机各个组件开始运行,等所有硬件设备加载完成之后,系统就真正启动来了,然后系统会操作一些外部程序开始准备软件的运行环境。之后加载一些系统运行所需要的软件程序。最后一步就是等待用户的登陆。
用户4877748
2020/07/22
3.6K0
GRUB多操作系统启动程序介绍与设置使用
描述:GRUB英文全称GRand Unified Bootloader俗称引导程序是硬盘中的软件,它可以启动用户在计算机中的多个操作系统所以也叫多重启动管理器。 目前主流版本是 GRUB2,在windows中也有类似的引导程序ntloader虽然它也可以引导Linux操作系统但是比较麻烦;
全栈工程师修炼指南
2022/09/29
8.6K0
GRUB多操作系统启动程序介绍与设置使用
相关推荐
解析 Linux 操作系统启动流程(CentOS 6)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验