linux启动
‘壹’ linux启动过程步骤
这是一个非常复杂的过程,但是可以简单的概括为如下几个步骤,每一个步骤你可以构思一些巧妙的实现来加深体。
启动第一步--加载BIOS
当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。
启动第二步--读取MBR
众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。
系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0x7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。
启动第三步--Boot Loader
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。
我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。
系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
启动第四步--加载内核
根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。
启动第五步--用户层init依据inittab文件来设定运行等级
内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。
其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
关于/etc/inittab文件的学问,其实还有很多,在后序文章中设计到的,卖个关子,敬请期待,呵呵
启动第六步--init进程执行rc.sysinit
在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的:P
启动第七步--启动内核模块
具体是依据/etc/moles.conf文件或/etc/moles.d目录下的文件来装载内核模块。
启动第八步--执行不同运行级别的脚本程序
根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
启动第九步--执行/etc/rc.d/rc.local
你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。
启动第十步--执行/bin/login程序,进入登录状态
此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。:)
‘贰’ Linux系统的启动
这个是命令行界面
不是图形界面
可以输入用户名
然后输入密码登录
命令行操作
如果你是想知道为什么没有启动界面,那么,只能告诉你组件坏了,怎么修复呢,重做系统吧
‘叁’ Linux操作系统 怎么开机
1、Linux系统开机和普通Windows系统开机一样啊,打开主机电源和显示器电源即可。
‘肆’ linux 怎么启动startx
输入命令---init5然后敲回车就好了。(会提示选择分辨率)
这个命令只是一次性的,下次重启还会进入命令行界面,没有图形界面,如果想以后每次都进图形界面的话,只有改配置文件-----敲入命令-----vi/etc/inittab----打开后找到-----id:3initdefault:-----将其中的3改成5,重启一下就好了。
注意:这不是命令,只是显示当前的状态和用户是管理员超级用户。
‘伍’ linux 如何启动,停止,查看服务
可以使用chkconfig --list来列出所有的系统服务,也可以使用service --status-all来查看启动的服务。通过service 服务名 stop 命令来停止服务。
命令说明:
chkconfig命令
chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
语法
chkconfig(选项)
选项
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
--level:指定读系统服务要在哪一个执行等级中开启或关毕。
等级代号列表:
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用-代替运行级。第二行对服务进行描述,可以用\跨行注释。
例如random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
实例
chkconfig --list #列出所有的系统服务。
chkconfig --add httpd #增加httpd服务。
chkconfig --del httpd #删除httpd服务。
chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig --list #列出系统所有的服务启动情况。
chkconfig --list mysqld #列出mysqld服务设置情况。
chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。
chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。
service命令
service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
语法
service(选项)(参数)
选项
-h:显示帮助信息;
--status-all:显示所服务的状态。
参数
服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
控制命令:系统服务脚本支持的控制命令。
‘陆’ linux如何启动图形界面
安装有图形界面的情况下,启动linux在终端下输入:startx即可进入X11的图形操作界面。
如果希望开机进入图形界面修改inittab文件。
vi /etc/inittab
找到id:3:initdefault:这行
按i进入编辑模式,将3改为5。
按esc退出编辑。
输入 :qw保存退出。
inittab有下几种模式:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode //单用户模式
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
//多用户模式,没有网络文件系统
# 3 - Full multiuser mode //完全多用户模式
# 4 - unused
# 5 - X11 //窗口模式
# 6 - reboot (Do NOT set initdefault to this)
‘柒’ linux启动
就是因为你用绿色版才会出连运行都运行不了的问题。
改用virtualbox吧。
‘捌’ 怎么在linux启动的时候执行一个命令
有两种方式:一种方式是根据运行级别配置服务,一种方式是执行本地特殊配置。
举例,任务是启动时运行命令cvslockd:
方式一:
1、 建立自启动脚本/etc/rc.d/init.d/cvslockd,内容为:
#!/bin/bash
/usr/local/bin/cvslockd
设置文件的属性为可执行:
#chmod +x /etc/rc.d/init.d/cvslockd
2、查看计算机运行级别,在文件/etc/inittab里看到id:5:initdefault:,则此系统运行级别为5;
3. 到/etc/rc5.d目录下,把你要执行的可执行文件做一个软连接,而且在命名的时候要以大写S字母开头,S之后的数字大小代表执行顺序的先后,数字越大越后执行。
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc5.d/S100cvslockd
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc0.d/K20cvslockd
方式二:
在/etc/rc.d/rc.local 添加 exec /usr/local/bin/cvslockd
该方式是在最后启动cvslockd。
‘玖’ linux怎么打开程序
从命令行或者 shell 提示符执行应用程序的一个常用方法是使用 ./ 命令。如果您在 Linux 中使用句号 (.) 和正斜杠 (/),就意味着告诉环境您想要以可执行文件运行该文件。例如,运行一个名为 myapp 的可执行文件,您可以使用 ./myapp 命令。同样地,您可以在文件名之前加上语言环境,比如:
● sh
● php
● python
● perl
● java
但更多情况下,套装应用程序使用 shell 脚本,以 #! 符号设置环境变量提供该语言的运行时可执行路径,比如 #!/usr/bin/python。您也应该熟悉这种方法。
清单 1 使用 catalina.sh 默认脚本通过 ./ 方法启动 Apache Tomcat 应用程序服务器。然后,使用 sh 方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修改就可以启动该服务。
清单 1. 从命令行执行应用程序
$ ./catalina.sh start
Using CATALINA_BASE: /opt/apache-tomcat-7.0.26
Using CATALINA_HOME: /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
$ ./catalina.sh stop
.....................................................................
$ sh catalina.sh start
Using CATALINA_BASE: /opt/apache-tomcat-7.0.26
Using CATALINA_HOME: /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar 可参考下《Linux就该这么学》了解更多Linux知识。
‘拾’ linux怎么样能启动一个服务
1.chkconfig: 345 99 01
345:表示启动级别。启动级别包括1,2,3,4,5,6,其中常用的是3和5。3表示文字模式启动,5表示图形界面启动。
99:表示系统启动后,每个服务的启动顺序。启动顺序是从标记为00的服务开始。通常不是特别重要的服务可以用99之后数字,如100,101。。。
01:表示系统关闭时,最先关闭的服务。
2.# chkconfig: 345 99 01# description: Nagios network monitor这2句话加在哪儿?
Nagios的配置文件的开头如下所示:
cat /etc/init.d/npcd
#!/bin/sh
#Init Script for NPCD
#chkconfig:345 99 01
#description:Nagios network monitor
。。
3.chkconfig --level 345 smb on
该命令是根据/etc/init.d/smbd文件在/etc/rc.d/rc3.d/和/etc/rc.d/rc4.d/和/etc/rc.d/rc5.d/的目录下建立链接,达到在3,4,5启动级别时开机自动启动的目的。
另外:chkconfig smb on 是在所有启动级别时开机自动启动。
4. 要想开机不启动某个服务怎么设置?~!
chkconfig smb off
是在所有启动级别时开机都不自动启动。
chkconfig --level 345 smb off
是在3,4,5启动级别时开机不自动启动。