4

Я хотел бы знать, что нужно сделать для загрузки системы Linux в среде CLI, не запуская при этом X графический сервер.

Меня интересует временное решение, в идеале

  • команда или серия команд, которые могут быть запущены на терминале Grub (та, которую вы получаете, когда нажимаете C);
  • или добавив запись в меню KDM, где вы выбираете среду рабочего стола;

а не постоянное изменение в системе (стандартное поведение должно состоять в загрузке с графическим интерфейсом по умолчанию).


По запросу я добавляю соответствующий контент /boot/grub2/grub.cgf

menuentry 'openSUSE 13.2' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-179689d2-d2f3-4ec8-9cc3-01ec946c6b11' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos 
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  179689d2-d2f3-4ec8-9cc3-01ec946c6b11
    else
      search --no-floppy --fs-uuid --set=root 179689d2-d2f3-4ec8-9cc3-01ec946c6b11
    fi
    echo    'Loading Linux 3.16.7-24-desktop ...'
    linux   /boot/vmlinuz-3.16.7-24-desktop root=UUID=179689d2-d2f3-4ec8-9cc3-01ec946c6b11   quiet quiet liveinstall lang=it_IT resume=/dev/disk/by-id/ata-WDC_WD5000BEVT-00A0RT0_WD-WXL1AC0U9725-part7 splash=silent quiet showopts vga=803
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd-3.16.7-24-desktop
}

4 ответа4

11

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

  1. Вы можете отключить X-сервер при следующей загрузке, перейдя в /etc/default/grub и найдя строку

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    и изменив его в

    GRUB_CMDLINE_LINUX_DEFAULT="text"
    

    Теперь вам нужно обновить grub,

    update-grub
    

    и вы сделали.

Вы можете сделать наоборот, чтобы снова включить X-сервер.

  1. Вы можете отключить диспетчер окон: при условии, что вы используете systemd , что в настоящее время делает большинство дистрибутивов Linux,

    systemctl disable kdm
    

    или gdm lightdm что вы используете.

  2. Если вы считаете, что можете изменить свое решение, иногда, после запуска загрузки, добавьте в файл /etc/grub.d/40_custom следующую ручную запись:

     menuentry 'Ubuntu (Text mode)' --class ubuntu {
     recordfail
     insmod gzio
     insmod part_msdos
     insmod ext2
     set root='hd0,msdos1'
     linux   /vmlinuz root=/dev/sda1 ro   text
     initrd  /initrd.img
     }
    

    (убедитесь, что вы адаптируете /dev/sda1 и msdos1 к вашей конфигурации). Это приведет к появлению в вашем меню GRUB2 только одной записи, которую вы можете иногда использовать.

  3. Если вам нужен только текстовый вход в систему, даже когда начался графический сеанс, помните, что комбинация Ctrl+Alt+F1 (или F2 - F6) даст вам только текстовый вход. Кроме того, вы можете затем отключить диспетчер окон из этого текстового входа в систему,

    sudo systemctl stop gdm
    

    (ord kdm, lightdm, sddm, или что вы используете), и там у вас есть чисто текстовый логин, без графического сеанса.

  4. Наконец, вы можете захотеть прибегнуть к загрузке только с текста, когда вы столкнулись с какой-то неожиданной ошибкой в вашей графической конфигурации (обновление пошло не так?), Которое застало вас врасплох (т. Е. Без подготовки к решению 3). Если вы застряли в командной строке в grub, вы можете использовать предложение Тердона, соответствующим образом измененное, потому что в его нынешнем виде оно не работает в моих системах Debian и Arch Linux, но работает следующим образом: вместо добавления text в строку linux на дисплее Grub, как предложил Terdon, вместо этого введите 3 (три); например,

    linux   /boot/vmlinuz-4.0.0-1-amd64 root=UUID=5e285652 ro  quiet 3
    

    Это успешно загрузит вас на уровень запуска 3, который является CLI с сетью, но без диспетчера дисплея.

3

Ну, самый простой подход для однократной загрузки в текстовый режим состоит в том, чтобы выбрать запись ядра, которую вы хотите загрузить, когда на экране GRUB2 нажмите E, прокрутите вниз до строки linux и добавьте text в конец. Например:

linux   /boot/vmlinuz-4.0.0-1-amd64 root=UUID=5e285652 ro  quiet text

Затем нажмите F10 или Ctrl+X для загрузки.

2

Скопируйте пасту из /etc /inittab:

# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

Следовательно, вы можете установить:

systemctl set-default multi-user.target

запускать только CLI

1

Пожалуйста, взгляните на эту статью: Как использовать Grub2 для загрузки Linux вручную

Непрямая загрузка по цепочке

Для Grub1, если вы хотите запустить ОС, которая может быть любой Dos, MS Windows, BSD, Solaris или Linux, установленной во 2-м разделе 1-го диска, командами Grub Legacy будет код:

root (hd0,1)
chainloader +1
boot

Для Grub2 команды немного отличаются, и изменения выделены красным Код:

set root=(hd0,2)
chainloader +1
boot

Прямая загрузка с именами файлов ядра и initrd

...

Скажем, если в моем Linux vmlinuz-2.6.18-6-686 и initrd.img-2.6.18-6-686 в подкаталоге /boot можно загрузить Linux с помощью команд кода Grub1:

root (hd0,1)
kernel  /boot/vmlinuz-2.6.18-6-686 root=/dev/sda11 ro 
initrd   /boot/initrd.img-2.6.18-6-686
boot

Для Grub2 соответствующими командами будет Code:

set root=(hd0,2)
linux  /boot/vmlinuz-2.6.18-6-686 root=/dev/sda11  
initrd   /boot/initrd.img-2.6.18-6-686
boot

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .