我正在尝试在 Lenovo Thinkpad 上安装 64 位 Debian stable。当我进入安装引导加载程序的安装步骤时,我收到以下消息:
安装步骤失败。您可以尝试从菜单中再次运行失败的项目,或者跳过它并选择其他项目。失败的步骤是: 在硬盘上安装 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。到目前为止,我已经尝试过
禁用 UEFI 引导并改用传统引导。对于 GRUB 和 LILO,该错误仍然发生。
按照以下说明进行操作这个问题和跑步
parted /dev/nvme01 set 1 bios_grub on
来自 TTY2,但我收到一条错误消息
parted not found
: .在我的系统上/dev/nvme01
是唯一的硬盘检查硬件错误。当我第一次购买该系统时,我运行了所有可用的硬件测试,包括 BIOS 内和 Windows 内的测试,并且它通过了所有测试。我假设这意味着硬件没有出现故障。
每这个线程也有类似的错误,尽管是使用 LVM,我尝试
/boot
在开始时用一个小分区重新分区,格式化为ext2
.同样的错误。切换到 TTY4 查看安装输出,我也看到了错误
chroot: can't execute 'grub-probe': No such file or directory
搜索相关信息就会出现这个线程和这个错误报告与 GRUB 相关,但是 a) 这些都是旧的,b) 到目前为止我已经运行了十几次安装,每次都会收到错误,所以它看起来不是一次性的事情。
我已经使用 Gparted 检查硬盘是否完全为空。
BIOS 中禁用了安全启动。
我已使用完整 DVD 和网络安装 CD 运行安装;两者都是从 USB 启动,但问题仍然存在。
在上一个安装步骤中,我能够在驱动器上成功创建msdos
分区表和三个分区( 、/
、/home
和swap
),所以我不知道为什么 GRUB 突然无法写入驱动器。
我该如何解决这个问题并安装 Debian?截至目前,(全新!)系统完全无法使用,因为我无法在其上安装操作系统。
部分问题可能是 Debian/parted 无法正确识别磁盘吗?它说磁盘是 512.1 GB,从规格上说是 512 GB 的意义上来说,这是正确的,这就是广告中的内容,它会让我将所有 512 GB 分配给各个分区。然而,如果我在 Gparted 中加载它,实际磁盘空间接近 476 GB,但我认为这只是通常的 1024 与 1000 的东西。
(我还在Debian 论坛,所以我将用该线程中的任何重要内容更新我的问题,反之亦然。)
答案1
这是对我有用的方法,使用 Debian jessie(稳定)。我基本上接受了以下指示这个维基帖子,并删除了有关 Windows 双启动的所有步骤,因为这些步骤不适用于我的情况。
在 BIOS 中,设置“仅 UEFI”启动。
使用 Gparted,在磁盘开头使用
boot
和esp
标志创建一个 FAT32 分区。 (Debian 安装程序也应该能够做到这一点,但由于安装程序错误地识别了磁盘的大小,我更喜欢使用 Gparted)。在我的例子中,FAT32 分区是 /dev/nvme0n1p1。在安装过程中,请确保您已配置网络连接(手动或自动,无关紧要)。否则,下一步将会失败。
在GRUB安装失败的安装阶段,打开shell并运行以下命令:
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
退出 shell 并选择“继续而不安装引导加载程序”。您将看到一条警告消息,为您提供要使用的引导命令;你可以忽略这一点。
安装完成后,启动进入系统。将“nvme”添加到 /etc/initramfs-tools/modules 中,然后
update-initramfs -u
以 root 身份运行。编辑 /etc/default/grub 并添加此行
GRUB_CMDLINE_LINUX="intel_pstate=no_hwp"
并将“nomodeset”添加到 GRUB_CMDLINE_LINUX_DEFAULT,如下所示:
GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"
跑步
update-grub
。
最后几个命令(initramfs 以后)对于防止第二次尝试引导到新系统时出现磁盘未找到错误是必要的。
答案2
由于我找不到更新的问题,debian 安装程序倾向于坚持使用相同的默认值,即使它们已经过时。如果您选择对整个磁盘进行“引导”分区,您将获得旧的 msdos/mbr 分区方案。
如果真的能克服困难,nvme 可以通过这种方式启动。
如果执行手动分区,则可以使用 nvme 控制器期望的 GPT 分区,并且分区的顺序无关紧要。无论如何,您几乎永远不会希望 PC Linux 系统位于单个磁盘分区中。
启动nvme驱动器,使用GPT分区表,500MB左右/boot; 35-50GB/; 75-100GB/家庭; 100-150GB/usr; 4-16GB交换区; 300MB efi分区;让其余的落入/分区。驱动器的其余部分可以按照您想要的方式进行分区,使用手动输入的安装点,或者您可以在系统启动后创建安装点。
然后,grub会在安装过程中安装到nvme。如果在启动安装介质之前将 BIOS 设置为 UEFI BOOT ONLY,则 GPT 分区可能是安装过程中的默认设置。
我在 Linux 上进行开发已经有 19 年了,从 woody 开始就在 Debian 上进行开发。我对 Debian 安装程序非常熟悉。