在安装 Kubuntu 18.10 和 19.04 时,我遇到了看到 grub 错误消息“找不到合适的内存目标”的问题,然后在内核启动后出现内核恐慌消息“未同步:VFS:无法在未知块(0,0)上挂载根 fs”当我降级到 Kubuntu 17.04 时一切正常。
我的电脑运行的是 asrock x99 extreme6,内存 >32G,CPU 为 E5-2690v3 Xeon。BIOS 是完整的 UEFI BIOS,禁用了 CSM。系统中只有 1 个 SSD,并且已移除所有其他存储设备(安装 USB 驱动器除外)。我有两张显卡,一张是 Nvidia,另一张是 AMD。我正在单击安装过程以使安装尽可能通用。
我设法弄清楚了,较新的操作系统发行版的 initramfs 映像大于 55M,而 17.04 发行版的 initramfs 为 41M。搜索后我发现,如果 /boot 已满,内核无法加载 initramfs 映像,则会出现问题。但是,我是从 liveUSB 安装的,启动 liveUSB 和从 USB 安装都没有问题。我已成功在我的笔记本电脑上安装了 19.04,该笔记本电脑有 16G 内存,是较旧的 i7。
“无法找到合适的内存目标”实际上是什么意思?如果是内存不足的问题,我该如何增加 initramfs 映像的 RAM 数量?我不明白为什么在安装程序正确指定 UUID 时内核无法加载根文件系统。
我还能提供哪些信息来帮助正确解决此问题。谷歌搜索显示此问题出现在以前的版本和更早的版本中,但是,那里提供的解决方案对我当前的问题表现不起作用。
我没有双启动我的台式机,但我双启动了运行 Kubuntu 19.04 的笔记本电脑
这似乎与 initramfs 映像的大小直接相关。
还有一个问题,如何消除标准图像的膨胀?
谢谢。
其他发现:
Kubuntu 18.04.02 LTS 确实安装成功并正确启动。
有趣的是,通过 KDE 驱动实用程序安装 nvidia 专有驱动程序后,我再次遇到“找不到合适的内存目标。”的错误。
重新安装 18.04.02 LTS 并检查 initrd.img-4.18.0-25-generic 映像大小显示为 55M,安装 Nvidia 驱动程序后,新映像大小为 64M。重新启动后,grub 再次失败,并显示“无法找到合适的内存目标”。
这仍然不能回答为什么在 19.04 中 initramfs 映像为 72M 并且可以在我的笔记本电脑上运行,但功能更强大的台式机却无法处理 64M 映像。
答案1
好的,所以问题肯定是围绕 bootloader grub 展开的。但是,如果没有与计算机的串行连接,我无法进一步调试该问题。
好消息是,有一种方法可以解决这个问题。缩小 initrd.img 映像。需要 3 个步骤
重新配置 initramfs-tools 以使用“xz”压缩算法。这可以通过编辑 /etc/initramfs-tools/initramfs.conf 文件来实现。设置 COMPRESS=xz
您需要通过运行命令“update-initramfs -u”来更新 initrd 文件如果已安装,请卸载 cryptsetup-initramfs,这将为您更新 initramfs 映像。
仅这两个步骤就将 72M 的 initrd 映像缩小到了 37M。这使我能够成功启动桌面。
最后一步只能为您增加几兆字节,但还是有用的。转到当前内核的模块目录并运行命令:“ find . -iname *.ko -exec strip --strip-unneeded {} + ”运行此命令后,您将需要更新 initramfs 映像,请参阅步骤 1。
如果你必须从 livecd/USB 执行此操作,则必须挂载根分区并运行以下命令。假设你的根文件系统挂载在“/mnt”
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot/mnt
运行上面提到的 3 个步骤,检查 initrd 映像的大小以确保一切正常,卸载所有设备并重新启动。
这应该是诀窍。这不能修复引导加载程序问题,但它可以解决这个问题。