如何在Google计算引擎实例上安装自定义内核?

时间:2017-06-08 04:18:06

标签: linux-kernel google-compute-engine grub2

我想在Google Compute Engine实例上安装自定义内核映像。我有一个运行的实例:

foo@instance-1:/boot/efi$ uname -a
Linux instance-1 4.10.0-22-generic #24-Ubuntu SMP Mon May 22 17:43:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

我已经构建并安装了我的内核映像:

sudo dpkg -i linux-image-4.10.0-rc8.10.0-rc8_amd64.deb

它显示在grub配置文件中,我已将默认的grub菜单项设置为正确的数字,并且我已经运行

sudo update-grub

然而,当我重新启动时,我得到了我开始使用的相同内核。

关于此的Google文档似乎不存在。有一个地方暗示我可能需要在外部创建映像,安装内核并导入它。但是,我需要做很多事情,所以我宁愿以旧式方式安装新内核。

3 个答案:

答案 0 :(得分:4)

事实证明,在谷歌的Ubuntu图片中,有一个grub配置文件:

/etc/default/grub.d/50-cloudimg-settings.cfg

覆盖

中的内容
/etc/default/grub

编辑第一个文件使一切正常。

答案 1 :(得分:0)

在尝试此操作之前,我假设您有后备选项?某种方式回到你现在的状态。这很重要,因为您可能无法访问系统。

请检查/boot/grub/grub.cfg显示为默认内核的内容。它将是一个开头menuentry部分,在此之下是一个以linux开头的条目。如果它指向/boot/<default-kernel>,那么您需要更新initrd条目,以便内核映像和initramfs都指向您的自定义内核。

此外,内核映像的引导顺序可能是按字母顺序排列的,因此较新的内核映像(后来按字母顺序排列)优先于旧映像。在这种情况下,如果您可以将内核映像的文件名更改为高于默认内核映像,并且相应的initramfs和配置文件(它们都将被类似命名)相同,然后运行update-grub,这可能是更快的方式启动到您的自定义内核。您可以在/boot/下找到这些文件。

答案 2 :(得分:0)

对我有用的是进入/boot/并删除旧映像,然后运行sudo dpkg -i <new_image>并使用sudo reboot重新启动系统