Ubuntu 11.10 修改默认运行级别,默认不启动图形界面,启动到字符界面


  1. Debian下的三大神器sysv-rc-conf, update-rc.d,rcconf,全部不起作用,明明里面已经显示GDM是不启动了,可是他还是启动。
  2. 自己切换到rc3.d下面去看,就发现问题了,根本就没有lightdm的启动连接
  3. 网上找了一些资料,都是非常陈旧的,比如,已经被11.10里面的upstart废弃的event.d,也是频繁出现在所谓的教程里面。
  4. 在Ubuntu下,运行级别的定义被迁移到了 /etc/init/rc-sysinit.conf,当然,他们在这里面加入的对inittab的支持,但是若按照同systemd一样的标准来看,这些shell脚本是“有害的”!
最后总算找到解决办法,实际上有两种方法:
1.内核级别的:
nano /etc/default/grub
修改
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
为:
GRUB_CMDLINE_LINUX_DEFAULT=” text”

然后运行下sudo update-grub2就可了
其实这个方法也可以在开机的时候按下grub2中的e,手动编辑为text,但是那是一次性的

2.基于upstart的”正统”方法:
ubuntu的upstart的体系下,/etc/init.d里面基本上都是连接到/lib/init/upstart-job的软连接,所以,对initscripts的请求全部转化为upstart事件,upstart系统对启动项目的管理全部根据/etc/init里面的配置文件来启动,可以启动lightdm的事件就让人咂舌
lightdm.conf

start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))

stop on runlevel [016]

可见,一旦发生文件系统初始化,DBUS总线启动和发生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger 这里面的任何一个事件,GDM就会被启动,只在运行级别在016的时候,GDM不启动。
所以,事件也就明了了、要在upstart层面干掉gdm,把上面的启动相关事件注释掉,改写下就行了


start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger)
and runlevel [245])
stop on runlevel [0136]


所以,
就算你清空整个rc3.d,upstart根本不管你。

如此这般,sysv-rc-conf, update-rc.d,rcconf,这三大神器,似乎就和残废了一样了