Fedora23 引导修复

原创 2015年11月18日 16:59:40

原文:http://www.aqcoder.com/blog/detail/id/5ab714b0-8dd2-11e5-b7ab-2a06cd74bd52/
作者:aqcoder

概述

这两天觉得 D 盘不够用了,就用分区助手扩张了下 D 容量,不知道什么原因,Fedora 引导失败了(我是双硬盘双系统,还好 win7 能用)。在 3 天间断的各种折腾下终于搞清楚了 grub2 的基本知识。下面做个记录,希望对和我有相同情况的同学有所帮助。

系统 & 硬盘

这里还是先介绍下我的系统分布,因为后面一些命令和硬盘及系统所在分区有关,命令根据自己的情况调整。
我的机器是双硬盘双系统,win7 在 ssd 上共一个分区, fedora 在机械硬盘上第二个分区,第一个分区为 /boot 引导分区。其他 D、E、F。

[aquarius@localhost-localdomain ~]$ ll /dev/ | grep sd
brw-rw----. 1 root     disk      8,   0 Nov 17 23:02 sda     // ssd
brw-rw----. 1 root     disk      8,   1 Nov 17 23:02 sda1
brw-rw----. 1 root     disk      8,  16 Nov 17 23:02 sdb     
brw-rw----. 1 root     disk      8,  17 Nov 17 23:02 sdb1    // boot 分区
brw-rw----. 1 root     disk      8,  18 Nov 17 23:02 sdb2    // linux 分区
brw-rw----. 1 root     disk      8,  19 Nov 17 23:02 sdb3
brw-rw----. 1 root     disk      8,  21 Nov 17 23:02 sdb5    // D
brw-rw----. 1 root     disk      8,  22 Nov 17 23:02 sdb6    // E
brw-rw----. 1 root     disk      8,  23 Nov 17 23:02 sdb7    // F

手动引导

首先介绍一种手动引导方法,此方法可以引导进入 Linux,但是进入后不做任何操作的话在重启还是会引导错误。

error: unkown file system.
Entering rescue mode...
grub rescue>

以上就是我的引导错误界面(我就不截图了,因为已经修复好了。。。),错误信息为未知的文件系统。我们可以输入命令 set 来看下:

error: unkown file system.
Entering rescue mode...
grub rescue>set
root=(hd0,msdos2)
prefix=(hd0,msdos2)/grub2

发现 (hd0,msdos2) 这个分区是我的 linux 分区(LVM文件系统),而非我的 boot 分区(ext4 文件系统),所以它才会识别不出文件系统。

知道原因就好办了:

error: unkown file system.
Entering rescue mode...
grub rescue>set
root=(hd0,msdos2)
prefix=(hd0,msdos2)/grub2
grub rescue>
grub rescue>set root=(hd0,msdos1)   // 输入这两行命令
grub rescue>set prefix=(hd0,msdos1)/grub2

输入以上两行命令指定 root 和 prefix。可能有写童鞋不知道自己的 boot 目录在哪。可以用 ls 命令一个一个的尝试。

grub rescue>ls  // 直接 ls 列出所有磁盘及分区
(hd0) (hd0,msdos1) (hd0,msdos2) (hd0,msdos5) (hd0,msdos6) (hd0,msdos7) (hd1) (hd1,msdos1)
grub rescue>ls (hd0, msdos5) // 这个是 windows 的 NTFS 分区,会报错
unkown file system.
grub rescue>ls (hd0,msdos1) // 这个就对了
ext4 file system.
grub rescue>ls (hd0,msdos1)/ // 注意后面多了正斜杠,就是查看目录下的内容
config-4.1.6-100.fc21.x86_64
config-4.1.7-200.fc22.x86_64
config-4.2.5-300.fc23.x86_64
efi
elf-memtest86+-5.01
extlinux
grub2
initramfs-0-rescue-f2bce17deae6475d9e341aba0fd1d20f.img
initramfs-4.1.6-100.fc21.x86_64.img
initramfs-4.1.7-200.fc22.x86_64.img
initramfs-4.2.5-300.fc23.x86_64.img
initramfs-fedup.img
initrd-plymouth.img
lost+found
memtest86+-5.01
System.map-4.1.6-100.fc21.x86_64
System.map-4.1.7-200.fc22.x86_64
System.map-4.2.5-300.fc23.x86_64
vmlinuz-0-rescue-f2bce17deae6475d9e341aba0fd1d20f
vmlinuz-4.1.6-100.fc21.x86_64
vmlinuz-4.1.7-200.fc22.x86_64
vmlinuz-4.2.5-300.fc23.x86_64
vmlinuz-fedup

经过几次尝试,你就可以找到你的 boot 分区了.然后在载入 normal 模块,启动 normal 模块,就进入引导了.

grub rescue>insmod normal
grub rescue>normal

这里有的童鞋可能会报 /boot/grub2/i386-pc/normal.mod not found 错误.那是因为你的系统中没有这个模块.那就改用 LiveCD 修复吧.不过这里可以指定内核引导,我这里就不做介绍了.

引导界面:

引导界面

Linve CD

如果你不能通过上述方法进入系统,还有个必杀技 – Live CD。当然,你需要一个引导 USB。

至于启动 U 盘整么制作,这里就不介绍了,推荐个工具 LinuxLive USB Creator:http://www.linuxliveusb.com/

进入 Live CD 后,选中 live 模式,不是安装的硬盘哦~ 除非你想重装系统。。。

打开终端,执行下列命令(不要把前面的提示符和注释粘进去哦,这个不是小白应该都知道吧):

[live cd ~]$ mount /dev/sdb2 /mnt/           // 挂载 linux 分区
[live cd ~]$ mount /dev/sdb1 /mnt/boot       // 挂载 boot 分区
[live cd ~]$ chroot /mnt/boot                // 注意一定要有这步

修复引导项

注意:此处接的是手动 grub2 recuse 引导或者 live CD 引导,进入系统后的终端操作。

这部分其都是 grub2 的基本概念和用法,想了解全的童鞋可以查 grub2 手册 http://fedoraproject.org/wiki/GRUB_2

执行下列命令:

[live cd ~]$ grub2-install /dev/sdb
[live cd ~]$ grub2-mkconfig -o /boot/grub2/grub.cfg

第一条命令是写入 MBR,所以这步操作一定要谨慎,你必须知道你在干什么,硬盘要选对,我是用机械硬盘引导的,所以我选了 /dev/sdb

只有一颗硬盘且双系统的童鞋要注意了:你确定你是想用 grub2 做为引导。如果你用 winload 作为引导那上面所诉都是错,请马上关闭网页,我在胡说八道。。。

第二套命令是自动生成引导配置,如果你查阅过一些老的资料修改 /boot/grub/menu.lst 这是 grub 的配置, grub2 已经放弃了这种配置,grub2 的配置都有脚本生成。这条命令会读取 /etc/default/grub /etc/grub.d/* 等配置文件及系统环境,自动生成配置,详见手册。

注意:如果你的系统用的是 EFI 配置目录可能在 /boot/efi/EFI/fedora/grub.cfg

重启

重启。。。如果顺利的话,应该就大功告成了。

本文的一些操作是一些基本的引导操作,请确保你知道你在干什么,重要的话要多说几遍,所以本文所述都是错的,错的,错的。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Fedora22修复更新grub2系统引导

我有两块硬盘,分别安装Windows和Linux。 之前先安装的win7 64位,然后安装的Fedora22,开机引导没啥问题,后来感觉系统带不动win7,又重装了个XP,结果就是XP能进了,Fedo...
  • xinlongabc
  • xinlongabc
  • 2015年10月24日 22:50
  • 3207

Fedora23 安装 VMware12 问题

Fedora23&24 VMware12 安装
  • B0rn_T0_W1n
  • B0rn_T0_W1n
  • 2016年01月07日 20:34
  • 1587

fedora23新系统没网时使用以前缓存的rpm包

#!/bin/bash # Sat Aug 13 05:43:38 EDT 2016 # 这个脚本为单一用途设计. 情况是这样的, 我在用fedora23, 我设置了使用 # 163镜象站为yum源...
  • matrixvirus
  • matrixvirus
  • 2016年08月14日 07:06
  • 187

UEFI启动-GPT分区,Windows 7+ 系统引导修复

问题描述由于工作需要或者出于兴趣爱好装了多系统的同学,很可能装上了window+linux。有些情况下,不如比如先装上了linxu然后装行了Windows,重启后发现liux启动菜单不见了。找了个中工...
  • bigjordon
  • bigjordon
  • 2017年01月16日 16:52
  • 1158

双系统Ubuntu 引导修复(Boot Repair)

安装完双系统,如果在使用过程中不小心删除了Ubuntu引导向,则会导致开机后无法选择进入Ubuntu系统。或者当我们重装了windows系统后,也会发现原来的Ubuntu引导不见了,当出现这两种情况之...
  • u012260238
  • u012260238
  • 2016年09月30日 21:26
  • 8255

Vista/server2008引导修复(转载)

 但是,假如我们配置的多重操作系统是两个启动管理器不相同的系统,那么就必须严格 按照“先低后高”的顺序安装,否则高版本的系统将肯定无法启动。例如,当我们配置 Windows Vista/Vista ...
  • wu_qionglei
  • wu_qionglei
  • 2011年05月28日 08:47
  • 2887

Kali Linux GRUB2引导修复

Kali Linux GRUB2引导修复2016-10-27我的Github主页觉得kali的grub主题看着不舒服,我就总要给grub换个主题,因为GRUB2有这个功能嘛。昨天,更新了电脑,发现我的...
  • jerry_sc
  • jerry_sc
  • 2017年07月30日 21:57
  • 503

windows10修复引导

1.启动win10安装盘,选择修复计算机2.选择疑难解答,进入命令行模式3.执行以下命令,查看引导记录,如果发现记录错误或者无法查看,说明引导记录损坏。bcdedit /enum4.依次执行以下命令修...
  • yuanlaijike
  • yuanlaijike
  • 2017年07月06日 22:46
  • 201

Linux_ubuntu&windows双系统grub引导修复

Ubuntu & windows双系统引导修复(狭义) 关键词:ubuntu; linux; windows; 双系统; 双系统引导; 引导修复; 双系统引导修复; 开篇扯淡: 为什么写这篇教程? 因...
  • S_gy_Zetrov
  • S_gy_Zetrov
  • 2016年07月19日 18:48
  • 26492

记一次修复Mac和Win7双系统启动菜单的经历

朋友的Macbook Air上装了mac和win7双系统,使用win7时,觉得只有一个系统分区,存储资料不方便,想有一个干净的分区来做为资料存储盘,遂想起win7的压缩卷功能。      ...
  • yuyan1222
  • yuyan1222
  • 2015年03月20日 14:48
  • 8775
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Fedora23 引导修复
举报原因:
原因补充:

(最多只允许输入30个字)