如何在没有图形服务器的情况下启动 Linux 系统

Sek*_*mty 7 linux boot xorg grub command-line

我想知道应该怎么做才能在 CLI 环境中启动 Linux 系统,而无需启动 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
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*iae 22

你问的问题我不是很清楚,所以我给你几个可能的答案,希望你能找到你感兴趣的那个。

  1. 您可以在下次启动时通过转到/etc/default/grub,找到该行来禁用 X 服务器

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    
    Run Code Online (Sandbox Code Playgroud)

    并将其修改为

    GRUB_CMDLINE_LINUX_DEFAULT="text"
    
    Run Code Online (Sandbox Code Playgroud)

    现在你需要更新 grub,

    update-grub
    
    Run Code Online (Sandbox Code Playgroud)

    你就完成了。

您可以反之亦然以重新启用 X 服务器。

  1. 您可以禁用您的窗口管理器:假设您使用的systemd是现在大多数 Linux 发行版都在使用的,

    systemctl disable kdm
    
    Run Code Online (Sandbox Code Playgroud)

    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
     }
    
    Run Code Online (Sandbox Code Playgroud)

    (请确保你适应/dev/sda1msdos1您的配置)。这只会在您的 GRUB2 菜单中生成一个您可能希望偶尔使用的条目。

  3. 如果您想要的只是文本登录,即使图形会话已经开始,请记住组合Ctrl+ Alt+ F1(或F2- F6)将为您提供文本登录。此外,您可以在此文本登录中禁用您的窗口管理器,

    sudo systemctl stop gdm
    
    Run Code Online (Sandbox Code Playgroud)

    (ord kdm, lightdm, sddm,或任何您使用的),并且您有一个纯文本登录,没有运行图形会话。

  4. 最后,当您在图形配置中遇到一些意外错误(更新出错?)时,您可能希望诉诸纯文本引导,这让您没有意识到(,没有为解决方案3做好准备)。如果您在GRUB停留在命令提示符下,你可以使用Terdon的建议适当修改,因为,因为它的立场,它工作对我的Debian和Arch Linux的系统,但下列情况:不是追加textlinux该行Grub 按照 Terdon 的建议显示,输入3 (3) 代替;例如,

    linux   /boot/vmlinuz-4.0.0-1-amd64 root=UUID=5e285652 ro  quiet 3
    
    Run Code Online (Sandbox Code Playgroud)

    这将成功引导您进入运行级别 3,这是具有网络但没有显示管理器的 CLI。


ter*_*don 6

好吧,一次性启动到文本模式的最简单方法是在 GRUB2 屏幕上选择要启动的内核条目,点击E,向下滚动到该linux行并添加text到末尾。例如:

linux   /boot/vmlinuz-4.0.0-1-amd64 root=UUID=5e285652 ro  quiet text
Run Code Online (Sandbox Code Playgroud)

然后,按F10Ctrl+X启动。