Как установить пользовательское ядро ​​на экземпляр вычислительного движка Google?

Я хочу установить собственный образ ядра на экземпляр 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 по этому вопросу, похоже, отсутствует. Есть одно место, которое предполагает, что мне, возможно, придется создать внешний образ, установить ядро ​​​​и импортировать его. Тем не менее, мне нужно будет делать это часто, поэтому я бы предпочел просто установить новые ядра по старинке.


person MemoryWrangler    schedule 08.06.2017    source источник
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, Суперпользователь или Unix & Linux Stack Exchange лучше спросить.   -  person jww    schedule 20.06.2017


Ответы (3)


Оказывается, в стандартном образе Ubuntu от Google есть файл конфигурации grub:

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

это переопределяет то, что в

/etc/default/grub

После редактирования первого файла все заработало.

person MemoryWrangler    schedule 09.06.2017
comment
Совет для поисковых систем: это также работает для добавления дополнительных параметров загрузки ядра Linux в экземпляры gcp. - person Julius Žaromskis; 19.10.2020

Прежде чем пытаться это сделать, я предполагаю, что у вас есть запасной вариант? Какой-то способ вернуться к своему нынешнему состоянию. Это важно, поскольку кажется, что у вас может не быть физического доступа к системе.

Пожалуйста, проверьте, что /boot/grub/grub.cfg показывает как ядро ​​по умолчанию. Это будет раздел, начинающийся с menuentry, а под ним запись, начинающаяся с linux. Если это указывает на /boot/<default-kernel>, то это то, что вам нужно обновить вместе с записью initrd, чтобы и образ ядра, и initramfs указывали на ваше пользовательское ядро.

Кроме того, возможно, что порядок загрузки образов ядра является алфавитным, поэтому более новые образы ядра (более поздние в алфавитном порядке) имеют предпочтение перед старыми. В этом случае, если вы можете изменить имя файла образа ядра, чтобы оно было выше, чем образ ядра по умолчанию, и то же самое для соответствующих файлов initramfs и config (все они будут иметь одинаковые имена), а затем запустить update-grub, это может быть более быстрый способ загрузки в ваш пользовательский ядро. Вы можете найти эти файлы под /boot/.

person bytefire    schedule 08.06.2017

Что сработало для меня, так это войти в /boot/ и удалить старые образы, а затем запустить sudo dpkg -i <new_image> и перезагрузить систему с помощью sudo reboot

person N. Der    schedule 30.03.2020