Пришлось столкнуться с забавной ошибкой, по которой сходу не удалось найти никакой информации в интернете.
Проблема по первичным признакам такая. Грузится SUSE Linux Enterprise Server 15, доходит до меню загрузки GRUB. Далее, если выбрать обычное ядро, всё нормально, а если выбрать ядро для гипервизора Xen, то экран моргает и мы опять возвращаемся в меню. Запустить Xen невозможно никак.
Долгие упражнения с настройками GRUB и параметрами загрузки ядра ничего не дали (а надо отметить, что инициализация сервера при загрузке — это неспешный процесс, поэтому дело затягивается надолго). Наконец, возникла ведущая к победе мысль — заснять процесс загрузки на смартфон в ускоренном режиме!
После нескольких попыток удалось получить вот такой кадр:
Это изображение держится на экране в самом удачном случае доли секунды.
Дальше уже делом техники было найти описание проблемы на форуме поддержки Lenovo, которое заключается в следующем.
Загрузчик EFI ядра Xen написан весьма вольно, и грузит ядро одной физической командой чтения.
До версии SLES 15 SP2 размер ядра составлял чуть менее 16 мегабайт, начиная с SP3 — увеличился до чуть более 16 мегабайт.
У ряда контроллеров и дисков размер буфера чтения ограничен как раз величиной 16 мегабайт.
Как следствие, загрузка Xen в режиме EFI с недостаточно продвинутого контроллера или диска приводит к ошибке чтения и мгновенному возврату обратно в меню.
Для того, чтобы справиться с проблемой, предлагается воспользоваться одним из следующих решений:
a) Дождаться, пока Xen community исправит ошибку, интегрировав предложения Lenovo/IBM в свой код (пока с версии 15SP3 ничего не произошло, сейчас на дворе 15SP5).
б) Скачать исходники ядра Xen и перекомпилировать с патчем, предложенным на упомянутой выше странице поддержки, где файл читается порциями по 1 мегабайту. Делать так каждый раз после обновления загрузчика (не проверял, но должно работать).
в) Выполнять загрузку сервера не в режиме EFI, а в режиме Legacy (это работает).
Очень поучительная история.
Бонус:
Ещё одной причиной незагрузки ядра Xen, менее замороченной, начиная с давних времён версии SLES 12 является русский язык. Если зайти на даже полностью англоязычный сервер удалённо через ssh -X yast2 с машины, на которой активна русская локаль, то интерфейс yast и его элементов настройки будет русским. При этом в меню загрузки пункт будет называться “Ядро SLES с гипервизором Xen”, и такой же раздел файла настроек GRUB будет искаться скриптом. А учитывая, что раздел на самом деле называется “SLES kernel with Xen hypervisor”, ясно, что ничего хорошего скрипт не найдёт. Но это простая в диагностике ошибка.