it-swarm.com.de

Fügen Sie das Menüelement GRUB hinzu, um das Terminal zu starten

OK, das versuche ich zu erreichen:

Haben Sie eine separate Menüoption in GRUB, so dass ich sie auswählen und direkt in der Befehlszeile booten kann - das heißt: ohne Desktop-Manager, aber den vorhandenen Menüpunkt (um Ubuntu wie gewohnt zu booten) intakt zu lassen.

Ich habe in /etc/default/grub geschaut, aber dort scheint nichts zu tun zu sein. Und auch /boot/grub/grub.cfg, das automatisch generiert wird, daher halte ich es nicht für eine gute Idee, es direkt zu bearbeiten.

Wie soll ich vorgehen? Irgendeine Idee?


pdate: Die vorhandene Antwort (was darauf hindeutet, dass es sich bei dieser Frage um ein Duplikat handelt) war veraltet. Die richtige Lösung finden Sie in der unten akzeptierten Antwort, die sehr gut funktioniert. (zumindest für 16.04+ wie es scheint)

2
Dr.Kameleon

Ein

Öffne die Datei /boot/grub/grub.cfg und finde den Abschnitt, der dein "normales" Ubuntu bootet.

Für mich ist das:

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
}

Kopieren Sie diesen Abschnitt in eine neue Datei, sagen Sie textmode.txt.

Zwei

Gehen Sie zu /etc/grub.d und erstellen (oder bearbeiten) Sie die Datei 40_custom.

Kopieren Sie den folgenden "Header" in die Datei:

#!/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.

Fügen Sie den Menüeintrag von textmode.txt zur Datei hinzu, ändern Sie jedoch einige Werte (siehe unten):

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
}

Folgende Werte müssen geändert werden:

  • Der Menüeintrag Text: Ändern Sie ihn von 'Ubuntu' in 'Ubuntu (text mode)' (oder wie auch immer Sie im Menü erscheinen möchten)
  • Die linux -Zeile: Ändern Sie sie in linux /vmlinuz root=UUID=... systemd.unit=multi-user.target ro. Stellen Sie sicher, dass die UUID gleich bleibt.
  • Die initrd -Zeile: Ändern Sie sie in /initrd.img

Stellen Sie sicher, dass in Ihrem / -Verzeichnis Symlinks von /vmlinuz und /initrd.img zu den aktuellen Versionen vorhanden sind. Dies ist sowieso die Standardeinstellung.

Drei

Lauf

Sudo update-grub

Der Unterschied zwischen diesem Ansatz und diese Antwort zu einer sehr ähnlichen Frage ist, dass in neueren Versionen von Ubuntu die Zeile

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

muss durch ersetzt werden

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

Ich bin nicht sicher, was aktuelles eigentlich bedeutet, aber ich denke, es ist 16.04, wenn systemd wurde vorgestellt.

2
PerlDuck