如何更改启动 Ubuntu XEN VPS 的内核?

如何更改启动 Ubuntu XEN VPS 的内核?

我有一个运行 Ubuntu 服务器 12.04 的 VPS。不久前,我的主机安装了一个替代内核(Amazon 的 EC2 内核之一)来解决我遇到的启动问题。现在,在 2 个 Ubuntu 版本之后,即使安装了更高版本(3.2.xx)的内核,这个内核(2.6.31-302-ec2)仍在使用。

我怎样才能让服务器使用最新安装的内核,最好不要卸载 EC2 内核,以防这样做导致问题?

答案1

恭喜你,你已加入PyGrub!

  • 您的menu.lst文件、目录中的不同内核映像/boot,以及最重要的是,您正在运行的内核(Amazon EC2 版本极不可能在物理主机上运行)强烈暗示你启用 pygrub
    • 这是因为非 Pygrub XenPV必须使用与主机相同的内核
  • 这个奇怪的空白dmesg很可能是 EC2 内核定制的一个副作用;与信息量很大的输出进行比较XenPV 3.4 上的正常内核

关于 XenPV 内核选项的一些信息:

  • 您当前的自定义 EC2 内核使用选项启动root=/dev/sda1 xencons=tty(请参阅结尾menu.lst
  • 标准XenPV 在标准内核上的启动选项是root=/dev/xvda1 console=hvc0
    • xvda是半虚拟化(且更高效)的磁盘设备,而sda是效率较低的模拟设备——这是我第一次看到后者在 3.x XenPV 中使用。
    • xencons=ttyconsole=hvc0非常相似,但我相信前者是一种较旧的(遗留)用法;你可以将它们堆叠而不会产生任何不良影响;它只是告诉内核标准虚拟终端不可用于控制台,而应使用专用设备hvc0

如何切换内核:

这部分可能有点棘手,您应该得到提供商的认可,因为您可能需要他们帮助完成cp一两次简单的操作!之后,您将知道您需要哪些选项,以及应该为未来做好准备。

  • 如果需要,为了给您提供一些背景信息,以下是我在最新 64 位内核上的 XenPV VPS 的一些文件:ls -l /bootmenu.lst和一个完整启动后dmesg
  • 在顶部添加以下内容menu.lst,以适应您需要的内核版本:

    默认值=0
    标题 vmlinuz-3.2.0-25-通用
    根 (hd0)
    内核/boot/vmlinuz-3.2.0-25-generic ro root=/dev/sda1 xencons=tty console=hvc0
    initrd /boot/initrd.img-3.2.0-25-generic
    
  • 祈祷重新启动,并希望它能够恢复!

  • 如果没有,请尝试更改为root=/dev/xvda1,这几乎肯定会有效。
  • menu.lst升级内核时请记住拒绝安装“新的” !

答案2

默认情况下,xen 客户机(domU)无法控制正在使用的内核。

内核由虚拟机管理程序(dom-0)配置,其中特定内核版本与 ip、内存磁盘大小等一起硬编码在每个虚拟机的配置脚本中。

除非你的 VPS 提供商已启用 pygrub,允许在 VPS 中使用和启动自定义内核。如果是这种情况,请查看此说明

Xen 和 PyGrub

答案3

在软件中心搜索 Grub Customizer。

安装程序。

然后打开 Grub Customizer。

您可以取消选中任何旧内核并选中较新的内核。

当 ubuntu 启动时它只会看到那些被检查的。

希望这可以帮助,

雷納多

相关内容