安装Debian时GRUB和LILO都无法安装到NVMe硬盘


10

我正在尝试在Lenovo Thinkpad上安装64位Debian稳定版。当我进入安装引导加载程序的安装步骤时,收到以下消息:

安装步骤失败。您可以尝试从菜单中再次运行失败的项目,或者跳过它并选择其他内容。失败的步骤是:在硬盘上安装GRUB引导加载程序

返回菜单并选择LILO会给我同样的错误。安装日志说

May  1 13:24:23 main-menu[188]: WARNING **: Configuring 'grub-installer' failed with error code 1
May  1 13:24:23 main-menu[188]: WARNING **: Menu item 'grub-installer' failed.
May  1 13:24:28 main-menu[188]: INFO: Menu item 'lilo-installer' selected
May  1 13:24:28 main-menu[188]: WARNING **: Unable to set title for fdisk-udeb.
May  1 13:24:28 main-menu[188]: WARNING **: Configuring 'lilo-installer' failed with error code 1
May  1 13:24:28 main-menu[188]: WARNING **: Menu item 'lilo-installer' failed.

我没有使用LVM或RAID。到目前为止,我已经尝试过

  1. 禁用UEFI引导并改用旧版引导。GRUB和LILO仍然会发生错误。

  2. 下面就说明了这个问题,并运行

    parted /dev/nvme01
    set 1 bios_grub on
    

    来自TTY2,但出现错误消息parted not found。我的系统上/dev/nvme01是唯一的硬盘

  3. 检查硬件错误。当我第一次购买系统时,我从BIOS内部和Windows内部运行了所有可用的硬件测试,并且通过了所有测试。我假设这意味着硬件没有故障。

  4. 对于这个有类似错误的线程(尽管是LVM),我尝试/boot在开始时使用小分区重做分区,并使用格式化ext2。同样的错误。

  5. 切换到TTY4看安装输出,我也看到错误

    chroot: can't execute 'grub-probe': No such file or directory
    

    搜索有关该线程的信息以及与GRUB相关的错误报告,但是a)这些信息很旧,并且b)到目前为止,我已经完成了十多次安装工作,每次都会收到错误消息,因此这似乎不是一次性的事情。

  6. 我已经用Gparted检查硬盘是否完全空了。

  7. BIOS中禁用了安全启动。

  8. 我已经使用完整的DVD和netinstall CD运行安装了;两者都从USB启动,但问题仍然存在。

在上一个安装步骤中,我能够在驱动器上成功创建一个msdos分区表和三个分区(用于//homeswap),所以我不知道为什么GRUB突然无法写入驱动器。

如何解决此问题并安装Debian?截至目前,(全新!)系统完全无法使用,因为我无法在其上安装操作系统。


问题的部分原因可能是Debian / parted无法正确识别磁盘吗?它说磁盘是512.1 GB,从规格上说是512 GB,这就是事实,这就是事实,这将使我将所有512 GB分配给各个分区。但是,如果我将其加载到Gparted中,则实际磁盘空间将接近476 GB,但我认为这只是通常的1024 vs 1000。

(我还在Debian论坛上发布了该问题的一个版本,因此我将使用该线程中的任何重要内容更新我的问题,反之亦然。)


您是否尝试过在外部驱动器(例如闪存驱动器)上安装GRUB?
McSinyx

我看到您正在使用msdos分区表。GPT是否有效?
2016年

@forquare不,GPT也不起作用。
迈克尔A

@McSinyx我可以在外部驱动器上安装GRUB,只要将外部驱动器识别为/ dev / sdX而不是/ dev / nvmeXXX或/ dev / <其他奇怪的组合>。我的偏好不是仅使用USB驱动器来引导我的计算机,但现在看来,这是我唯一的选择。
迈克尔A

Answers:


13

这是使用Debian jessie(稳定)为我工作的。我基本上从这个Wiki帖子中获取了说明,并删除了有关Windows双重引导的所有步骤,因为这些不适用于我的情况。

  1. 在BIOS中,设置“仅UEFI”启动。

  2. 使用Gparted,使用bootesp标志在磁盘的开头创建FAT32分区。(Debian安装程序也应该能够执行此操作,但是由于安装程序错误地识别了磁盘的大小,因此我更喜欢使用Gparted)。在我的情况下,FAT32分区为/ dev / nvme0n1p1。

  3. 在安装过程中,请确保已配置网络连接(手动或自动,没关系)。否则,下一步将失败。

  4. 在GRUB无法安装的安装阶段,打开一个外壳并运行以下命令:

    mount --bind /dev /target/dev
    mount --bind /dev/pts /target/dev/pts
    mount --bind /proc /target/proc
    mount --bind /sys /target/sys
    cp /etc/resolv.conf /target/etc
    chroot /target /bin/bash
    
    aptitude update
    aptitude install grub-efi-amd64
    update-grub
    grub-install --target=x86_64-efi /dev/nvme0n1
    

    退出外壳,然后选择“继续而不安装引导加载程序”。您会看到一条警告消息,该消息使您可以使用引导命令。您可以忽略这一点。

  5. 安装完成后,启动系统。将“ nvme”添加到/ etc / initramfs-tools / modules中,然后update-initramfs -u以root身份运行。

  6. 编辑/ etc / default / grub并添加此行

    GRUB_CMDLINE_LINUX="intel_pstate=no_hwp"
    

    并将“ nomodeset”添加到GRUB_CMDLINE_LINUX_DEFAULT,如下所示:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"
    
  7. 运行update-grub

最后的几个命令(向前执行initramfs)对于防止第二次尝试引导到新系统中的磁盘未找到错误是必需的。


2
谢谢你这个!即使不使用Gparted也能正常工作!
VictorSchröder'16

当我grub-install --target=x86_64-efi /dev/nvme0n1遇到错误时:failed to register the EFI boot entry: No such file or directory
拉恩

@Rahn /dev/nvme0n1您的系统上实际上有一个吗?这不是所谓的其他东西/dev/nvme0n2吗?您应该问一个新问题,但这sudo fdisk -l是一个起点。
迈克尔·A
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.