如何在谷歌计算引擎实例上安装自定义内核?
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
如何在谷歌地图中创建一个带有气泡聊天背景的自定义标记,以及像调情地图这样的图像右上角的数字?