LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2121|回复: 10

如何启动Debian的时候不直接进入图形界面而是进入字符界面?

[复制链接]
发表于 2005-2-17 18:55:07 | 显示全部楼层 |阅读模式
我是讲init.d下面的gdm删除了,不知这个方法可不可以?我记得以前曾经看到另外的一个方法的。去掉默认的service
发表于 2005-2-17 19:02:51 | 显示全部楼层
init.d下面的gdm删除了, 是可以的.
回复 支持 反对

使用道具 举报

发表于 2005-2-17 19:03:08 | 显示全部楼层
有几种方法:

apt-get install rcconf
然后运行rcconf,取消kdm或者是gdm。

还有就编辑/etc/X11/default-x11-manager
将所有的内容去掉。就OK了。
回复 支持 反对

使用道具 举报

发表于 2005-2-17 19:24:56 | 显示全部楼层
不用删任何东西,只要编辑/etc/inittab文件,把其中的runlevel从5改成2就行了。

修改runlevel来选择系统环境类型是Unix/Linux下的标准方法,具有通用性。
回复 支持 反对

使用道具 举报

发表于 2005-2-17 19:32:03 | 显示全部楼层
也就是说不需要装gdm或kdm就能选择系统环境?
回复 支持 反对

使用道具 举报

发表于 2005-2-17 19:32:13 | 显示全部楼层
Post by Lightning
不用删任何东西,只要编辑/etc/inittab文件,把其中的runlevel从5改成2就行了。

修改runlevel来选择系统环境类型是Unix/Linux下的标准方法,具有通用性。

haha,电老大,这个在 Debian 下不通用!
回复 支持 反对

使用道具 举报

发表于 2005-2-17 19:44:22 | 显示全部楼层
我都是用sarge 完成基本系统安装后,再在console下面安装X的。从来没遇到过楼主的问题,看来还得再试试各种情况下的配置。
回复 支持 反对

使用道具 举报

发表于 2005-2-17 20:45:55 | 显示全部楼层
debian是否还有其他不同的地方?是否会影响到像matlab这样的工程软件的安装?因为这些商业软件都是以商业linux发行版为主要平台的,不知道在debian这样的社区linux发行版下是否会有问题?
回复 支持 反对

使用道具 举报

发表于 2005-2-17 20:55:08 | 显示全部楼层
不错。改变运行级别是行不通的。
debian和其他的发行版是不一样的。
看一下debian的启动过程就知道了。
内核引导->init程序->/etc/init.d/rcS.d, 这个脚本的内容一看明白了。是运行/etc/rcS.d里的脚本用来设置各种东东。网络,硬盘参数,硬件参数。如果存在/etc/rc.boot目录,则运行里面的脚本。
然后开始再处理运行级别内的东东,
其实看看配置文件/etc/inittab就明白了。
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
回复 支持 反对

使用道具 举报

发表于 2005-2-18 00:34:35 | 显示全部楼层
以前,因为自已从来不关心这个问题,都是先装好基本系统后再在console下手工安装X的,所以对这个runlevel的问题也没有关注过。
为了给楼主一个完整的答案,我又分析了一下debian的启动过程。下面是我的分析
-----------
系统:sarge

总流程:开机-->BIOS-->MBR-->Boot loader-->Kernel-->init-->各种守护进程

其中我们要讨论的是init进程所做的事情
/etc/inittab
# The default runlevel.
id:2:initdefault:                <---- 这句是用来设置缺省的runlevel,2 表示multiuser

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS        <---- 用于系统初始化,执行/etc/rcS.d 目录中的各脚本的符号连接
该句语分为四个部分:
第一部分为1到4个字符长度的id  --- si:
第二部分为runlevel(运行级别)
第三部分为在这个runlevel下将要执行的操作描述  ---- sysinit (该操作描述为一个枚举值,并不能由用户随意填写,具体枚举值可以参阅man inittab)
第四部分为实际执行操作的脚本  -- /etc/init.d/rcS
                rcS 脚本内容分析:

                1 设置一些通用环境变量
                  PATH=/sbin:/bin:/usr/sbin:/usr/bin      
                  runlevel=S
                  prevlevel=N
                  umask 022
                  export PATH runlevel prevlevel

                2 如果是安装完后的第一次启动,则运行stage2配置程序
                   if [ -x /sbin/unconfigured.sh ]
                   then
                       /sbin/unconfigured.sh
                   fi

                3 为执行启动配置脚本前预设部分环境变量
                   . /etc/default/rcS
                   export VERBOSE

                4  为一个for 循环语句,执行/etc/rcS.d/中的所有S符号链接文件
                    在/etc/rcS.d/目录中的S符号链接文件。其中主要为挂载文件系统、设置硬盘参数、启动各种模块、网卡设置和配置xfree86的socket 目录。并不存在,也不应该存在有对 X的直接启动脚本文件。

                5  运行/etc/rc.boot (这是为了兼容性,一般是用不到的)

~~:S:wait:/sbin/sulogin  <--- 若是以单用户方式登入(linux single ),则以wait模式执行sulogin登入程序

以下就是楼主所说问题所在的重点,执行在不同的runlevel引导时的启动脚本
l0:0:wait:/etc/init.d/rc 0   运行级别0:关机
l1:1:wait:/etc/init.d/rc 1   运行级别1:单用户
l2:2:wait:/etc/init.d/rc 2   运行级别2-5:多用户环境,其中runlevel 5通常为具有网络功能的多用户X环境。与debian相比较,redhat的运行级别设置为:2 不带网络功能的多用户环境;3是带网络功能的多用户环境;4通常保留;5 与debian相同。所以debian的runlevel 2 其实等同于redhat 的runlevel 3
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6  运行级别6:重启

随后的一些部分是配置电源失效,三键大法的操作和在启动getty进程,因为与楼主的问题关系不大,暂且略过。

经过以上的分析,我们可以看到,如果要在启动时,能直接进入X,并运行各种X-Display-Manager,则至少要在/etc/rc$runlevel.d/目录中加入对/etc/init.d/[xdm|gdm|kdm]的S符号链接。

在我的系统里,rc2.d下面并没有该S符号链接,事实上在安装的时候就没有存在过,所以我不清楚大家当时在安装sarge时是怎么会在rc2.d/下面产生对X-display-manager的S符号链接文件的。
而在的我的rc5.d下面存在有一个指向/etc/init.d/gdm的S99gdm符号链接文件。所以我如果把runlevel改成5就能直接启动gdm。

以上对debian boot的分析并不完整,也可能会存在错误,如有错请各位指出。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表