Используя Ubuntu 20.04 на AWS (ec2), я хотел изменить свое ядро с AWS на универсальное. Когда я пробую предложенный способ с изменением конфигурации Grub, он останавливает машину.
Это связано с тем, что Jibri (Jitsi Video Recorder) требует использования ALSA и modprobe snd-aloop , но все, что требует низкой задержки или другого ядра, будет иметь ту же потребность.
Что я пробовал:
Возьмите изображение:
sudo apt установить linux-image-extra-virtual
Вы увидите в установочных пакетах ссылку на что-то вроде Linux 5.4.0-84-generic, это поможет позже.
Теперь перечислите свои загрузочные записи, которые у вас есть для этого нового универсального ядра.
grep -A200 submenu /boot/grub/grub.cfg |grep -P '^(?=.*menuentry)(?=.*generic)'
Я понимаю:
menuentry 'Ubuntu с Linux 5.4.0-84-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee -4314-a151-d1332dc23486' {
menuentry 'Ubuntu, с Linux 5.4.0-84-generic (режим восстановления)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-84-generic-recovery -e8070c31-bfee-4314-a151-d1332dc23486 '{
В верхней строке, а не в той, в которой упоминается режим восстановления, скопируйте его пункт меню в начале строки. На моем похоже Ubuntu, с Linux 5.4.0-84-generic, но у всех будет по разному.
Сейчас буду редактировать /etc/по умолчанию/жратва ,
Закомментируйте GRUB_DEFAULT=0 (загружает первую запись в ваш загрузочный список grub) и измените его на строку, которую мы нашли ранее. Для меня этот раздел файла теперь выглядит так:
#GRUB_DEFAULT=0
GRUB_DEFAULT="Ubuntu с Linux 5.4.0-84-универсальный"
Это еще не правильная настройка - мы используем ее, чтобы позволить grub проверить и сказать нам, как лучше всего это сделать.
На этом этапе мы можем выполнить команду sudo update-grub, которая выдаст мне такое дружеское предупреждение (это хорошо!)
Предупреждение: не используйте старое название «Ubuntu, с Linux 5.4.0-84-generic» для GRUB_DEFAULT, используйте «Дополнительные параметры для Ubuntu>Ubuntu, с Linux 5.4.0-84-generic» (для версий до 2.00) или `gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486' (для версии 2.00 или выше)
Опять же, это хорошо! Мы знаем, что указали что-то, что он распознает. В наши дни все используют grub новее 2.00, поэтому теперь мы снова редактируем /etc/default/grub и меняем его на окончательное значение:
(мои значения будут отличаться от ваших)
#GRUB_DEFAULT=0
#GRUB_DEFAULT="Ubuntu с Linux 5.4.0-84-универсальный"
GRUB_DEFAULT="gnulinux-advanced-e8070c31-bfee-4314-a151-d1332dc23486>gnulinux-5.4.0-84-generic-advanced-e8070c31-bfee-4314-a151-d1332dc23486"
sudo update-grub , и я вижу, что предупреждение исчезло.
Теперь я делаю sudo перезагрузить сейчас
На данный момент grub дал мне конфигурацию, которая должна попытаться загрузить общее ядро, возвращаясь к обычному.
Вместо этого он застревает в цикле загрузки.
В последовательной консоли я неоднократно вижу это во время цикла загрузки.
[0.000000] Версия Linux 5.4.0-84-generic (buildd@lgw01-amd64-050) (gcc версия 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #94-Ubuntu SMP Чт, 26 августа, 20:27: 37 UTC 2021 г.
(Убунту 5.4.0-84.94-универсальная 5.4.133)
[0.000000] Командная строка: BOOT_IMAGE=/boot/vmlinuz-5.4.0-84-generic root=PARTUUID=5198cbc0-01 ro console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295 panic=-
1
[ 0.000000] Ядро поддерживает процессор:
[ 0.000000] Intel Подлинная Intel
[ 0.000000] AMD ПодлинныйAMD
[ 0.000000] Hygon HygonПодлинный
[ 0.000000] CentaurCentaurHauls
[ 0.000000] Чжаоксин Шанхай
... много инициализации процессора, которую трудно скопировать ..
[ 10.366218] rtc_cmos 00:00: установка системных часов на 2021-09-21T11:25:30 UTC (1632223530)
[ 10.373185] md: ожидание доступности всех устройств перед автоопределением
[ 10.460173] md: если вы не используете рейд, используйте raid=noautodetect
[ 10.464642] md: Автоопределение RAID-массивов.
[10.468024] md: автозапуск...
[ 10.470867] md: ... автозапуск ВЫПОЛНЕН.
[10.473906] VFS: не удается открыть корневое устройство «PARTUUID = 5198cbc0-01» или неизвестный блок (0,0): ошибка -6
[ 10.562806] Пожалуйста, добавьте правильный вариант загрузки "root="; вот доступные разделы:
[10.569825] Паника ядра - не синхронизация: VFS: невозможно смонтировать root fs на неизвестном блоке (0,0)
[10.674637] CPU: 1 PID: 1 Comm: swapper/0 Не испорчен 5.4.0-84-универсальный #94-Ubuntu
[ 10.682527] Имя оборудования: Amazon EC2 t3.small/, BIOS 1.0 16.10.2017
[ 10.686735] Отслеживание вызовов:
[ 10.691100] dump_stack+0x6d/0x8b
[ 10.759061] паника+0x101/0x2e3
[10.761974] mount_block_root+0x23f/0x2e8
[10.765568] mount_root+0x38/0x3a
[ 10.768584] prepare_namespace+0x13f/0x194
[10.771873] ядро_init_freeable+0x23f/0x263
[ 10,775368] ? rest_init+0xb0/0xb0
[10.859141] ядро_инит+0xe/0x110
[ 10.862101] ret_from_fork+0x35/0x40
[10.865843] Смещение ядра: 0x36a00000 от 0xffffffff81000000 (диапазон перемещения: 0xffffffff80000000-0xffffffffbffffffff)
Он говорит мне, что не может найти загрузочное устройство или partuuid в соответствии с ним.
В этот момент мне в значительной степени приходится завершать экземпляр и повторять попытку, так как я не могу легко восстановить его.
Есть ли лучший способ изменить мое ядро на универсальное? Я был бы рад использовать общий образ любым возможным способом на данный момент, если он загрузится.