我想知道是否可以在 Ubuntu(11.04)下的 grub 中创建自定义启动菜单项,将系统启动到终端而不是登录屏幕。
效果应该类似于(rescue mode)
启动菜单项中的 root shell,它允许我访问 root shell 或权限较低的 shell,而无需明确选择“root shell”。
如果可能的话,我还想自定义启动的 shell,最好是通过指定要运行的 shell 脚本,以便我可以启动 bash 以外的其他程序,例如 vim。
我的目的是创建一个“快速”启动模式,让我在几秒钟内就能拥有一个可用的系统(例如做笔记),而无需启动 GUI。因此,最好silent
打开此选项。
笔记:有一个要求:不删除系统现有的任何功能。也就是说,gnome 桌面(和 Unity)应该保持完整,并且只有当我选择此模式时才会被禁用。
答案1
如果我是你的话,我会先在虚拟机或其他设备上测试它(GRUB2 是一个可怕的东西),但根据这篇博文这不应该比改变更难
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
到
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash text”
在 中/etc/default/grub
。这会产生副作用,迫使您运行startx
以启动 x。
我发现的另一个解决方案就是简单地gdm
从“偏好设置”中的 Ubuntu 服务列表中禁用它。
答案2
这是我能根据一个答案找到的解决问题的最佳方法。
最终的解决方案是:
- 创建一个自定义菜单项,
/etc/grub.d/40_Custom
并将内核选项text
打开,以按照我的意愿阻止 gdm 自动启动,从而提高启动速度。 - 创建一个权限较低的用户
<user name>
(我个人选择使用 acl 阻止其访问我的主目录,剥夺其管理权限并使用没人能记住的假密码。) 编辑
/etc/init/tty2.conf
以启用自动登录:- 改成
exec /sbin/getty -8 38400 tty2
exec /sbin/getty -l <path to logon script> -8 38400 tty2
在文件中
<path to logon script>
添加以下行:#!/bin/sh login -f <user name>
- 执行
sudo chown root:root <path to logon script>
- 执行
sudo chmod 755 <path to logon script>
- 改成
如果你想在 tty2 中使用 vim 快速记笔记,那么(如果你不知道 vim 是什么,请跳过)
- 安装 vim
- 安装笔记.vimvim 插件
以身份登录
<user name>
并将以下行添加到~/.bashrc
vim -c :RecentNotes
记得用相应的值替换尖括号中的内容。