安装GRUB时,无法将其安装在/dev/sda上。

我最近购买了一台闪亮的联想Yoga 2 Pro笔记本电脑,我想要将其与Ubuntu双启动,以便进行学习。它内置的操作系统是Windows 8.1,并且配备了256GB的固态硬盘。
我已经为Ubuntu单独创建了一个90GB的分区,并制作了一个Live USB来安装它。
第一次安装时一切似乎都很顺利,我通过禁用ideapad_laptop解决了无线网络问题,安装也进行得很顺利,Ubuntu也正常工作。
第二天早上我打开笔记本电脑时,它立即启动到Windows,从未显示GRUB菜单。所以我尝试重置,并使用磁盘管理器检查了我的分区,一切看起来都没问题。由于在网上找不到解决办法,我决定格式化分区并尝试重新安装。但是自那以后每次安装都会中止,并出现致命错误提示:
Unable to install GRUB in /dev/sda
Executing `grub-install /dev/sda` failed.
This is a fatal error.

请问有人能提供解决这个问题的建议吗? 如果需要更多信息,我很乐意提供。 谢谢。
安装时,我得到了以下详细信息:
ubuntu kernel: [ 1946.372741] FAT-fs (sda2): error, fat_get_cluster: invalid cluster chain (i_pos 0).
ubuntu grub-installer: error: Running 'grub-install --force failed.

可能是Ubuntu on Lenovo Yoga 2 Pro的重复问题。 - rubo77
1除了下面的答案之外,最终让 grub 分区正确安装的方法是,在手动格式化分区时,创建一个以 UEFI 格式化的分区,并将其选为 grub 的目标。我在其他方面都按照 这个答案 上的说明进行操作。 - Milo P
我在HP ProBook x360上解决了这个问题,使用以下命令: sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair && boot-repair - user1095332
13个回答

我刚刚遇到了一个问题,我试图从一个USB闪存盘安装Ubuntu 14.04到一个硬盘上。

问题是USB闪存盘是/dev/sda,要安装的硬盘是/dev/sdb

即使安装程序知道要安装到/dev/sdb,但它还是尝试将grub安装到/dev/sda的MBR上,结果失败。解决方法是返回菜单,重新尝试,对于自动安装到第一个硬盘的MBR,选择NO,然后手动告诉它/dev/sdb

然后一切正常工作。


你能解释一下你所说的“USB闪存驱动器是dev/sda”是什么意思吗? - CodyBugstein
2不同的驱动器可以挂载到任何/dev/sd?目录下。闪存驱动器有可能被挂载在/dev/sda下。 - Brian Sizemore
不要忘记"/dev/"部分,所以应该是精确的"/dev/sdb",而不仅仅是"sdb"。 - Max Malysh
12你是如何手动告诉它/dev/sdb的? - AaA
2AaA说的是,你是如何做到的? - Hobbamok
我在使用netboot(ubuntu minimal / server)光盘安装后遇到了这个问题。 - mchid
1@Hobbamok 我刚刚运行了 sudo grub-install /dev/sdb - mchid

我终于搞定了,不确定以下哪一步起了作用,但是我做了以下操作:
  1. 在BIOS中禁用了联想快速启动。
  2. 在BIOS中禁用了安全启动。
  3. 从Live USB启动。
  4. 在引导菜单中,在尝试Ubuntu配置文本的quiet splash之前添加了backlight=vendor
  5. 选择了尝试Ubuntu
  6. 在终端中运行sudo rmmod ideapad_laptop以启用wifi。
  7. 运行安装程序并选择在安装过程中安装更新。
  8. EFI分区被自动选择,所以我为交换空间分配了9700MB,为Ubuntu分配了80GB。
  9. 安装完成后,在/etc/default/grub中的quiet splash之前添加了backlight=vendor,然后运行sudo update-grub
  10. ideapad_laptop列入黑名单以启用wifi。
  11. 到目前为止一切正常。感谢大家的帮助!

我在安装Ubuntu 20.04时遇到了相同的错误。结果发现在安装过程中,我创建了“逻辑”分区而不是“主”分区,用于我的EFI和根分区。我重新运行了安装程序,这次将两个分区都配置为“主”分区,这次错误消失了。

相同,尽管没有逻辑选项。我选择了“在19.04之上安装”。 - Turtles Are Cute
1如果您在安装过程中选择“做其他事情”(或类似的选项),而不是“在19.04上进行安装”,您将进入一个屏幕,可以配置您的分区。在这里,您可以删除当前用于19.04的分区,并创建一个新的根分区。我还需要创建一个EFI分区(我使用了256MB)。 - Erik van den Hoorn
谢谢,那个有效。 - Turtles Are Cute

我遇到了类似的问题。我所做的是保持安装状态不变,然后确保我的驱动器处于UEFI模式,并从Live CD启动并安装了boot-repair。
为了做到这一点,我需要添加yannubuntu存储库,然后使用apt-get下载它。具体操作如下:
sudo apt-add-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
boot-repair

然后,当程序启动时,我在“高级选项>主要选项”中检查了所有选项,并点击了“应用”。

1安装Ubuntu 20,这里列出的第一个命令会显示“无法添加PPA:'ppa:yannubuntu/ubuntu/boot-repair'。错误:'yannubuntu'用户或团队不存在。” - Curtis

我在新建的电脑上安装Ubuntu时遇到了这个问题(非双系统)。上述提到的任何启动选项都对我无效。
为了让Ubuntu只识别1T硬盘进行安装,我不得不断开SSD和所有USB设备。

这对我在双启动系统上有效。解释不多,但就解决方案而言,你的方法对我很有效且非常简单。 - Kjeld Schmidt

我没有联想Yoga,但是我的台式电脑出现了相同的问题。 它有SSD和HDD驱动器,列在这样的方式下:
SATA#1 HDD /dev/sda
SATA#2 SSD /dev/sdb

一如既往,我正在尝试将操作系统安装在我的固态硬盘上。安装程序正在将Ubuntu(或Linux Mint)安装在/dev/sdb上,但随后又试图将GRUB安装在/dev/sda上。这是一个问题。
解决方案是交换SATA连接,就像这样:
SATA#1 SSD /dev/sda
SATA#2 HDD /dev/sdb

  1. 检查安装介质是否损坏
  2. 检查BIOS并禁用安全引导
  3. 禁用联想快速引导

我假设您正在以UEFI模式进行安装,因此可能需要在BIOS中解锁系统锁定。如果以上都不起作用,我会认为问题出在双启动上。我自己正在Y2P上运行Ubuntu,没有任何问题。

至于黑名单ideapad_laptop模块,您可以查看github.com/pfps/yoga-laptop,那里有一些特定于Y2P的驱动程序。尽管还在开发中。


谢谢你的回复。你说的解锁BIOS中的系统锁是什么意思? - vicban3d

在安装带有SCSI RAID的Poweredge时遇到了这个问题。我发现在安装GRUB之前拔掉USB驱动器就解决了这个问题。

尝试这样做导致安装程序崩溃。 - B T

我有同样的笔记本电脑,对我来说一切都正常工作 - 但是我将grub引导加载程序安装到已经存在的EFI分区中,该分区的名称末尾带有索引2 - 当然,并不是默认选择的sda分区。(所以我选择了我的分区进行安装,上下都有更改grub安装分区的可能性。) 我使用SD卡进行安装,并以UEFI模式启动它,因为Windows 8.1也是以这种方式预装的。(如果我表达得不对,请原谅,但我只是在三天前安装Ubuntu 14.04之前在不同的论坛上阅读了这些内容。) 无论如何,如果按照这种方式操作,一切都正常工作。以UEFI模式启动安装介质,选择用于安装的空闲分区,在现有的EFI分区中安装grub。
哦,还有,我实际上并没有在BIOS中做任何更改,我之前已经禁用了快速启动,并保持了这种状态。它自动更改了其他一些设置,如果你想知道的话,我可以再查一下。

这个问题发生在我试图给我的非常老旧的惠普Pavilion dm4带来新生时。它说无法安装grub,而且所有的按钮都没有反应。我吓坏了,在安装过程中强制关机。幸运的是,我能够再次从U盘启动。后来我发现,U盘被拉出了一点点,导致安装程序出现问题。对我来说,解决方法非常简单。