centos7无盘启动_从无盘启动看Linux启动原理

作者:bobyzhang,腾讯 IEG 运营开发工程师

0. 故事的开始

0.1 为什么和做什么

最近家里买了对音响,我需要一个数字播放器。一凡研究后我看上了volumio(

我打算让volumio运行在我2009年购买的老爷机笔记本上,也让它发挥一点余温热。正常操作是将volumio的系统镜像刷到U盘上,连接电脑后使用U盘启动系统即可。但是家里没有找到合适的U盘(穷~~),加上前段时间听了同事关于linux内核的分享,感慨自己对系统的理解不够。因此我决定使用无盘启动volumio顺便研究一下linux启动原理。

目标:无盘启动volumio系统

0.2 方案

正常Linux启动流程大体如下:BIOS启动,完成自检,选择启动硬件

如果是磁盘系统读取MBR

从MBR指示,找到GRUB所在分区,加载GRUB显示菜单

加载Linux内核到内存中

执行INIT程序

进入用户界面

由于我需要从网络启动,过程会变得复杂一些,主要变化如下在MBR引导前,需要执行一系列的PXE流程,目的是挂载iscsi磁盘。

在加载linux内核后,由于之前iPXE固件已经退出,还需要再次挂载iscsi磁盘。

0.3 准备工作

无盘启动并不是说完全没有磁盘,只是客户端本身没有磁盘,我们需要在远端给机器提供一种文件存储和磁盘共享的方案。 我这里选择的是iscsi共享,相比于NFS和samba共享,它更底层,对系统的兼容性更好。

iSCSI利用了TCP/IP作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存设备。

关于iscsi的配置不是本文重点,这里就不详细描述了,要完成iscsi磁盘的挂载需要接信息。

iscsi服务器地址:我这里是nas服务的地址192.168.3.5

target名称:这个是服务端用来区分目标的,通常一个target服务一个客户端,并关联一块共享存储,例如:iqn.2005-10.org.freenas.ctl:yong-pc.volumio

initiator名称:这个是客户端名称,用来告诉服务端谁来请求了。

1 BIOS和UEFI

准备工作做完,我们先来了解一下计算机的启动原理,这里就要说到BIOS和UEFI,他们是计算机按下电源后最先被执行的程序。

1.1 BIOS (Basic Input/Output System)

上个世纪70年代初,"只读内存"(read-only memory,缩写为ROM)发明,开机程序被刷入ROM芯片,计算机通电后,第一件事就是读取它。这块芯片里的程序叫做"基本输入输出系统"(Basic Input/Output System),简称为BIOS。

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test),缩写为POST。 硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。

这时,BIOS需要知道,"下一阶段的启动程序"具体存放在哪一个设备。也就是说,BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做"启动顺序"(Boot Sequence)。

1.2 UEFI (Unified Extensible Firmware Interface)

不知道大家是否发现,这些年已经很难看到BIOS的身影了。

ROM的存储能力有限,BIOS能驱动的硬件类型和数量大大受限。导致大量新硬件无法在PC启动时被加载。最明显就是你无法在BIOS时使用鼠标。此外BIOS的代码历史悠久难以维护。

在2005年年中时候,包括BIOS供应商、OS供应商、系统制造商以及芯片生产公司在内的行业参与者统一建立了统一的EFI联盟(UEFI,Unified Extensible Firmware Interface)并在2006年一月发行了UEFI规范2.0。

从此你可以愉快的在PC启动初期使用鼠标,甚至像苹果一样加载网络,实现联网下载并安装操作系统。

UEFI的启动流程和BIOS的启动流程不同,由于我2009年购买的老爷机还是BIOS结构,这里不详细展开,简单提一下。系统开机 - 上电自检(Power On Self Test 或 POST)。

UEFI 固件被加载,并由它初始化启动要用的硬件。

固件读取其引导管理器以确定从何处(比如,从哪个硬盘及分区)加载哪个 UEFI 应用。

固件按照引导管理器中的启动项目,加载UEFI应用。

已启动的 UEFI 应用还可以启动其他应用(对应于 UEFI shell 或 rEFInd之类的引导管理器的情况)或者启动内核及initramfs(对应于GRUB之类引导器的情况),这取决于 UEFI 应用的配置

2. PXE

回到我的BIOS老爷机,上电自检完成后BIOS按照设置的启动顺序应该交棒磁盘,但是

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值