关于Grub2在UEFI+GPT+双硬盘环境下所遇到的error: no such device的求助和探讨!
发表于 : 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盘。
开机,不能启动,并且出现如下提示:
键入ls命令后出现
很显然,在这种情况下,只识别出了一块固态硬盘,ubuntu并没有装在这个硬盘上,理所当然的就不能启动。
3、Ubuntu为默认启动项,插入安装时所用的U盘。
开机,能够启动并正常进入Grub界面,按C键进入command-line,键入ls出现
由这行可以读出,电脑识别出了U盘,并且把U盘作为了hd0,这也就是我不明白的一点,正常情况下U盘应当作为hd2而存在的,这显然是不正常的。
4、任意系统作为默认启动项,不插入U盘,开机后按esc键进入选择启动设备的界面(如下图)

选择ubuntu为启动系统后进入grub菜单,然后进入command-line,键入ls出现
由此可知,这次的硬盘识别正确。
PS:无论何种情况,只要能进入grub菜单,便能正常启动ubuntu和Windows boot manager。
说明一下,我尝试解决问题的几种方法。看到error: no such device :想到是grub文件中的uuid错误,但是我检查了gru.cfg,并没有问题。接下来开始Google这个问题,随之查看Gun grub网站,并没有找到相应问题能够解决问题的方法。在本论坛的置顶帖中找到了一份中文的grub2说明文档,文档中有
虽然情况不一样,死马当作活马医,按照文中修改后,依旧不行。仔细阅读文档,找到了修改/etc/default/grub文件,设置grub不使用UUID的方法,依旧未果。
继续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,并没有出现这个问题。看来还是配置文件惹出的事
我选择的是用U盘安装ubuntu系统,制作启动盘软件用的是Win32 Disk Image,戳此下载
接下来我将所要描述的问题分为4种情况:
1、Windows Boot Manager为默认启动项时,开机,能够正常进入Win8。
2、Ubuntu为默认启动项,不插入安装时所用的U盘。
开机,不能启动,并且出现如下提示:
代码: 全选
error: no such device :UUID<br />grub rescue>
代码: 全选
(hd0) (hd0,gpt2) (hd0,gpt1)
3、Ubuntu为默认启动项,插入安装时所用的U盘。
开机,能够启动并正常进入Grub界面,按C键进入command-line,键入ls出现
代码: 全选
(hd0) (hd1) (hd1,gpt2) (hd1,gpt1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1)
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.
代码: 全选
#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
鉴于ubuntu是基于debian的,用Win32 Disk Image写入debian 7.1.0映像,安装,依旧是这种情况。不过debian是grub 1.99,ubuntu 13.04的是grub 2.00.
这个问题我搞了两天了,众多网站跑了个遍,各大发行版中英wiki翻看了许多,头都大了,无果,遂来求助。大神们帮帮忙。
为了验证是否由于grub2本身的问题引起的,今天又在电脑上安装了arch,在安装阶段手动配置grub,并没有出现这个问题。看来还是配置文件惹出的事