码迷,mamicode.com
首页 > 系统相关 > 详细

Linux启动流程简介以及各启动阶段失败的恢复方法

时间:2018-05-10 13:18:22      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:知识点   ilo   gpt   设备   两种   info   bin   结构   load   

    透彻的了解Linux启动流程是非常关键的知识点,只有了解了这部分内容,才会在Linux出现系统级别的错误时能够非常冷静的面对以及快速的排错。

Linux启动流程

第一阶段

技术分享图片

  • BIOS不是操作系统的职责范围
  • BIOS是硬件的功能,属于firmware
  • BIOS存储于ROM,不需要强电就可以实现数据保存
  • 更改BIOS如启动顺序保存在一种特定的RAM中,为了保证断电后实际更改保存,通过BIOS上加电池来解决
  • 在BIOS可以选择启动顺序(硬盘,光盘,网络等)
  • 如果选择BIOS从硬盘启动,硬盘的必须是MBR分区,相应的支持的硬盘最大为2TB
  • 替代BIOS的是UEFI(Unified Extensible Firmware Interface),通常配合硬盘分区类型GPT,支持最大硬盘8ZB
  • 一旦BIOS找到硬盘MBR分区中的引导程序bootloader,就把后续工作转交给bootloader

第二阶段

技术分享图片

  • bootloader把内核加载到内存
  • 但凡读取了一个设备的MBR,如果MBR中的bootloader损坏,无法正常启动,操作系统不会再去读第二个设备的MBR,这也正是由于bootloader损坏,我们需要更改BIOS的启动顺序从光盘启动去修复硬盘中bootloader的原因
  • 一旦Kernel装载完毕,Bootloader退出工作,把后续的工作交给Kernel.

Bootloader详解:

      Bootloader是一个程序,不属于任何的操作系统,但是由操作系统安装时提供。常见的有微软的ntloader。Linux有两种常用的bootloader:

  1. LILO:大于8G的硬盘不支持,在嵌入式系统中常用
  2. GRUB:GRand Unified Bootloader,目前有两个主流版本grub-0.97和grub2-2.02,下图就是在安装Linux过程中创建bootloader的过程

技术分享图片

 

第三阶段

技术分享图片

  • 内核Kernel要执行/sbin/init,就必须能够先访问根文件系统,因为在Linux下,文件系统从根/目录开始,就是根文件系统rootfs
  • Linux是单内核结构
  • 内核本身要尽可能的小,因为内核是常驻内存的,同时内核要尽可能多的支持各种类型的硬件,通过模块化的设计.ko来实现内核模块的动态装载和卸载。

 

Linux启动流程简介以及各启动阶段失败的恢复方法

标签:知识点   ilo   gpt   设备   两种   info   bin   结构   load   

原文地址:https://www.cnblogs.com/liangjindong/p/9018979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!