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

Linux kernel 如何在google计算引擎实例上安装自定义内核?,linux-kernel,google-compute-engine,grub2,Linux Kernel,Google Compute Engine,Grub2,我想在Google计算引擎实例上安装一个自定义内核映像。我有一个实例正在运行: 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_am

我想在Google计算引擎实例上安装一个自定义内核映像。我有一个实例正在运行:

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
然而,当我重新启动时,我得到了与我开始使用的相同的内核


谷歌在这方面的文档似乎不存在。有一点建议我可能必须从外部创建映像,安装内核,然后导入它。但是,我需要经常这样做,所以我宁愿用老式的方式安装新内核。

在尝试之前,我假设您有备用选项?以某种方式回到你目前的状态。这一点很重要,因为您可能无法实际访问系统

请检查
/boot/grub/grub.cfg
显示为默认内核的内容。它将是一个以
menuentry
开头的部分,下面是一个以
linux
开头的条目。如果它指向
/boot/
,那么这就是您需要随
initrd
项一起更新的内容,以便内核映像和initramfs都指向您的自定义内核


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

下找到这些文件,在谷歌的股票Ubuntu图像中,有一个grub配置文件:

/etc/default/grub.d/50-cloudimg-settings.cfg
这会覆盖所有的内容

/etc/default/grub

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

对我有效的是进入
/boot/
并删除旧映像,然后运行
sudo dpkg-i
并使用
sudo reboot

堆栈溢出重新启动系统,这是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。对于搜索引擎来说,询问.tip可能是一个更好的地方:这也可以将额外的linux内核引导参数添加到gcp实例中