当我尝试安装 Ubuntu 作为计算机的唯一操作系统时,收到错误“grub-install /dev/sda failed”。

当我尝试安装 Ubuntu 作为计算机的唯一操作系统时,收到错误“grub-install /dev/sda failed”。

我正在尝试在以前运行 Windows 7 的机器上安装 Ubuntu。

我也遇到过可怕的“无法安装 GRUB”错误。

我没有尝试双重启动。我之前曾运行过 Windows 启动盘并删除了所有现有分区。

如果我运行 Ubuntu 12.04 安装 CD 并在配置屏幕后单击“安装”,我会收到错误 Executing 'grub-install /dev/sda' failed. This is a fatal error.
(这是与此问题相同的错误:无法安装 GRUB

我在寻找解决方案时读到的所有问题都与双启动有关。我对双启动不感兴趣,我想要一个全新的 Ubuntu 安装。我该如何实现这一点?

(为了我的理智,请在回复时使用非常简单的说明。我并不声称自己在 Linux 或系统管理员方面有任何天赋)


从 2012-05-29 ~15:19Z 的评论中复制的附加详细信息

从 CD 启动后,单击Try Ubuntu,然后sudo fdisk /dev/sda我得到
fdisk: unable to seek on /dev/sda: Invalid argument

sudo fdisk /dev/sdb给出

Device contains neither a valid DOS partiion table, nor Sun, SGI or OSF disklabel. 
Building a new DOS disklabel with disk identifier 0x15228d1d. 
Changes will remain in memory only until you decide to write them. 
After that of course, the previous content won't be recoverable. 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite). 
Command (m for help):

我应该补充一下,Live CD 桌面的图形效果很差。我缺少部分程序,而且终端偶尔会反射到屏幕底部。但我无法想象这与此有关。

答案1

我遇到过同样的问题。

解决此问题,首先点击“尝试 Ubuntu”按钮,然后“安装 Ubuntu”桌面快捷方式。

答案2

我认为它可能弄乱了您的硬盘名称。请尝试重新安装 GRUB。

  1. 使用 Ubuntu 的实时 CD 启动。

  2. 打开终端并运行命令

    sudo fdisk -l
    

    它列出了硬盘的完整分区表。在其中,确定您已在哪个分区上安装了 Linux。您可以使用为其分配的驱动器大小来识别它,并查看输出的最后一列,该列将“扩展”为所有 Linux 分区。分区很可能是这样的/dev/sda5或类似的东西。记住这个分区。

  3. 在您的主目录中创建一个临时文件夹(注意:您可以在任何位置创建临时文件夹。我使用主文件夹只是为了说明)。我现在将其称为“temp”。因此,该“temp”文件夹的路径将是 /home/ubuntu/temp。

  4. 将您的 Linux 分区挂载到那里。也就是说,假设您发现您的 Linux 分区是/dev/sda5,您可以通过执行以下命令将其挂载到“temp”文件夹

    sudo mount /dev/sda5 /home/ubuntu/temp
    
  5. 如果您想检查是否已安装正确的分区,请转到您的主文件夹并打开 temp。您将进入目录/。在那里您将找到“home”,您的主文件夹的名称将在那里。一旦您确认您已安装正确的分区,请执行步骤 6。

  6. 您必须通过一开始就向系统显示从硬盘读取数据的位置来安装 grub。不用担心,只需运行以下命令

    sudo grub-install --root-directory=/home/ubuntu/temp /dev/sda
    

    对应/dev/sda于您的硬盘名称。将其替换为命令sudo fdisk -l显示的任何内容。

  7. 您已完成。您可以重新启动系统。

答案3

我从您对 @harisibrahimkv 的评论中了解到,当您在终端窗口中运行命令时sudo fdisk /dev/sda,您会收到消息fdisk: unable to seek on /dev/sda: Invalid argument。我没想到会看到这个,这让我怀疑您的计算机硬盘是否有问题。

您能否发布更多有关硬件的信息?您可以通过Try Ubuntu使用安装 CD 启动,然后将以下两个命令的输出添加到您的问题中来做到这一点。

sudo lshw -short
sudo lshw -class disk -class storage

笔记:
您可以使用鼠标左键在终端窗口中选择文本,或者在终端窗口处于活动状态时按Alt+并使用终端 菜单中的条目。ESelect AllEdit

选择文本后,键盘快捷键 ShiftCtrl+CCopy终端窗口菜单中的条目Edit将复制到剪贴板。

然后,您可以使用 LiveCD 的 Firefox 浏览器对其进行编辑,然后将命令输出粘贴到浏览器中问题的编辑窗口中,将其添加到您的问题中。

常见问题解答中的屏幕截图,显示编辑链接

请这样做不是使用注释来添加命令的输出。注释不宜用于此目的。

如果您遇到图形问题,那么我建议您首先验证您的安装介质(CD)是否正常。您可以通过Check disc for defectsUbuntu CD 高级欢迎页面选项

要显示此菜单,请在启动安装 CD 后按任意键,同时 Ubuntu“小徽标Ubuntu Live CD/USB“小徽标”将显示在屏幕底部。

如果你的安装 CD 有效,因此不是如果您无法找到图形错误的根源,则可能需要尝试使用 Ubuntu 备用安装 CD 进行安装。备用安装 CD 是不是A ”活CD“。它执行基于文本的安装,从而避免了图形驱动程序的潜在问题。它还包含标准 LiveCD 中缺少的一些硬件驱动程序。

您可以从Ubuntu 12.04 LTS 发布页面。如果你的硬件比较旧,那么你可能想使用 32 位版本,Ubuntu-12.04-备用-i386.iso

答案4

这听起来可能有点傻,但如果你有一个 mdadm 阵列,分区可能会变得混乱。由于 mdadm 阵列的运行,尽管安装成功,你的分区表仍将是空的(内核本身知道分区,但 grub 不知道该做什么)。

我知道这一点是因为我打破了 shell 并且 chroot 到 /target 并且运行了 grub-install 并且它提到了有关丢失磁盘的信息(fdisk -l /dev/sda 显示一个空的分区表!)。

重新安装或重新创建正确的分区表将使 grub-install /dev/sda 成功。

相关内容