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

Posted

技术标签:

【中文标题】如何在谷歌计算引擎实例上安装自定义内核?【英文标题】:How do I install a custom kernel on a google compute engine instance? 【发布时间】:2017-11-09 15:03:28 【问题描述】:

我想在 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 文档似乎不存在。有一个地方表明我可能必须在外部创建映像、安装内核并导入它。但是,我需要做很多事情,所以我宁愿以老式的方式安装新内核。

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。 【参考方案1】:

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

【讨论】:

【参考方案2】:

原来在谷歌的 Ubuntu 镜像中,有一个 grub 配置文件:

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

覆盖

/etc/default/grub

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

【讨论】:

搜索引擎提示:这也可以为 gcp 实例添加额外的 linux 内核启动参数【参考方案3】:

在尝试此操作之前,我假设您有一个备用选项?以某种方式回到您当前的状态。这很重要,因为您似乎没有对系统的物理访问权限。

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

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

【讨论】:

以上是关于如何在谷歌计算引擎实例上安装自定义内核?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 中的 Nuget 包在谷歌分析中创建自定义维度和自定义指标

尝试在谷歌地图上显示自定义标记时,BitmapDescriptor.fromBytes() 不起作用

在谷歌地图自定义标记未显示在三星 S8 或 Android 的相同版本 7.0

如何在谷歌地图中创建一个带有气泡聊天背景的自定义标记,以及像调情地图这样的图像右上角的数字?

无法在谷歌地图markerclusterer中应用自定义图标进行聚类,因为无法提供位置数据

谷歌地图上的自定义标记