Как загрузить систему Linux без графического сервера

Вопрос или проблема

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

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

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

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


Как и запрашивалось, я добавляю соответствующее содержимое /boot/grub2/grub.cfg

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    'Загрузка 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    'Загрузка начального рамдиска ...'
    initrd  /boot/initrd-3.16.7-24-desktop
}

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

  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 (или F2F6) даст вам именно это — текстовый вход. Более того, вы можете затем отключить ваш оконный менеджер из этого текстового входа,

    sudo systemctl stop gdm
    

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

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

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

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

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

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

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

Копируйте и вставляйте из /etc/inittab:

# systemd использует 'targets' вместо уровней выполнения. По умолчанию есть две основные цели:
#
# multi-user.target: аналогично уровню выполнения 3
# graphical.target: аналогично уровню выполнения 5
#
# Чтобы просмотреть текущую целевую по умолчанию, выполните:
# systemctl get-default
#
# Чтобы установить целевую по умолчанию, выполните:
# systemctl set-default TARGET.target
#

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

systemctl set-default multi-user.target

чтобы работать только в CLI

Пожалуйста, посмотрите на эту статью: Как использовать 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 соответствующие команды будут:

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

Чтобы отключить X сервер, я редактирую файл /etc/default/grub в строке

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

изменяя на

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash init 3"

затем просто перезагружаю, и если вы хотите запуститься в графическом режиме, войдите в систему и выполните команду startx

Ответ 2024, с использованием Debian Bookworm (live)

Это работает под живым образом, но это также работает с обычным grub!

Загрузка (live) linux под systemd без графического сервера

Часто используя Живые установочные образы в качестве инструмента обслуживания в самых разных ситуациях, мне иногда интересно загрузиться без запуска графического сервера и, конечно, без запуска графического демонa входа.

Для этого, так как теперь systemd установлен по умолчанию, правильный способ, который я использовал, был:

Конечно, это работает не только для живых систем, но и для обычной установки. Единственное различие может быть в том, как редактировать командную строку:

На меню grub:

  • Tab, чтобы войти в режим редактирования строки. Вы находитесь в конце командной строки ядра,
  • Лево, Лево, Лево, … до конца слова splash,
  • затем Ctrl+w, чтобы удалить слово splash (остерегайтесь не удалить пробел перед splash)
  • затем добавьте:
systemd.mask=gdm

затем Return.

Конечно, в зависимости от версии live, вам может понадобиться заменить gdm на lightdm, kdm, sddm или другое.

systemd.mask=gdm systemd.mask=kdm systemd.mask=sddm

Если вы не уверены, вы даже можете заблокировать больше демонов, чем установлено! Конечно, вам придется больше жать на клавиши…

Затем, вы можете нажать Ctrl+e, чтобы перечитать всю командную строку загрузки, прежде чем нажать Return для запуска ядра.

Ответ или решение

Для загрузки системы Linux в текстовом режиме без графического сервера можно использовать несколько подходов, включая временные изменения в конфигурации загрузки GRUB. Рассмотрим несколько вариантов.

1. Изменение параметров загрузки GRUB

На экране GRUB:

  1. Выберите нужную запись для загрузки и нажмите клавишу E, чтобы отредактировать параметры загрузки.
  2. Найдите строку, начинающуюся с linux. В конце этой строки добавьте text (например: linux /boot/vmlinuz-3.16.7-24-desktop root=UUID=179689d2-d2f3-4ec8-9cc3-01ec946c6b11 quiet text).
  3. Нажмите Ctrl + X или F10 для загрузки с измененными параметрами.

Это позволит вам загрузиться в текстовом режиме один раз, не внося изменений в настройки системы.

2. Добавление кастомной записи в GRUB

Вы можете добавить отдельный пункт меню в GRUB для загрузки в текстовом режиме:

  1. Откройте файл /etc/grub.d/40_custom с правами суперпользователя.
  2. Добавьте следующий блок:

    menuentry 'Linux (Text mode)' {
       insmod gzio
       insmod part_msdos
       insmod ext2
       set root="hd0,msdos5"  # Замените на ваши параметры
       linux   /boot/vmlinuz-3.16.7-24-desktop root=UUID=179689d2-d2f3-4ec8-9cc3-01ec946c6b11 quiet text
       initrd  /boot/initrd-3.16.7-24-desktop
    }
  3. Сохраните изменения и выполните команду update-grub, чтобы обновить меню GRUB.

Теперь в вашем меню GRUB будет пункт для загрузки в текстовом режиме.

3. Использование системных целей (Systemd)

Если ваша система использует systemd, вы можете временно установить режим многопользовательской работы без графической оболочки:

  1. На экране загрузки GRUB нажмите E, чтобы отредактировать параметры.
  2. В строке, начинающейся с linux, добавьте systemd.target=multi-user.target к концу строки.
  3. Нажмите Ctrl + X для загрузки с измененными параметрами.

Это приведет к загрузке системы без графической среды и с текстовым интерфейсом.

Дополнительные советы

  • Если вы хотите остановить графический менеджер входа после загрузки, переключитесь на текстовую консоль с помощью Ctrl + Alt + F1 или F2 и остановите соответствующий менеджер с помощью команды:

    sudo systemctl stop gdm   # Для Gnome
    sudo systemctl stop lightdm  # Для LightDM
    sudo systemctl stop sddm  # Для SDDM
  • Использование комбинации клавиш Ctrl + Alt + F1 или F2 позволяет вам получить доступ к текстовым консолям, где вы можете производить дальнейшие действия.

Заключение

Вышеописанные методы позволяют вам временно загрузить систему Linux в текстовом режиме без графического интерфейса. Выбор метода зависит от ваших предпочтений и конфигурации системы.

Оцените материал
Добавить комментарий

Капча загружается...