Linux OR windows 的启动全过程详解
Linux OR windows 的启动过程详解
Process
- 启动BIOS,BIOS实际上就是主板上的一块flash芯片,它会在开机后首先启动
- BIOS中可以选择引导方式 Legacy & uEFI,两者为两种不同的引导方式,一般来说Legacy mode为传统的BIOS启动方式,而uEFI为新的引导方式
- linux一般采取Legacy mode居多,而windows 7之后 默认采取uEFI引导方式,mac引导方式为efi
- Legacy mode的过程为,根据falsh芯片中的步骤,然后读取硬盘中的第一个扇区,也就是引导程序,后面会知道是MBR引导程序,将所有的硬件检查一遍(自检POST),随后将引导权给引导程序,常见的引导程序包括Grub、clover 、rEFland等,比如在Grub中,可以选择linux或者windows启动
- uEFI mode的过程为,uEFI的固件被加载,初始化硬件,读取FAT分区上的/efi/boot/bootx64.efi来执行,根据上述文件,来加载所需要的uEFI应用,比如鼠标的驱动、蓝牙等(Legacy mode并不支持鼠标等,只支持键盘),uEFI也可以启动其它应用,比如Grub。
- 关于MBR和GPT分区方式,这两种是均为硬盘分区方式,FAT、NTFS等都是具体的某个区上的文件系统,legacy mode仅支持MBR分区方式,而uEFI mode支持MBR和GPT分区方式,但MBR需要在BIOS设置CSM
- 在linux中,进入Grub后,根据配置,加载kernal 并初始化,根据/etc/inittab中的系统初始化配置/etc/rc.sysinit脚本,跟觉kernel读取到的runlevel执行对应服务,运行/etc/rc.local,生产终端等待用户登录
- 在legacy mode,当你安装Grub后,Grub会重写你的MBR引导程序,因此MBR能够去启动Grub
Reference
https://unix.stackexchange.com/questions/94/grub-location-did-it-go-to-the-mbr-or-elsewhere
https://www.zhihu.com/question/26048255
https://www.nowcoder.com/test/question/done?tid=38279214&qid=327331#summary
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库