我想在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文档似乎不存在。有一个地方暗示我可能需要在外部创建映像,安装内核并导入它。但是,我需要做很多事情,所以我宁愿以旧式方式安装新内核。
答案 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
重新启动系统