linux系统如何启动
‘壹’ 嵌入式linux系统的启动流程是什么样的
1)
初始化
RAM
因为
Linux
内核一般都会在
RAM
中运行,所以在调用
Linux
内核之前
Bootloader
必须设置和初始化
RAM,为调用
Linux内核
做好准备。初始化
RAM
的任务包括设置
CPU
的控制寄存器参数,以便能正常使用
RAM
以及检测RAM
大小等。
2)
初始化串口端口
在
Linux
的启动过程中有着非常重要的作用,它是
Linux内核和用户交互的方式之一。Linux
在启动过程中可以将信息通过串口输出,这样便可清楚的了解
Linux
的启动过程。虽然它并不是
Bootloader
必须要完成的工作,但是通过串口输出信息是调试
Bootloader
和Linux
内核的强有力的工具,所以一般的
Bootloader
都会在执行过程中初始化一个串口作为调试端口。
3)
检测
处理器类型
Bootloader在调用
Linux内核前必须检测系统的处理器类型,并将其保存到某个常量中提供给
Linux
内核。Linux
内核在启动过程中会根据该处理器类型调用相应的初始化程序。
4)
设置
Linux启动参数
Bootloader在执行过程中必须设置和初始化
Linux
的内核启动参数。
5)
调用
Linux内核映像
Bootloader完成的最后一项工作便是调用
Linux内核。如果
Linux
内核存放在
Flash
中,并且可直接在上面运行(这里的
Flash
指
Nor
Flash),那么可直接跳转到内核中去执行。但由于在
Flash
中执行代码会有种种限制,而且速度也远不及
RAM
快,所以一般的
嵌入式系统
都是将
Linux内核拷贝到
RAM
中,然后跳转到
RAM
中去执行。
‘贰’ 简述linux系统的启动过程
这个简直他的一些技能过程,这个世界把它看完,这个要是他会针对下去内部流程障碍能够用三分钟跑了。
‘叁’ 在XP系统中如何启动Linux系统
你的问题没有说清楚,你怎么装的linux?
我猜测你是把linux完全装在了另外一个原来没有分区的硬盘上,那是从盘,系统是从主盘开始启动,根本找不到任何linux的东西.
有两个方法:
1.在你的Windows系统上,安装一个grub4dos,用以启用Linux系统
2.从新安装GRUB,注意别像你第一次那样装在了本地,要装在主引导记录上(MBR)
如果还不行就再从装一次linux吧
实在抱歉我没有安装grub
for
dos
的经验,以前我装双系统的时候把grub装在本地,启动后就没有红旗linux的选项,直接进了windows,我记得当时我的解决办法是把红旗5.0的系统盘放进去,从新把grub装在mbr上,就可以启动linux了。由于硬盘上已经有linux系统,安装程序会提示是否删除linux分区从新安装,当然选否,然后下一步就选grub的安装方式,安装程序不会从新拷贝安装整个系统,问题很快就解决了。我的描述和实际可能有点出入,大概就这个意思。
更多的技术细节请自己查找下资料吧,或另请高明。
‘肆’ 怎样快速启动Linux系统
Linux需要重新启动是少有的。可是一旦需要,Linux启动常常是缓慢的。幸好有一些加速的办法。其中一些方法不太难。咱们瞧一瞧吧。
#1: 撤消多余的服务
根据机器的用途,很多服务是不需要的。要是Linux只用作桌面,就不需要sendmail、httpd和另外许多服务。如果你的服务器只是Web服务器,也可以关掉许多服务。为此,可转到管理菜单,检查服务项目。只需撤消所有不想启动的服务选项。
#2: 撤消多余的内核模块
假如你的桌面连接到以太网,就不需要装载无线内核模块。这是较为困难的任务,可能需要重新编译内核,而编译内核不是可以轻松担当的工作。为此,你大概需要内核源代码。接着,按照编译内核的标准步骤进行。不同在于你要搜查系统,撤除所有不需要的模块。
查明系统中当前安装和运行的内核模块的最好方法是安装Bootchart。它不仅会给你一个适宜的模块清单,而且还会说明系统启动过程中发生的事情。还可以发出命令:chkconfig –list | grep 3:on,弄清楚正在运行什么服务。一旦知道装载了什么不需要的模块,就可以在内核重新编译期间将其移除。只要这样处理,编译的内核就完全适合你的体系结构。
#3: 使用轻型窗口管理器代替GNOME或KDE
我插入小脚印窗口管理器的原因是——它们大幅度减少图形(界面)启动时间。代替不得不额外等待启动GNOME或KDE的30到60秒,为什么不等待用于启动Enlightenment或者XFCE的2到10秒呢?它们不仅节省启动时间,还会节省内存并解救处理臃肿软体(bloatware)这种令人头痛的事。
#4: 使用基于文本的登录而不是图形登录
我的大多数Linux机器启动run level 3而非run level 5。这个运行级别将停在文本登录模式,我就在这个地方登录并发出startx命令,开始选择桌面。图形登录模式做两件事:增加装入时间并引起头痛的问题即试图从拙劣的X windows挣脱出来。
#5: 使用轻型发行版
不要装载重型的Fedora,为什么不试一下Gentoo、Arch或Puppy Linux呢?这些较小的发行版的启动时间比更加臃肿的Fedora(甚至Ubuntu)要快很多。在较大的发行版中,OpenSuSE声称启动最快,但我还没有亲自试验。在最新的Fedora和Ubuntu之间,Ubuntu击败Fedora的启动时间(而且是即开即用)。
#6: 使用Open BIOS
要是你相当聪明能干,准备升级PC固件,可以考虑迁移到开源BIOS。一个附加说明,使用开放固件允许Linux启动时真正初始化硬件(而不依赖BIOS)。最重要的是,许多开放BIOS可以设置满足机器的特殊需要。如果不走开放BIOS之路,至少也可以设置BIOS不寻找不存在的软盘驱动器,即直接启动第一个硬盘驱动器(首先不是CD驱动器)。
#7: 回避DHCP
如果你工作在地址租约不是问题的家庭网络(或者小型企业网络)上,那么,机器就用静态IP地址。这将使机器不必出外访问DHCP服务器来获得IP地址。如果采取这种途径,就要确保配置文件/etc/resolve.conf也表达你的DNS服务器地址。
#8: 热插拔可免就免
热插拔是指允许把新设备插上电源并立即使用的系统。如果你知道你的服务器不需要这种系统,就删除它。这将减少启动时间。在许多系统上,热插拔消耗大量启动时间。排除热插拔将发生的变化取决于你所用的发行版。注意:就绝大部分而言,udev已经取代热插拔。但如果你还在运行老一点的发行版,这样做还是适合的。
#9: 要是真的大胆无畏,可尝试一下initng
initng系统充当sysvinit系统的替换物,并承诺彻底减少类UNIX操作系统的启动时间。如果你愿意了解运行中的initng系统,可以试一试Pingwinek LiveCD。
#10: 利用Debian具有的代码
要是正在使用Debian,就有一行可用来将你的启动脚本转换成并行运行的简单代码。如果检查一下/etc/init.d/rc脚本,就会看到:大约在24行有CONCURRENCY=none。把这一行改为CONCURRENCY=shell,你有可能目睹启动时间的减少。
‘伍’ 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操作系统 怎么开机
1、Linux系统开机和普通Windows系统开机一样啊,打开主机电源和显示器电源即可。
‘柒’ LINUX操作系统的启动过程
一、启动内核
首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引
导过程的控制权后,会显示LILO提示符。此时如果用户不进行任何操作,LILO将在等待制定
时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个可引导的操作
系统列表,选择相应的操作系统名称就能进入相应的操作系统。
当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分
区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。LINUX内核获得控制权后,
以如下步骤继续引导系统:
1. LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些
代码完成解压缩。
2. 如果系统中安装有可支持特殊文本模式的、且LINUX可识别的SVGA卡,LINUX会提示用户
选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选
择显示模式。该显示模式可通过LILO或RDEV工具程序设置。
3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序
进行配置。这时,显示器上出现内核运行输出的一些硬件信息。
4. 接下来,内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过
LILO或RDEV指定。文件系统的类型可自动检测。如果由于某些原因装载失败,则内核启动
失败,最终会终止系统。
二、执行init程序
其次介绍init程序,利用init程序可以方便地定制启动其间装入哪些程序。init的任务是
启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入
六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,
因而总是提供六个虚拟登陆控控制台进程。
控制init程序操作的规则存放在文件/etc/inittab中。Red Hat Linux缺省的inittab文
件如下:
#
#inittab This file describes how the INIT process should set up the system in a certain
#run-level.
#
#
#Default runlevel.The runlevels used by RHS are:
#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)
#
id:3:initdefault:
#system initialization
si::sysinit:/etc/rc.d/rc.sysinit
10:0:wait:/etc/rc.d/rc 0
11:1:wait:/etc/rc.d/rc 1
12:2:wait:/etc/rc.d/rc 2
13:3:wait:/etc/rc.d/rc 3
14:4:wait:/etc/rc.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
#Things to run in every runlevel
ud:once:/sbin/update
#Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
#When our UPS tells us power has failed,assume we have a few minutes of
power left.Schele a
#shutdown for 2 minutes from now.
#This does,of course,assume you have powered installed and your UPS
connected and working
#correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Restored;Shutdown Cancelled"
#Run gettys in standard runlevels
1:12345:respawn:/sbin/minggetty tty1
2:2345:respawn:/sbin/minggetty tty2
3:2345:respawn:/sbin/minggetty tty3
4:2345:respawn:/sbin/minggetty tty4
5:2345:respawn:/sbin/minggetty tty5
6:2345:respawn:/sbin/minggetty tty6
#Run xdm in runlevel 5
x:5:respawn:/usr/bin/X11/xdm -nodaemon
Linux有个运行级系统,运行级是表示系统当前状态和init应运行哪个进程并保持在这种
系统状态中运行的数字。在inittab文件中,第一个项目指定启动时装入的缺省运行级。
上例中是个多用户控制台方式,运行级为3。然后,inittab文件中每个项目指定第二个
字段的项目用哪种运行级(每个字段用冒号分开)。因此,对运行级3,下列行是相关的:
13:3:wait:/etc/rc.d/rc 3
1:12345:respawn:/sbin/minggetty tty1
2:2345:respawn:/sbin/minggetty tty2
3:2345:respawn:/sbin/minggetty tty3
4:2345:respawn:/sbin/minggetty tty4
5:2345:respawn:/sbin/minggetty tty5
6:2345:respawn:/sbin/minggetty tty6
最后六行建立Linux提供的六个虚拟控制台。第一行运行启动脚本/etc/rc.d/ rc 3;
这将运行目录/etc/
rc.d/rc3.d中包含的所有脚本,这些脚本表示系统初始化时要启动的程序。一般来说,
这些脚本不需要编辑或改变,是系统缺省的。
‘捌’ grub怎么启动linux系统
如果没有备份文件时可以使用grub的交换功能,可以在”grub>”命令行下进行以下操作以手动启动系统:
查找/boot/grub/grub.conf分区所在的目录:
grub>
find
/boot/grub/grub.conf
(hd0,0)
需要注意的是,上述命令将得到的是grub.conf配置文件所在的系统的分区,(hd0,0)即表示它在分区hda1
查看grub.conf文件错误使用如下的命令:
grub>
cat
(hd0,0)/boot/grub/grub.conf
需要注意的是,可以查看配置文件到底什么地方出现了错误,以便进入后修改。
指定/boot分区使用命令:root
(hd0,0)
从此步骤开始,即为本文前面提到的grub配置文件的主要引导步骤,只是一般都是系统读取grub配置文件,出现问题时我们可以使用手动启动。
指定内核加载的命令:kernel
/boot/vmlinuz
ro
root=label=/
指定镜像文件所在的位置可用如下命令:initrd
/boot/initrd-2.6.24-1.3194.fc7
从/boot分区启动可以使用如下命令:boot
(hd0,0)
此时系统即可正常启动,实际上以上步骤就是执行了grub引导期间加载grub.conf文件的步骤,当系统正常启动后将grub配置文件修改正确后即可。