zoukankan      html  css  js  c++  java
  • Linux操作系统奥秘02-系统引导(GRUB)

    GRUB的加载流程

    GRUB是GNU的一款多重引导软件。GRUB包含了3个重要的文件:stage1 ,e2fsstage1_5,stage2。这三个文件分别代表了GRUB运行的3个阶段。

    1.stage1

    stage1实际存在于MBR的bootloader段中,由BIOS加载执行,stage1会加载stage1.5(例如e2fsstate1_5表示ext2文件系统的stage1.5)。

    stage1.5用于让GRUB可以识别对应的文件系统。问题是在stage1没有加载stage1.5前不能识别文件系统,那么stage1如何找到stage1.5的呢?

    2.stage1.5

    stage1.5实际上存在于MBR之后的32K中,这样stage1在没有文件系统的情况下就可以找到stage1.5了。stage1.5的作用是加载文件系统,并且

    找到stage2加载对应的stage2

    3.stage2

    stage2是GRUB的主程序,实现了GRUB的主要功能:提供选单,读取配置文件(/boot/grub/grub.conf),连接下一个引导扇区(Boot Sector)。

    GRUB的设置

    grub一般讲设置文件放在/boot/grub下,有些系统还会子啊/etc下建立一个grub.conf的链接文件。

    default=0
    timeout=10
    splashimage=(hd1,2)/boot/grub/splash.xpm.gz
    title Windows2K
    rootnoverify (hd0,0)
    chainloader +1
    title RedHat9
          root (hd1,2)
      kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/
      initrd /boot/initrd-2.4.20-8.img
    title Mandrake9.1
      kernel (hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet           devfs=mount acpi=off vga=788
      initrd (hd1,4)/boot/initrd.img

    hiddenmenu:隐藏菜单

    default=0 :指定默认系统

    password:grub的密码,用于保护grub引导选项不被修改。可以用grub-md5-crypt指令产生

    开机选项:

    title:操作系统的名称,可以自行指定,显示于启动画面中

    root:指定kernel以及initrd所在的硬盘,用hd(x,x)指定,例如(hd0,0)表示第一块硬盘的第一个分区。

    kernel:加载kernel的位置

    多重引导管理

    GRUB指派可以分为2种:直接加载和链接加载

    1.直接加载

    用于加载原本就支持多重引导的系统:Linux,FreeBSD,UNIX等,可以直接加载其kernel

    2.链接加载

    用于加载不支持多重引导的系统:windows。安装windows时会强制重写MBR,导致别的系统无法正常加载,所以一般安装系统时

    要先安装windows,再安装别的系统。

     

  • 相关阅读:
    关于zindex的那些事儿
    使用前端框架Foundation 4来帮助简化响应式设计开发
    超棒的输入特效 Fancy Input
    跳跃的圆形幻灯片
    来自Twitter的自动文字补齐jQuery插件 Typeahead.js
    Xtype定义( Xtype defined )
    EXT基础-元素滑动(Easy Ext Page Basics > Sliding Elements )
    JavaScript 使用面向对象的技术创建高级 Web 应用程序
    HTML 中对client、offset、scroll的认识
    Jash跨浏览器的Javascript命令行调试工具
  • 原文地址:https://www.cnblogs.com/zxlben/p/3462582.html
Copyright © 2011-2022 走看看