300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux_ubuntuwindows双系统grub引导修复

Linux_ubuntuwindows双系统grub引导修复

时间:2019-10-25 18:37:47

相关推荐

Linux_ubuntuwindows双系统grub引导修复

Ubuntu & windows双系统引导修复(狭义)

关键词:ubuntu; linux; windows; 双系统; 双系统引导; 引导修复; 双系统引导修复;

开篇扯淡:

为什么写这篇教程?

因为前几天重装笔记本里面的windows系统后导致grub引导崩溃,还有一些其他问题。

结果当时最惨的时候ubuntu/windows8.1两个系统全部进不去,grub rescue

模式下各个区也都试了一遍,还是不行。而且网上的资料多为重复转载,不能针对性地解决问题。后来终于修好后决定自己写一篇教程,既帮助遇到相同问题的童鞋,同时也作为自己的备忘。当然还是练习markdown语法。不断尝试,不断练习。

为什么起名为“狭义”?

因为这篇教程有以下几点针对性的限制条件;不能作为广谱抗生素,只能对付特定的病菌:

0. 重装windows后不能进入linux系统不明原因双系统的引导全部崩溃(一个系统也进不去,开机直接进入grub rescue模式)

1. 使用grub引导ubuntu/windows双系统。

2. 需要读者至少有能力制作usb启动盘,并且会(不会就百度)一些PE系统的简单操作。

3. 知道自己的双系统都安装在哪个区,可以在live ubuntu中使用sudo fdisk -l命令查看(如作者的ubuntu14.04安装在/sda5,windows 8.1安装在/sda6)。

4. 硬盘模式为mbr亲测可行,UEFI模式下作者没有尝试。

5. (Copyright © /s_gy_zetrov. All Rights Reserved)

准备工作?

一个PE启动盘(作者使用的模式是老电脑模式)一个ubuntu启动盘(14.04_i386是作者使用的版本)

一、针对无法进入linux系统,即windows系统引导没有崩溃时的问题

这个问题的解决只需要ubuntu启动盘。首先开机进入U盘中的ubuntu系统,选择合适的语言(中文\英文…),接下来选择试用ubuntu选项,进入桌面。在桌面任意空白处按CTRL+ALT+T唤出终端输入sudo su回车,获取ROOT权限。输入mkdir /media/temp回车,用于在/media中创建一个文件夹/temp接着输入mount /dev/sda5 /media/temp回车,用于在/media/temp中挂载你原本计算机上的ubuntu系统分区(注意!!!/sda5是作者ubuntu的分区号,不要照抄!!)最后输入grub-install --root-directory=/media/temp /dev/sda回车,等待出现Installation finished.No error reported.提示信息后,关闭终端关闭临时系统,拔出U盘,重新开机,可以看到熟悉的grub界面又出现了!

(图片在自网络)等等!windows引导又崩了!没有windows选项!别担心,先进入你的ubuntu系统。唤出终端,输入sudo update-grub回车。看!是不是出现Found Windows 8 (loader) on /dev/sda6啦。保险起见重启计算机,在grub内选择windows选项,看能否正常引导。

修好了!enjoy!

二、针对双系统引导均崩溃开机直接进入grub rescue模式或第一个针对中使用grub进入windows系统后引导仍不成功且黑屏光标一直闪烁的问题

首先解决第二个针对的前半部分问题

双系统引导均崩溃开机直接进入grub rescue模式

首先进入U盘中PE系统,点击“win引导修复”,选择适合自己电脑硬盘分区的修复方案后,点击开始修复。

(图片来自网络)关机退出PE系统,拔出U盘,重启电脑,我们发现起码windows系统已经可以成功引导了!这是个好事,因为这样接下来的步骤就与我们前面的第一个针对相同了!实施第一个针对的7个步骤,OK了!enjoy!

现在解决第二个针对的后半部分问题

第一个针对中使用grub进入windows系统后引导仍不成功且黑屏光标一直闪烁(Copyright © /s_gy_zetrov. All Rights Reserved)

如果有童鞋跟作者一样不走运的话,会遇到即使update-grub成功识别了你分区中的windows loader而且重启计算机后在grub列表里也确实有windows选项,但点进去后仍然不

会引导windows系统,而只是黑屏一个光标不停地闪。这就很尴尬了。。。但同志们不要怕!作者已经帮你们趟出一条路了!那就是:修改grub.cfg!(围观群众毫不吃惊脸…)作者猜想,可能经过PE的修复,grub已经可以识别出windows的引导器了,然而由于是人工修复的windows引导,所有默认生成的grub.cfg中的代码并不能使grub准确找到windows loader,所以当我们选中grub列表中的windows选项后才仍然不能引导系统。我们只需进入已经可以引导的ubuntu系统,唤出终端,输入

sudo su回车,获取ROOT权限。之后输入gedit /boot/grub/grub.cfg回车,以打开grub.cfg。作者用的是gedit编辑器,如果读者平时都是用vim那么就输入vim /boot/grub/grub.cfg,使用什么编辑器都可以,然后我们找到cfg文件中关于windows的部分,作者的看起来像这样:

menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' {

insmod part-msdos

insmod ntfs

set root='hd0,msdos6'

if [ x$feature_platform_search_hint = xy ]; then

search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 9C28EFB228EF899A

else

search --no-floppy --fs-uuid --set=root 9C28EFB228EF899A

fi

parttool ${root} hidden-

drivemap -s (hd0) ${root}

chainloader +1

}

这一大坨是个什么玩意?反正这么写引导不了,那就改!

好在grub是个十分强大的工具,最后作者决定使用search命令修改以上片段。

如下:

menuentry 'Windows 8 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-9C28EFB228EF899A' {

insmod ntfs

insmod ntldr

set root='hd0,msdos6'

search --set -f /bootmgr

ntldr /bootmgr

}

写完大概就是这个样子:

图中高亮部分。

注意!!!set root='hd0,msdos6'中的6是因为作者的windows安装在/sda6中,不要照抄!!CTRL+S保存后退出即可。

6. 重启计算机,这时我们可以发现grub中的windows选项点击后可以成功引导了!

(Copyright © /s_gy_zetrov. All Rights Reserved)

反正当时作者看到熟悉的田字格后差点流出了激动的眼泪…

7. 好了,一切恢复!enjoy!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。