安装后运行错误的内核

安装后运行错误的内核

我已经从 unetbootin 安装了 Ubuntu 14.04。安装后重新启动时,uname -r显示:

3.5.0-17-generic

..这意味着实际安装的内核(3.13.0-32-generic)没有加载任何模块。

有人知道吗为什么这个内核应该通过安装过程安装吗?它是使用 Unetbootin 的产物吗?引导到 Unetbootin 映像会提供正确的内核,因此模块会加载。

知道原因还好,但我不知道现在该如何补救。因为没有加载任何模块,所以我无法连接网络或连接 USB 驱动器。

我尝试过update-grub,它似乎找到了正确的内核,但似乎并没有告诉系统从它启动。

我也尝试过在启动时使用“Ubuntu 高级选项”选择内核,但只列出了 3.13.x 内核。选择此选项会导致 3.5.x 内核顽固地加载。

我是一个相当有成就的系统管理员,但这个问题让我感到困惑:) 有人可以帮忙吗?

答案1

好的,我解决了。这是 Unetbootin 的问题。在将新映像放入 USB 之前,我没有格式化 USB 记忆棒,因此它将先前安装的版本(在 USB 上)的内核安装到机器硬盘上。

如果确实如此,我不太清楚为什么实时启动映像似乎能够正常工作,但最终的解决方法是彻底格式化 USB 驱动器,然后使用 Unetbootin 重新映像。

答案2

  1. 从 USB、DVD 或 CD 启动实时系统并确保您可以访问互联网。

  2. 安装您的 Ubuntu 安装,例如通过在 Nautilus 或 Gnome Disks 中打开相应的分区。它应该安装在/media/ubuntu或下的某个地方,/media但稍后我将参考安装点[mountpoint]

    • 如果您有单独的/boot/var分区,事情会有点困难,因为您需要手动将它们挂载在 下[mountpoint]。如果您不知道我在说什么,您很可能不关心这个问题。
  3. 打开终端并运行:

    sudo apt-get update
    apt-get download linux-image-3.13.0-24-generic
    sudo dpkg --install --root=[mountpoint] linux-image-*.deb
    
    • 如果你没有使用 Trusty,请在以下网址查找适用于你的 Ubuntu 版本的最新内核包版本:https://launchpad.net/ubuntu/+source/linux#packages_list并将其替换到第二行。
    • 在较旧的 32 位(x86)版本中,您需要将其附加-pae到第 2 行。
    • 如果您使用的是较不常见的架构(PowerPC 或某些 ARM),则可能需要不同的内核包类型。generic输入您的架构所需的内容,而不是 。同样,如果您不知道我在说什么,您很可能不会担心这一点,除非第二行返回错误,指出您的架构不存在该包。
  4. 如果以上所有命令均有效,您现在可以重新启动。如果有的话,不要忘记将内核更新到较新的版本。

答案3

编辑:简单的解决方案是使用 Ubuntu 自己的启动盘创建器而不是 UNetbootin 重新创建 USB 记忆棒,或者像另一个答案所建议的那样先尝试格式化 USB 记忆棒。

在我使用 UNetbootin 创建的 USB 棒安装 Ubuntu 14.04 后,第一次启动时也出现了错误的内核。症状是无法挂载启动分区,因为内核没有可用的 ext2 驱动程序。

奇怪的是,/boot 中的内核似乎是正确的,至少从其名称来看是这样。但是,只有名称是正确的。文件中的内核很旧,从其修改日期可以看出。通过使用以下命令下载实际内核包解决了该问题

apt-get download

解压

dpkg -x

并将(名称相同但大小不同的)内核映像复制到启动分区。

我通过使用相同的 UNetbootin USB 棒启动 Live Ubuntu 来执行修复操作,从那里我可以挂载实际的启动分区(我系统上的 sda1)。

相关内容