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

Kla*_*ann 5 server partitioning grub2 system-installation 20.04

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

为了启动 Ubuntu 服务器设置,我按照本文中的说明添加了 grub 菜单项,以便可以从 Ubuntu 服务器 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
}
Run Code Online (Sandbox Code Playgroud)

现在,当我选择此菜单项时,安装程​​序将启动,创建一个 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
}
Run Code Online (Sandbox Code Playgroud)

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

更新:用20.10安装程序尝试过,同样的问题。lsblkparted可以从安装程序的命令行看到我的磁盘,但引导存储配置失败。我在这里没有想法了......

立即在启动板上提交错误报告...

Kla*_*ann 5

这是一个十多年前的错误造成的结果。问题在于,尽管安装程序是使用该toram选项启动的,但 ISO 映像仍然已安装。解决方案是卸载 ISO,但这里有两个陷阱:

  1. 你不能只是这样umount,你必须先分离循环设备losetup
  2. 在安装程序中执行任何其他操作之前,您必须执行此操作。不,您甚至无法选择键盘布局:/

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

losetup -d /dev/loop0
umount /isodevice
Run Code Online (Sandbox Code Playgroud)

使用 Ctrl+D 退出终端即可。