使用 Grub2 以文本模式启动 Linux

使用 Grub2 以文本模式启动 Linux

对于我创建的虚拟机以及我使用的旧计算机,我想关闭 gdm/lightdm 以获得更好的性能。我不喜欢启动到单用户模式(“linux single”),因为使用 root 是一种不好的做法,而且我还希望保留一种简单的方法来重新启动到图形模式,因此当需要图形模式时,不需要额外的命令。

我认为最有用的方法是将 Grub 配置为除了常规启动和恢复模式之外还显示“Ubuntu 文本模式”的菜单项,并将文本模式设置为默认模式。我尝试自己做,但 Grub2 配置文件对/etc/grub.d/我来说看起来太神秘了,虽然/etc/defaults/grub可以设置启动为文本,但它似乎不允许保留图形启动的菜单项以及将文本或图形设置为默认,我更喜欢让启动过程对新手用户保持简单,这样他们就不需要手动启动服务或在 Grub2 中编辑内核启动命令行。

类似主题:https://askubuntu.com/a/196613/19967https://askubuntu.com/a/79682/19967- 完全删除 GUI 并从命令行而不是 Grub2 菜单项启动它。

答案1

实现您想要的一个简单的方法是编辑文件/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
}

当然,您需要用正确的分区(或者如果您愿意,可以用 UUID)替换 sda1 和 msdos1。

运行结束后sudo update-grub,新条目应添加到列表末尾。

这只会创建一个手动条目。如果您想要为每个内核创建一个自动条目,那么您必须编辑/etc/grub.d/10_linux

答案2

您需要在 /etc/grub.d/40_custom 中添加一个条目

成为 root

打开文件 /boot/grub/grub.cfg

将与我粘贴的内容类似的部分复制至 /etc/grub.d/40_custom

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7942e83c-f00f-4c7f-9ba6-cccf2284747c' {
recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  b8763e17-749f-4d80-b78e-276a3c8c75ef
    else
      search --no-floppy --fs-uuid --set=root b8763e17-749f-4d80-b78e-276a3c8c75ef
    fi
    linux   /vmlinuz-3.6.0-999-i7 root=UUID=7942e83c-f00f-4c7f-9ba6-cccf2284747c ro   crashkernel=384M-2G:64M,2G-:128M quiet splash $vt_handoff
    initrd  /initrd.img-3.6.0-999-i7
}

以上部分位于标记的部分

### BEGIN /etc/grub.d/10_linux ###

将文本更改quiet splash $vt_handoffquiet splash text

跑步:grub-mkconfig -o /boot/grub/grub.cfg

就应该这样。

相关内容