Добавьте пункт меню GRUB для начальной загрузки в терминал

Хорошо, это - то, чего я пытаюсь достигнуть:

Имейте отдельный пункт меню в GRUB, так, чтобы я мог выбрать его и загрузиться прямо в командную строку - который является: без среды рабочего стола, но отъезда существующего пункта меню (для начальной загрузки Ubuntu, как обычно) неповрежденный.

Я изучил /etc/default/grub но там не кажется ничем, чтобы сделать там. И также /boot/grub/grub.cfg который автоматически генерируется, таким образом, я не думаю, что это была бы хорошая идея отредактировать его непосредственно.

Как я должен пойти об этом? Какая-либо идея?


Обновление: существующий ответ (предполагающий, что этим вопросом был дубликат) был устаревшим. Для правильного решения см. принятый ответ ниже, который работает красиво. (по крайней мере, для 16,04 +, поскольку это кажется),

2
задан 28 April 2018 в 21:48

1 ответ

Один

Откройте файл /boot/grub/grub.cfg и найдите раздел, который загружает Вашу "обычную" Ubuntu.

Для меня это:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b8f25f1e-a169-4aaa-9f05-90e49359d865' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        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  b8f25f1e-a169-4aaa-9f05-90e49359d865
        else
          search --no-floppy --fs-uuid --set=root b8f25f1e-a169-4aaa-9f05-90e49359d865
        fi
        linux   /boot/vmlinuz-4.13.0-39-generic.efi.signed root=UUID=b8f25f1e-a169-4aaa-9f05-90e49359d865 ro  
        initrd  /boot/initrd.img-4.13.0-39-generic
}

В копии, которые разделяют в новый файл, говорится textmode.txt.

Два

Перейдите в /etc/grub.d и создайте (или редактирование) файл 40_custom.

Скопируйте следующий "заголовок" в файл:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

Добавьте menuentry от textmode.txt в файл, но изменение некоторые значения (см. ниже):

menuentry 'Ubuntu (text mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b8f25f1e-a169-4aaa-9f05-90e49359d865' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        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  b8f25f1e-a169-4aaa-9f05-90e49359d865
        else
          search --no-floppy --fs-uuid --set=root b8f25f1e-a169-4aaa-9f05-90e49359d865
        fi
        linux   /vmlinuz root=UUID=b8f25f1e-a169-4aaa-9f05-90e49359d865 systemd.unit=multi-user.target ro
        initrd  /initrd.img
}

Значения, которые должны быть изменены:

  • menuentry текст: измените его от 'Ubuntu' кому: 'Ubuntu (text mode)' (или независимо от того, что Вам нравится появляться в меню),
  • linux строка: измените его на linux /vmlinuz root=UUID=... systemd.unit=multi-user.target ro. Удостоверьтесь, что UUID остается таким же.
  • initrd строка: измените его на /initrd.img

Удостоверьтесь, что у Вас есть символьные ссылки в Вашем / каталог от /vmlinuz и /initrd.img к текущим версиям. Это - значение по умолчанию, так или иначе.

Три

Выполненный

sudo update-grub

Различие между этим подходом и этим ответом на очень похожий вопрос то, что в последних версиях Ubuntu строка

linux   /boot/vmlinuz-3.8.0-31-generic root=UUID=... ro quiet splash $vt_handoff

потребности, которые будут заменены

linux   /vmlinuz root=UUID=... systemd.unit=multi-user.target ro

Я не уверен, что недавний на самом деле средства, но я предполагаю, что это 16.04, когда systemd был представлен.

2
ответ дан 2 December 2019 в 03:33

Другие вопросы по тегам:

Похожие вопросы: