Ubuntu Server 20.04 安装卡在“块探测未发现任何磁盘”

Ubuntu Server 20.04 安装卡在“块探测未发现任何磁盘”

我正在尝试在远程服务器上安装 Ubuntu Server 20.04。问题是,我无法连接 USB 驱动器,托管服务提供商不允许我安装 ISO 映像,我只有一个预装的 Ubuntu 系统。

要启动 Ubuntu 服务器设置,我按照本文添加 grub 菜单项,以便我可以从 Ubuntu Server ISO 启动。这是菜单项:

menuentry "Ubuntu 20.04 ISO" {
   set isofile="/root/ubuntu-20.04.1-live-server-amd64.iso"
   rmmod tpm
   loopback loop (hd0,2)$isofile
   linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject toram
   initrd (loop)/casper/initrd
}

现在,当我选择此菜单项时,安装程​​序将启动,创建一个 ramdisk,将 ISO 的内容复制到内存中,然后我完成安装的前几个步骤,直到:

引导式存储配置

很好,安装程序为什么无法发现我的硬盘?

当我切换到终端并运行时,lsblk我看到它sda显然存在并且sda2仍然安装在/isodevice- 这是出乎意料的,因为 ISO 已经被复制到 ramdisk。umount /dev/sda2返回“目标正忙”,但它可以与该-l选项一起使用。

即便如此,我在引导存储配置页面上仍然收到相同的错误。我在这里遗漏了什么?什么会阻止安装程序检测到我的硬盘,即使lsblk可以看到它?

更新:

我尝试过旧版安装程序按照@elder-geek 的建议,使用这个 grub 菜单项:

menuentry "Ubuntu 20.04 legacy server ISO" {
    rmmod tpm
    set root=(hd0,2)
    set isofile="/root/ubuntu-20.04.1-legacy-server-amd64.iso"
    loopback loop $isofile
    linux (loop)/install/vmlinuz boot=install iso-scan/filename=$isofile noeject toram
    initrd (loop)/install/initrd.gz
}

通过此设置,我可以启动旧版安装程序并完成前几个步骤,但随后我陷入困境,因为安装程序无法安装它所需的 cd-rom 驱动器。似乎旧版安装程序不支持该toram选项(与 casper 不同),因此我无法使用它从 RAM 运行安装程序,如果我想从将在安装过程中被销毁的文件系统上的 ISO 文件进行安装,则这是一项严格要求。

更新:尝试使用 20.10 安装程序,同样的问题。lsblk并且parted可以从安装程序的命令行看到我的磁盘,但是引导存储配置失败了。我现在已经没什么主意了……

提交了错误报告现在在启动板上……

答案1

这是十多年前就存在的 bug。问题是,尽管安装程序已使用该toram选项启动,但 ISO 映像仍处于挂载状态。解决方案是卸载 ISO,但这里有两个陷阱:

  1. 你不能只这样做umount,你必须先分离循环设备losetup
  2. 你必须先做这件事任何事物安装程序中的其他内容。不,你甚至无法选择键盘布局 :/

进入安装程序的第一个屏幕后,按 F2 切换到终端,然后输入

losetup -d /dev/loop0
umount /isodevice

使用 Ctrl+D 退出终端,就可以了。

答案2

您似乎受到了这个错误。

完全可以尝试通过旧版安装程序成功安装,作为一种解决方法,正如 [subiquity bug 1890651](https://bugs.launchpad.net/subiquity/+bug/1890651/comments/2

如果这对您不起作用,请从头开始。

  1. 检查 ISO 的哈希值并确保其匹配。对于 20.04,它们如下:

    b45165ed3cd437b9ffad02a2aad22a4ddc69162470e2622982889ce5826f6e3d *ubuntu-20.04.1-桌面-amd64.iso 443511f6bf12402c12503733059269a2e10dec602916c0a75263e5d990f6bb93 *ubuntu-20.04.1-实时-服务器-amd64.iso

如果不匹配,请尝试再次下载该文件,因为它已被某种方式损坏。

确保没有硬件问题。从实时媒体启动并测试内存贮存对于错误,系统日志grep error /var/log/syslog以及诸如 memtest86+ 之类的工具可能会有所帮助。您可能知道,Memtest86+ 无需操作系统即可运行。因此,您必须能够访问 Ubuntu 中的 GRUB 菜单。打开或重新启动系统并按住“Shift”键以访问 GRUB 菜单。选择 memtest 并运行测试。将报告任何错误并指示必须更换 RAM。

答案3

我知道这是一个老问题。但是因为我最近遇到了这个问题。我想在这里添加我的解决方案。我必须将我的用户数据嵌入到 ISO 中。找到了这个工具有帮助。然后我在用户数据中添加了这些行

early-commands:
  - losetup -d /dev/loop0
  - umount /isodevice

然后我将自动安装添加到我的内核行中。

linux (loop)/casper/vmlinuz boot=install iso-scan/filename=$isofile noeject toram autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---

答案4

我在 Hp ProLiant dl380e gen8 上尝试安装 ubuntu 20.04 时遇到了同样的问题

我解决了在 bios 选项 dynamicSmart Array 上禁用的问题

https://downloads.linux.hpe.com/SDR/project/ubuntu-hpdsa/rbsu.jpg https://downloads.linux.hpe.com/SDR/project/ubuntu-hpdsa/

在此处输入图片描述

相关内容