![Ubuntu Server 20.04 安装卡在“块探测未发现任何磁盘”](https://linux22.com/image/932919/Ubuntu%20Server%2020.04%20%E5%AE%89%E8%A3%85%E5%8D%A1%E5%9C%A8%E2%80%9C%E5%9D%97%E6%8E%A2%E6%B5%8B%E6%9C%AA%E5%8F%91%E7%8E%B0%E4%BB%BB%E4%BD%95%E7%A3%81%E7%9B%98%E2%80%9D.png)
我正在尝试在远程服务器上安装 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,但这里有两个陷阱:
- 你不能只这样做
umount
,你必须先分离循环设备losetup
- 你必须先做这件事任何事物安装程序中的其他内容。不,你甚至无法选择键盘布局 :/
进入安装程序的第一个屏幕后,按 F2 切换到终端,然后输入
losetup -d /dev/loop0
umount /isodevice
使用 Ctrl+D 退出终端,就可以了。
答案2
您似乎受到了这个错误。
完全可以尝试通过旧版安装程序成功安装,作为一种解决方法,正如 [subiquity bug 1890651](https://bugs.launchpad.net/subiquity/+bug/1890651/comments/2
如果这对您不起作用,请从头开始。
检查 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/