【主机开机启动流程】

https://sspai.com/flipboard/post/64619 👇

传统:按下电源键以后,计算机就会读取嵌入在主板中的固件(好比人的小脑),也就是我们通常所说的「BIOS」:它的全称是 Basic Input / Output System,即「基本输入输出设备」。

发展:随后,由业界多家著名公司共同成立统一可扩展固件接口论坛;将 EFI 统一化便形成了 「UEFI」:全称 Unified Extensible Firmware Interface,即「统一的可扩展固件接口」。它拥有图形化的界面、多样的操作方式以及允许植入硬件驱动等 BIOS 没有的特性,作为BIOS的替代。

1.1 固件为BIOS:

硬件自检--》排名第一位的存储设备(默认硬盘)。「MBR」(Master Boot Record)即「主引导记录」是计算机开机后访问硬盘时所必须要读取的首个扇区。

BIOS + MBR 的启动模式

1.2 固件为UEFI:

完成了硬件自检之后会先读取识别全局唯一标识码分区表,全称: Globally Unique Identifier Partition Table,缩写「GPT」,它是一种比 MBR 更为先进的硬盘分区表结构布局的标准。

UEFI + GPT 的启动模式

 2. Boot Loader 和 ESP

在计算机读取识别完 MBR / GPT 后,控制权就要转交给事先安装在某个分区里的「Boot Loader」,即启动引导程序。它能让用户选择启动哪一个操作系统。当用户选择完毕后许会接手初始化硬件、建立内存的映射,以便为选择的操作系统内核准备好正确的软硬件环境。

BIOS:

通过一个活动的主分区下的 Boot Loader 文件导入根目录下 boot 文件夹里的 BCD(启动设置数据)文件,然后 BCD 文件根据自身的配置内容加载系统启动文件。

BIOS 固件计算机操作系统启动流程

 UEFI:

使用 UEFI 引导操作系统时,在其规范中:在 GPT 分区表的基础上,规定了硬盘中必须要有一个 EFI 系统分区,即 EFI System Partition,简写为「ESP」。ESP 要基于 FAT 格式,Boot Loader 要放在 ESP 中,且 EFI 启动文件要放在「\EFI\<厂商>」文件夹下;比如 Windows 的 UEFI 启动文件,都在「\EFI\Microsoft」下。

UEFI 固件计算机操作系统启动流程

[GRUB]:

众多 Linux 发行版都使用 GRUB (全称 GNU GRand Unified Bootloader,即大一统启动加载器)作为默认 Boot Loader。安装完 Linux 系统后它便会成为电脑默认的 Boot Loader。除了选择操作系统,它还可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数;同时,它也兼容 Windows 操作系统。当然,如果你觉得它的界面略显「简陋」,你也可以安装不同的主题来调整它的 UI。

*GRUB(GRand unified bootloader),多操作系统启动程序。它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。

使用 GRUB 启动不同系统

注:

Boot Sequence:

BIOS/UEFI自检完成后的下一步操作。进入 BIOS / UEFI 操作界面后,里面有一项就是「设定启动顺序」。为了从 U 盘这类的外部设备读取并安装 Linux 系统,我们需要预先更改它。

Secure Boot:

在 UEFI 的规范中定义了一项名为「Secure Boot」的协议,Secure Boot 只允许载入有数字签名的 EFI 驱动和启动程序,在安装 Linux 前,我们需要关闭它。

Linux 系统的硬盘分区安装规则:

其实所谓「安装」任何一个系统,就是把外置设备内的打包文件解压缩拷贝到该系统所规定的不同特定存储分区中去。好比搬家时把放在箱子里不同的开本的书放进不同柜格的书柜里;只要根据书籍的开本规格先提前买好相应大小柜格的书柜,那么安装这件事便能水到渠成。

那么 Liunx 系统最少需要我们的硬盘上哪几种「柜格」呢?

「/boot」分区:引导区,即我们上文所提到的 ESP 分区,包含了启动引导程序,一般情况格式为 FAT32。

「/」分区:root 分区,也称之为「根」分区或主分区,用于保存系统文件和个人文件,一般情况格式为 ext4;当然你可以再划分一个「/home」分区来存放个人文件分离系统文件。

「Swap」分区:用于存放虚拟内存:在过去内存吃紧的年代,Linux 系统一般会创建一个大小为内存的两倍的 Swap 分区来防止内存不足;如果内存足够大,可以不予考虑。

知识点:

https://qiita.com/YukiMiyatake/items/d3f235db55cf37afc037

BIOS中的UEFI和Legacy启动模式 · 小白装系统教程 · 看云

【干货】BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思? - 知乎

win10 双系统 Ubuntu UEFI+GPT bios+mbr 理论与实践 - 知乎 👇

在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头

为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本

在GPT分区表的最开头,出于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。

https://www.normalesup.org/~george/comp/live_iso_usb/grub_hybrid.html

https://segmentfault.com/a/1190000020850901👇

UEFI 引导流程

整个UEFI的启动详细流程描述如下:

  • 开机后,固化在ROM里的UEFI BIOS就会被加载到内存运行。
  • UEFI BIOS将引导EFI系统进行运行。
  • EFI系统启动后,GUID分区表就会被识别,之后EFI系统就会通过.efi文件启动Boot Loader程序加载操作系统内核。

如下图:

uefi loader

对于分区表格式为MBR分区表的磁盘,UEFI系统会 先启动CSM兼容模式后按传统BIOS的步骤加载操作系统的内核。如下图:

uefi mbr loader

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要让vncserver开机自启动,可以按照以下步骤进行操作: 1. 编辑vncserver的配置文件,可以使用命令:`sudo nano /etc/vncserver/vncservers.conf` 打开。 2. 在文件的末尾添加以下内容: ``` VNCSERVERS="1:your_username" VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24" ``` 其中,1:your_username表示开启一个vncserver实例,your_username是你的用户名。 -geometry 1920x1080 -depth 24 表示设置vncserver的分辨率和颜色深度。 3. 保存并退出文件。 4. 打开 /etc/rc.local 文件,可以使用命令:`sudo nano /etc/rc.local` 打开。 5. 在文件的 exit 0 前添加以下内容: ``` su - your_username -c "/usr/bin/vncserver :1" ``` 其中,your_username是你的用户名,:1 表示开启的vncserver实例编号。 6. 保存并退出文件。 7. 重启系统,vncserver会自动启动。 注意:以上操作需要使用root权限或sudo权限。 ### 回答2: 要使vncserver在Linux开机时自动启动,可以按照以下步骤进行设置: 1. 打开终端并以root用户登录系统。 2. 打开vncserver的配置文件vncservers.conf,通常位于/etc/sysconfig/目录下。使用文本编辑器(如vi或nano)打开该文件。 3. 在vncservers.conf文件中,找到以"#VNCSERVERS"开头的行。在该行下面添加以下内容: ``` VNCSERVERS="<display_number>:<vncserver_number>" VNCSERVERARGS[<display_number>]="-geometry <width>x<height> -<depth>" ``` 这里的<display_number>一般为1,<vncserver_number>为vncserver的实例编号(通常从1开始递增),<width>和<height>表示vncserver的窗口尺寸,<depth>表示颜色深度。 例如,可以添加以下内容: ``` VNCSERVERS="1:1" VNCSERVERARGS[1]="-geometry 1024x768 -depth 16" ``` 4. 保存并关闭vncservers.conf文件。 5. 打开/etc/rc.local文件,使用文本编辑器打开该文件。 6. 在rc.local文件的末尾添加以下内容: ``` /usr/bin/vncserver ``` 7. 保存并关闭rc.local文件。 现在,vncserver将在Linux开机时自动启动。可以重新启动系统来验证设置的效果。 ### 回答3: 要让vncserver在Linux开机时自动启动,可以按照以下步骤进行设置: 1. 首先,使用root用户登录系统。 2. 打开终端或使用SSH登录到Linux主机。 3. 编辑/etc/sysconfig/vncservers文件,使用文本编辑器(如vi)进行编辑。 4. 在文件中找到并修改以下行: VNCSERVERS="1:root" VNCSERVERARGS[1]="-geometry 1024x768" 将"1:root"替换为您想要使用的用户名,例如"2:john"。 5. 保存并关闭文件。 接下来,您需要配置vncserver作为系统服务,以便在开机时自动启动。 6. 使用root用户打开终端或通过SSH登录到Linux主机。 7. 运行以下命令将vncserver服务添加到系统服务中: systemctl enable vncserver@:1 (注意根据您的编辑更改:1为:2或其他选择。) 8. 系统会提示成功启用vncserver服务。 9. 重启Linux系统,vncserver将自动启动。 现在,vncserver将在Linux开机时自动启动,并且您可以使用VNC客户端连接到该服务器。请注意,在第一次连接之前,您需要设置VNC连接的密码。 在这个过程中,如果遇到问题,您可以查看系统日志文件/var/log/vncserver.log以获取更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值