Ubuntu 18.04 服务器安装在运行“update-grub”时卡在 66%

Ubuntu 18.04 服务器安装在运行“update-grub”时卡在 66%

我正在尝试安装 Ubuntu 服务器,但在更新 grub 时它总是卡在最后阶段。我取消了该过程并重新启动了我的系统,它把我带到了 grub 命令提示符grub>

我尝试从提示符处手动启动:

root=(hd1,gpt5)       # Ubuntu root partition
linux   /boot/vmlinuz-something-   root=/dev/sda5
initrd    /boot/initramfs-something-
boot
<enter>

滚动一些启动消息后,它让我陷入了

Busybox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3) built-in. shell (ash) 

随着initramfs>提示。从这里我做了一个exit 它向我展示了内核恐慌!有以下两个提示。

mount: mounting/says on /root/says failed : No such file or directory
mount: mounting /process on /root/process failed: No such file or directory

答案1

不是解决方案,而是一些解决方法。显然,这是一个漏洞在 os-prober 中。我个人尝试了第二种,效果很好!引用链接中的内容:

解决方法 1:(主动)

当您到达
“将 GRUB 引导加载程序安装到主引导记录吗?”时提示,(在我的例子中,没有出现这样的提示,但我弄清楚了 grub 安装的时间)切换到控制台(ctrl+alt+[f2-f6]),并删除此文件:

rm /target/etc/grub.d/30_os-prober

这将阻止 update-grub 运行 os-prober,从而避免遇到此问题。当然,不会列出其他操作系统,但至少这应该可以防止安装过程完全卡住。我已经在具有引导(未加密)LVM 和标准加 ssh 任务的虚拟机中成功测试了这一点(这就是我最初重现您的问题的方式)。

解决方法 2:(反应)

否则,一旦进程卡住,请在 ps 输出的第一列中找到进程标识符 (PID):

ps | grep 'dmsetup create'

然后杀死这个 dmsetup 进程。根据上面的输出,那就是:

kill 19676

(已在具有与上述相同设置/选择的虚拟机中成功测试。)

基比

答案2

我在安装到.a2x SAS上的 HDD 驱动器时发生了这种情况。PERC RAID 1Dell Poweredge r630

我曾经ctrl+alt+f2获得控制台并终止了该进程,然后返回到安装程序ctl+alt+f1- 您的里程可能会有所不同

答案3

预置的自动化解决方法

GRUB_DISABLE_OS_PROBER=true如果您在之后传递内核参数,--- 那么grub-install阶段将不会挂在 66% 处,并且该变量将被添加到目标主机上的 grub 设置中。

例如:

/etc/default # grep PROB grub
GRUB_CMDLINE_LINUX="GRUB_DISABLE_OS_PROBER=true"

它的工作原理是由于中的代码/etc/grub.d/30_os-prober

if [ “x${GRUB_DISABLE_OS_PROBER}” = “xtrue” ]; then
exit 0
fi

答案4

我在 Bionic 18.04 中遇到了这个问题。建议的答案不起作用。

ubuntu安装过程中卡住的进程是grub-probe

这似乎是由于 SAS 硬盘读取错误(可能特定于我们的服务器配置)。在我的安装过程中不需要这些驱动器,但它们仍然存在于 /dev/ 和 /sys/block 中。

解决方案是从 /dev 隐藏这些驱动器,然后重新启动分区过程。 (您还必须通过查找进程 id -> 从终端终止卡住的 grub-probe ps | grep grub-probe

您需要确定要隐藏哪些 /dev/ 设备并使用以下命令。

echo 1 > /sys/block/$dev/device/delete;

使用 for 循环,我在不是安装目标的任何驱动器 /dev/sd* 上执行上述命令

相关内容