我想在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文档似乎不存在。有一个地方表明我可能必须在外部创建图像,安装内核并导入它。但是,我需要做很多事情,所以我宁愿以老式的方式安装新内核。
事实证明,在Google的库存Ubuntu映像中,有一个grub配置文件:
/etc/default/grub.d/50-cloudimg-settings.cfg
覆盖
中的内容/etc/default/grub
编辑第一个文件使所有内容都有效。
在尝试此操作之前,我假设您有一个后备选项?回到您当前状态的某种方式。这很重要,因为似乎您可能无法物理访问系统。
请检查/boot/grub/grub.cfg
显示的内容为默认内核。它将是menuentry
的部分开始,从linux
开始的条目。如果这指向/boot/<default-kernel>
,那么这就是您需要与initrd
条目一起更新的内容,以便内核图像和Initramfs都指向您的自定义内核。
此外,内核图像的启动顺序可能是字母顺序的,因此较新的内核图像(以字母顺序以字母顺序(比较旧的内核图像偏爱。在这种情况下,如果您可以将内核映像的文件名更改为高于默认内核映像,而对于相应的Initramfs和配置文件,则相同(它们都将类似地命名(,然后运行update-grub
,这可能是更快地启动到自定义的方法核心。您可以在/boot/
中找到这些文件。
对我有用的是进入/boot/
并删除旧图像,然后运行sudo dpkg -i <new_image>
并使用sudo reboot