Добавить режим загрузки консоли / текста в меню grub

5

Я хочу иметь режим режима загрузки текста на экране меню grub. Как создать эту запись в меню?

    
задан Flint 02.07.2012 в 10:31
источник

2 ответа

5

В моих исследованиях есть 2 способа сделать это

Способ 1

Скрипт Hack 10_linux в /etc/grub.d/ и коды генерации вставки для меню загрузки текста

<сильные> Преимущества:

  • Генерирует текстовое загрузочное меню для всех установленных версий ядра.
  • Принимает во внимание новые или избыточные пункты меню при установке / очистке Ядра

Downsides:

  • Требуется глубокое понимание сценариев оболочки
  • Исходный файл сценария может варьироваться от одной версии grub до другого
  • Редактирование необходимо переделать, если обновления пакета grub перезаписывают измененный скрипт.

Способ 2

Используйте назначенный скрипт для добавления пользовательского меню grub в /etc/grub.d

<сильные> Преимущества:

  • Самый простой и наименее сложный
  • Нет возможности перезаписываться, поэтому вы делаете это только один раз

Downsides:

  • Только если вы хотите, чтобы каждая из ваших установленных версий ядра имела текст загрузочное меню:
    • Много работ и труднее поддерживать
    • Оставив лишние пункты меню, когда вы очищаете старые версии ядра

В этом коротком шаге я перехожу с method #2 , так как это проще всего объяснить здесь, и мы создадим текстовое загрузочное меню только для последнего используемого вами образа ядра.

  1. Первое, что вам нужно, это уже сгенерированное меню для ваше последнее ядро. Мы собираемся скопировать и использовать его в качестве основы для нашего индивидуальное меню, с небольшим изменением. Для этого вам необходимо посмотрите в файле /boot/grub/grub.cfg . Найдите первый пункт меню строфа, которая указывает на последнее ядро ​​на вашем Ubuntu. Если вы двойная загрузка с другими дистрибутивами linux, обратите особое внимание, чтобы вы не будет смешивать его с их меню.
  2. Как только вы его нашли, скопируйте всю строфу в комнату и вставьте ее в файл /etc/grub.d/40_custom. Он может выглядеть следующим образом. Давайте используйте это как пример

    menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-a4e6d610-122e-42e2-8497-39eae02816e8' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  a4e6d610-122e-42e2-8497-39eae02816e8
    else
      search --no-floppy --fs-uuid --set=root a4e6d610-122e-42e2-8497-39eae02816e8
    fi
    linux   /boot/vmlinuz-3.8.0-31-generic root=UUID=a4e6d610-122e-42e2-8497-39eae02816e8 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.8.0-31-generic
    

    }

  3. Теперь немного вещей, которые вам нужно отредактировать в этой строфе, прежде чем вы сможете сохраните файл:

    • Заголовок меню. Измените «Ubuntu» в строке меню на «Ubuntu (текстовый режим)»
    • Путь к файлу vmlinuz в строке linux . Заменить /boot/vmlinuz-3.8.0-31-generic с /vmlinuz grub boot в конце строки linux . Заменить quiet splash с text
    • Путь к изображению initrd в строке initrd . Заменить /boot/initrd.img-3.8.0-31-generic с /initrd.img
  4. Причина, по которой мы выполняем замены в обеих группах vmlinuz и initrd , должна использовать преимущества символических ссылок, помещенных в /, которые указывают на их последнюю версию в /boot dir, так что наш пользовательский пункт меню всегда может указывают на самое последнее ядро ​​и не нуждаются в изменении, если вводится новое ядро.

  5. Вот и все. Выполните sudo update-grub для создания пользовательского меню, и вы закончили

ответ дан Flint 08.07.2012 в 12:11
источник
1

См:

Руководство Grub 2

Если у меня есть время, я попытаюсь документировать, как ...

    
ответ дан david6 02.07.2012 в 10:51