/ 中存储网

Ubuntu环境下运行等级设置以及引导加载程序路径问题的方法

2015-10-10 10:39:36 来源:中存储网

Linux运行等级共有7级:

0:系统直接关机
1:单用户模式
2:和等级3一致,但无NFS服务
3:完整的含有网络功能的纯文本模式
4:系统保留功能
5:与运行等级3类似,但使用X Window
6:系统重启

从上面7级可以看出,大家可以设置运行等级其实只能设置1,2,3,5。0和6我不用解释吧,一旦设置为4,系统会不断的自动关机或自动重启的。

默认情况下,要想修改默认运行等级,要修改/etc/inittab文件。但是Ubuntu系统并没有这个文件。而是需改/etc/init/rc-sysinit.conf这个文件:

description "System V initialisation compatibility" 
author  "Scott James Remnant <scott@netsplit.com>" 
 
start on filesystem 
stop on runlevel 
 
# Default runlevel, this may be overriden on the kernel command-line 
# or by faking an old /etc/inittab entry 
env DEFAULT_RUNLEVEL=3 
 
# There can be no previous runlevel here, but there might be old 
# information in /var/run/utmp that we pick up, and we don't want 
# that. 

# These override that 
env RUNLEVEL= 
env PREVLEVEL= 
 
task 
 
script 
# Check for default runlevel in /etc/inittab 
if [ -r /etc/inittab ] 
then 
eval "$(sed -nre 's/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAULT_RUNLEVEL="1";/p' /etc/inittab || true)" 
fi 
 
# Check kernel command-line for typical arguments 
for ARG in $(cat /proc/cmdline) 
do 
case "${ARG}" in 
-b|emergency) 
# Emergency shell 
[ -n "${FROM_SINGLE_USER_MODE}" ] || sulogin 
;; 
[0123456sS]) 
# Override runlevel 
DEFAULT_RUNLEVEL="${ARG}" 
;; 
-s|single) 
# Single user mode 
[ -n "${FROM_SINGLE_USER_MODE}" ] || DEFAULT_RUNLEVEL=S 
;; 
esac 
done 
# Run the system initialisation scripts 
[ -n "${FROM_SINGLE_USER_MODE}" ] || /etc/init.d/rcS 
 
# Switch into the default runlevel 
telinit "${DEFAULT_RUNLEVEL}" 
end script

看到env DEFAULT_RUNLEVEL=3这一行没,对了,这里就是系统默认的运行等级。大家可以通过修改这里的值来达到修改运行等级效果。

查看系统的运行等级:runlevel

切换系统运行等级:init  0~6

我直接将env DEFAULT_RUNLEVEL设置为1,也就是单用户模式进入后,系统竟然在准备进入选择用户的界面卡住不动了。解决方案就是系统重新启动,长按shirt键进入引导加载程序选择界面,选择第一个启动菜单,按e键,然后根据提示好像按ctrl+X使用root进入纯命令模式。将之前修改的值改回到原来的值,重启,ok!

修改引导加载程序默认是修改/boot/grub/menu.lst文件,但是ubuntu9.10没有这个文件,而是修改/boot/grub/grub.cfg这个文件。