关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
yoohwzy
帖子: 3
注册时间: 2013-07-13 23:26

关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

#1

帖子 yoohwzy » 2013-07-14 15:26

先说明一下本人笔记本的基本情况,华硕N46VZ,主硬盘位为固态硬盘,机械硬盘改至光驱位。固态硬盘两个分区,esp分区和win8分区;机械硬盘3分区,个人数据分区、swap和Ubuntu13.04分区。win8位于hd0,gpt2,ununtu位于hd1,gpt3

我选择的是用U盘安装ubuntu系统,制作启动盘软件用的是Win32 Disk Image,戳此下载


接下来我将所要描述的问题分为4种情况:


1、Windows Boot Manager为默认启动项时,开机,能够正常进入Win8。


2、Ubuntu为默认启动项,不插入安装时所用的U盘。
开机,不能启动,并且出现如下提示:

代码: 全选

error: no such device :UUID<br />grub rescue>
键入ls命令后出现

代码: 全选

(hd0) (hd0,gpt2) (hd0,gpt1)
很显然,在这种情况下,只识别出了一块固态硬盘,ubuntu并没有装在这个硬盘上,理所当然的就不能启动。


3、Ubuntu为默认启动项,插入安装时所用的U盘。
开机,能够启动并正常进入Grub界面,按C键进入command-line,键入ls出现

代码: 全选

(hd0) (hd1) (hd1,gpt2) (hd1,gpt1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1)
由这行可以读出,电脑识别出了U盘,并且把U盘作为了hd0,这也就是我不明白的一点,正常情况下U盘应当作为hd2而存在的,这显然是不正常的。


4、任意系统作为默认启动项,不插入U盘,开机后按esc键进入选择启动设备的界面(如下图)
图片
选择ubuntu为启动系统后进入grub菜单,然后进入command-line,键入ls出现

代码: 全选

(hd0) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1)
由此可知,这次的硬盘识别正确。


PS:无论何种情况,只要能进入grub菜单,便能正常启动ubuntu和Windows boot manager。


说明一下,我尝试解决问题的几种方法。看到error: no such device :想到是grub文件中的uuid错误,但是我检查了gru.cfg,并没有问题。接下来开始Google这个问题,随之查看Gun grub网站,并没有找到相应问题能够解决问题的方法。在本论坛的置顶帖中找到了一份中文的grub2说明文档,文档中有

代码: 全选

Error::no such device:3c7c1d30-86c7-4ea3-ac16-30d6b0371b02<br /> Failed to boot default entries.<br />Press any key to continue. 
虽然情况不一样,死马当作活马医,按照文中修改后,依旧不行。仔细阅读文档,找到了修改/etc/default/grub文件,设置grub不使用UUID的方法,依旧未果。

代码: 全选

#Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux<br />#GRUB_DISABLE_LINUX_UUID=true<br />设置grub命令是否使用UUID,去掉#,使用root=/dev/sdax而不用root=UUDI=xxx
继续Google,在YouTube上找到一个小男孩做的视频,戳此处看,需要翻墙。按照视频中的方法启动pe,用bootrec.exe/FixBoot修复boot,依旧不行。


鉴于ubuntu是基于debian的,用Win32 Disk Image写入debian 7.1.0映像,安装,依旧是这种情况。不过debian是grub 1.99,ubuntu 13.04的是grub 2.00.


这个问题我搞了两天了,众多网站跑了个遍,各大发行版中英wiki翻看了许多,头都大了,无果,遂来求助。大神们帮帮忙。



为了验证是否由于grub2本身的问题引起的,今天又在电脑上安装了arch,在安装阶段手动配置grub,并没有出现这个问题。看来还是配置文件惹出的事
上次由 yoohwzy 在 2013-07-15 12:08,总共编辑 2 次。
jusss
帖子: 19
注册时间: 2013-07-14 17:06
系统: xxoo

Re: 关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

#2

帖子 jusss » 2013-07-14 17:18

efi就是个悲剧,跟nv的独显一样,你先看看装的是grub-efi 还是grub-pc,能进rescue说明bootloader能进stage 1,至于进不了后面的stage 1.5看grub.cfg写的root所在分区对吗,还有/boot/grub/有没有*.mod之类的
yoohwzy
帖子: 3
注册时间: 2013-07-13 23:26

Re: 关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

#3

帖子 yoohwzy » 2013-07-14 17:55

jusss 写了:efi就是个悲剧,跟nv的独显一样,你先看看装的是grub-efi 还是grub-pc,能进rescue说明bootloader能进stage 1,至于进不了后面的stage 1.5看grub.cfg写的root所在分区对吗,还有/boot/grub/有没有*.mod之类的
装的是grub-efi,grub.cfg所写的root分区也对。
uefi这种东西,本来就是新生事物(其实也不新了),BIOS注定是要被淘汰的。
lisheng
帖子: 80
注册时间: 2005-10-27 23:16

Re: 关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

#4

帖子 lisheng » 2014-05-30 17:10

我用双硬盘(一个Ubuntu 14.04, 一个GHost的Win7),折腾了两天,终于搞掂了。我的问题是在GRUB进入Win7的菜单项,就报告no such device, 查了很多资料,以为是配置错误,改了很多次Grub,都不行。最后看了本文的指引,在GRUB用C进入命令行ls一看,发现GRUB阶段只找到了一块硬盘,因为我在BIOS中设置了启动顺序中只设置了装linux的硬盘启动,其它的全部disable了。赶紧将Windows的硬盘加入到第二启动设备中,重启,OK。

由于我的配置比较特殊,linux是一片miniPCI的SSD,win7的硬盘是IDE转SATA的,装在第一个SATA接口,主板是梅捷的SY-IVB1037-M,8G内存。开始怀疑了n多对象,将Win7的boot也用大白菜装机盘中的工具写了好几次,Linux也重装了2次,GRUB重装、配置了好多次。网上有人说GRUB要在第一块盘上,经过这次证明其实是不用的。

以下这篇文章很详细:

http://blog.chinaunix.net/uid-15007890-id-3056369.html
userjia
帖子: 1
注册时间: 2018-07-07 21:15
系统: opensuse

Re: 关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

#5

帖子 userjia » 2018-07-07 21:16

suse的grub2可以自动探测windows并写入cfg文件
问题是boot的时候报错:找不到hd1,1,也就是发现不了另外一块硬盘,和楼上同一个问题
一开始尝试关闭EFI secure boot,无果
直到我发现BIOS设置中有一个fast boot的选项
。。。。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: 关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!

#6

帖子 poloshiao » 2018-07-08 9:09

问题是boot的时候报错:找不到hd1,1,也就是发现不了另外一块硬盘,和楼上同一个问题
一开始尝试关闭EFI secure boot,无果
直到我发现BIOS设置中有一个fast boot的选项
多重開機安裝 最好記得 關機時 把所有關機後 還耗用電源的裝置 全部關閉 才不會影響 後續重開機 啟動另一個作樂系統時 開機失敗
例如 休眠, fast boot, 網卡喚醒, ..., 等等
回复