grub2启动引导

GRUB 2是GNU GRUB(GRand Unified Bootloader)的最新版本。bootloader(引导程序)是计算机开机后(bios自检之后)第一个运行的软件程序,它负责加载操作系统内核并把控制权交给操作系统内核。之后,操作系统内核初始化操作系统的其他部分。 
    在grub 2引导启动时,会读取配置文件/boot/grub2/grub.cfg。该配置文件中会列出该机器上安装的所有操作系统. 如果需要将某个系统作为默认启动项,则可以: 
(1)在/etc/default/grub 中设置 grub_default=saved 表示保存系统的默认启动项 
(2)然后将它写到grub2的启动配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg 
(3)执行grub2-set-default 启动名 设置为默认启动 
(4)此时查看 grub2-eidtenv list 可以查看此时的默认启动项

grub2的启动配置文件为 /boot/grub2/grub.cfg,但是一般不直接修改它,而是通过 配置文件/etc/default/grub.cfg以及grub2-的相关命令来修改配置。

grub2修复GRUB

如果操作不当导致机器GRUB bootloader失效(比如错误修改/boot/grub2/grub.cfg),GRUB 2可能会加载失败,随后进入启动提示符。此时,可以在grub2中进行启动设置修复: 
(1)列出GRUB 2识别的驱动器 
grub2> ls 
(2)对于一个含有三个分区的 dos 分区表 /dev/sda, 输出看起来类似于: 
(hd0) (hd0, msdos3) (hd0, msdos3) (hd0, msdos3) 
对于一个含有四个gpt分区表的/dev/sda,输出看起来类似于: 
(hd0) (hd0, gpt4) (hd0, gpt3) (hd0, gpt2) (hd0, gpt1) 
(4)通过这些信息就可以在驱动器的每个分区探测并定位您的vmlinuz和initramfs文件了,通过ls命令列出文件,进行判断

(5)有了vmlinuz和initramfs的全路径就可以启动系统了: 
(5.a)声明根分区:grub> set root=(hd0, 3) 
(5.b)声明您想使用的内核:grub> linux (hd0, 1)/vmlinuz-3.0.1.fc6.i686 root=/dev/sda3 rhgh quiet selinux=0 #看自己机器情况修改内容 
(5.c)声明要使用的initrd:grub> initrd (hd0, 1)/initramfs-3.0.1.fc16.i686.img 
(5.d)通知 GRUB 2启动所选文件:grub > boot

(6)启动后打开终端,执行grub2-mkconfig命令来重建grub2 启动系统所需要的grub.cfg 
grub2-mkconfig -o /boot/grub2/grub.cfg

grub2修复MBR

如果操作不当导致机器的MBR(Master Boot Record主引导记录,硬盘的0柱面,0磁头,1扇区称为主引导扇区。其中446字节是bootloader,64Byte为分区表,剩下2字节为magic number)错误,可以使用grub2进行修复。 
    如果出现MBR被破坏的情况,将无法通过bootloader进入grub2命令行。此时需要使用光盘或者U盘进入修复模式。在修复模式下,使用grub2-install命令重建bootloader,如何进入修复模式

  1. #grub2-install root-directory=/mnt/sysimage/boot /dev/sda #重做MBR
  2. #sync #将MBR写入硬盘
  3. #reboot

参考: 
GRUB 2/zh-cn 
centos7 修复MBR和GRUB

关于GRUB2的更多相关文章

  1. 【转】将grub2安装到u盘的方法

    将grub2安装到u盘的方法 时间:2015-03-21来源:linux网站 作者:linux人 grub2在各大linux发行版中广泛采用,它非常强大,基本上大多数操作系统都是通过它引导起来的,它的 ...

  2. [转载]用 grub2 启动 clover.iso 来启动 OS X

    这个帖子只用来解决特定问题,是楼主这两天辛苦的结晶,如果你遇到了跟我差不多的情形,你就可以尝试这个解决方案. 特定情景:1.不管你的机器支不支持 UEFI ,反正你现在是用传统 BISO + MBR ...

  3. rhel 7.0, windows10双系统grub2设置

    因为在win10基础上装了rhel7,但是启动时却没有win10的启动项,下面的方法解决此问题. $ su #root登录 $ cd /boot/grub2 1. 简单执行grub2-mkconfig ...

  4. 安装windows后重新修复grub2的引导

    前段时间,我的用的双系统windows8.1 + fedora 21 workstation,使用grub2引导fedora和windows8.1的启动.由于一些原因,导致我的windows8.1无法 ...

  5. 理解GRUB2工作原理及配置选项与方法

    GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的.GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时 ...

  6. grub2的使用

    1,添加win 启动项 edit file: /boot/grub2/grub.cfg 插入这几行: menuentry 'Windows XXX' { set root=(hd0,) chainlo ...

  7. Hello world!让 grub2 引导自己的操作系统 Xos 内核

    按照惯例,Xos 的第一步是在屏幕上打印 Hello world!第一步是神奇的一步,如果读者对 PC 不了解,将很难得到头绪. PC 开机后,CS 和 IP 被初始化为 CS=0xFFFFh,IP= ...

  8. grub2

    手工启动 set  root(hd0,msdos7) linux  /boot/vmlinuz-3.9.8-300.fc19.i686.PAE  root=/dev/sda7 initrd  /boo ...

  9. 修复Debian(Ubuntu)Grub2 引导

    重装win7, 之前的系统debian 的引导就没有了. 而debian 的盘似乎没有ubuntu的livecd模式,于是用ultraISO将ubuntu的ios文件写入到u盘中. boot时选择启动 ...

随机推荐

  1. iOS开发:http中的get和post请求

    什么是 HTTP ? 超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信. HTTP 的工作方式是客户端与服务器之间的请求-应答协议. web 浏览器可能是客户端,而计算机上的网络应用 ...

  2. 对jquery分页的升级

    以前写的分页用了好久了,但是分页时除了传页面外有时还要传一些其它参数,以前操作时要把传的参数放到隐藏hidden中,分页时在取出来,这样比较麻烦,今天无事,重新包装了一下 直接上代码吧 css用了bo ...

  3. 夺命雷公狗-----React---16--事件操作事件

    <!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...

  4. CentOS7安装MariaDB10.1.14

    1.下载MariaDB 下载地址:https://downloads.mariadb.org/mariadb/10.1.14/ 这里选择mariadb-10.1.14-linux-x86_64.tar ...

  5. MVC 中301永久重定向

    public class PermanentRedirectResult : ViewResult { public string Url { get; set; } public Permanent ...

  6. YbSoftwareFactory 代码生成插件【十七】:先进的权限模型体系设计

    目前权限管理系统不少,但通用.灵活.符合现代企事业单位实际工作需要的不多.现有的权限系统绝大多数都是以模块为核心,而本权限模型将摒弃此类普遍的做法,将以组织机构为核心来进行权限系统的设计,因为这更符合 ...

  7. ASP.NET 发布到IIS后支撑woff 的解决方案

    <system.webServer>    <staticContent>        <remove fileExtension=".woff" ...

  8. Java 把 InputStream 转换成 String 的几种方法

    我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之 ...

  9. 通过GCC编译器编译c语言

    GCC编译C源代码的四个步骤 GCC编译C源代码有四个步骤:预处理---->编译---->汇编---->链接. 可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序 ...

  10. JSP实现 乘法口诀输出

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...