为什么我玩穿越火线战队系统,启动的时候系统会出现《在Initr…

& 了解的,可以通过linux的启动的过程一步步理解linux的工作原理,这就需要深入了解启动的每一步,不用了解每一步启动的细节,只要了解系统启动的时每一步的特性就差不多。这里主要介绍centos6,它的大致流程是,post(开机自检)-&grub(引导操作系统的)-&kernel(内核)-&init(进程管理程序)-&bash(用户交互程序)一一个计算机启动流程1 post过程首先计算机加电,cpu就会读取bios(cpu内置某种特殊的指令,会默认的读取bios),bios读进内存后检查计算机上所有硬件,并按照配置内容启动的下一步。bios包括两部分,一部分是rom,内部一些不可改变机器指令,另一部分是ram,存储人们设定的开机特性(这个模块需要持续供电,一旦断电设定的数据就会丢失)。控制bios一般都是计算机加电后,按F#(不同的计算机不同)进入蓝白相间到的配置界面,这里可以配置第一启动硬件、开启cpu的虚拟化特性、声卡等等功能。&&&& 2 grub& bios程序运行后,会加载第一启动项,假如第一启动项是硬盘。这时cpu会读取硬盘第一磁道第一扇区的数据,读取的是前446字节的数据,这部分数据叫做mbr,grub比较大不能完全放在mbr里,还有一部分放在了前27个扇区里,然而前27扇区也放不开,还有一部分数据存放在/boot目录下的grub下stage2里。总结一下,一部分数据存放在mbr里称这部分数据叫stage1,还有一般数据放在硬盘前27个扇区里叫stage1.5,最后一部分数据存放在/boot/grub目录下叫stage2.&&&& 3 kernel&在grub中可以选择启动哪个系统,这里启动的不是我们的要启动系统,真正启动的是/boot目录下的vmlinuz和initramfs文件,vmlinuz是需要的内核,而initramfs不是需要的,initramfs文件里有一个简易的系统,内嵌了部分驱动,是启动真正文件系统的中间步骤,设计它的主要目的是防止内核过大,内核文件vmlinuz只有4M而initramfs却20M多。内核通过initramfs内部的驱动去加载真正的文件系统,加载各种磁盘、网卡、usb等等驱动,实现系统的高级功能。&&&& 4 init&&它不是系统必须有的程序,只是内核把一部分监控和管理权限放给了init,让init代理内核实现进程管理。内核之所以让渡这些权限是因为进程调度是最浪费系统时间。进程调度的一个过程:首先cpu收到中断信号,cpu就会把当前正在运行的进程的数据全部挪到内存里,并且给这个进程贴上标签,它运行到哪一步了;然后cpu把内核读进来,还原内核的状态,加载上次运行内核数据,cpu判断下一个需要运行的程序分配好时间片后自己离场;最后加载下一个进程。这里有一个概念,cpu 的处理数据的速度远远大于磁盘读取的速度。当内核特别大的时候,一次调度i/o量将会特别大。这里就解释通了内核一定要小,越精巧cpu的利用率越高。&&&& 5 bash&&用户交互工具可以看之前的。二系统补救&&&& 1 post阶段&&按F#进入bios更改,忘记bios密码,可以取下主板上的纽扣电池,bios中配置的数据都会丢失。&&&& 2 grub阶段开机后计算机处于黑屏状态,这时硬盘的数据时有效的,这时破坏的一般是grub的stage1阶段。可以通过光盘的救援模式进行救援,操作流程大致如下:光盘引导选择第三个,一路确认开启一个shellgrub-install /dev/sd*&&&&& 这里的/dev/sd*是原grub所在的硬盘开机后计算机黑屏但是有报错erorr ##,这时stage1.5或stage2被破坏了,和修复stage修复流程类似:光盘引导选择第三个,一路确认开启一个shellgrub-install --root-direcoty=/path /dev/sd* &&&&&& /path是boot的父目录,/dev/sd*是原grub所在的硬盘开机后系统显示grub &这时是grub的被破坏了,grub配置文件的位置/boot/grub/grub.conf。grub配置文件的格式default=0&&&&&&&&&&&&&&&&&
timeout=5&&&&&&&&&&&&&&&&&grub界面的等待时间
tille¢os6&&&&&&&&&&&&&&&引导的名字
&&&&&&&root(hd0,0)&&&&&&&&&内核文件位于的磁盘分区
&&&&&&&kernel&/vmlinuzroot=/dev/sda2&&&&&&&&&使用哪一个内核,文件系统的目录
&&&&&&&initrd&/initramfs&&&&&&&&initramfs的位置3 kernel,init,bash补救kernel,init,bash丢失,进入救援模式***对应的rpm包就可了。init的配置文件位于/etc/inittabbash的配置文件位于/etc/bashrc和用户家目录的.bashrc三服务管理&&启动的时候,一般都服务和系统一起启动,开机启动的服务的管理脚本位于/etc/init.d/目录下,是通过init这一步调用的。格式就是bash脚本,只是多了启动和关闭顺序。可以把一些想开机后执行的脚本定义在local里。& &servicesername start|stop|restart|reload|status&&&& 服务的管理& &chkonfigadd name&&&&&&&&&&&&&&&&&&&&把服务的添加到开机管理里& &chkonfig-l level name on|off & & & & & & & & &&设置服务开机开启在哪个等级里&&有些程序需要***端口,但是只是偶尔使用,让这个服务永驻内存会浪费内存和cpu的时间片,但是还不能停止,这时有人写了个xinted帮一批程序***端口,只有被调用的时候才会运行服务程序。总结&&这一节主要介绍了计算机启动的各个阶段和各个阶段的补救措施,并且简单介绍了服务程序的管理命令。本文出自 “老王linux旅程” 博客,请务必保留此出处http://oldking./9116嵌入式系统试卷及***_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
嵌入式系统试卷及***
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩24页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢您现在的位置: &&&&&&&&&&&&文章内容
快捷导航:
重启系统的时候自动启动oracle服务
来源:考试大&&&【天天考试大,天天进步大!】&&日
&&&& 这时你需要添加另外的初始化脚本,以使在oracle在你重启系统的时候启动,但是首先,你需要删除***程序所创建的一些链接:# rm /etc/rc2.d/[SK]96*# rm /etc/rc3.d/[SK]96*# rm /etc/rc5.d/[SK]96*# update-rc.d init.cssd defaults 96
&&&& 下面的初始化脚本是我根据这一个脚 本定制的。这个脚本启动/停止oracle的实例,***器和企业管理工具的web界面。你需要自行设置ORACLE_HOME, ORACLE_SID, and ORA_OWNR等环境变量。 我把这个脚本命名为/etc/init.d/oracledb,当然,你可以给它取任何名字。 #!/bin/bash## /etc/init.d/oracledb## Run-level Startup script for the Oracle Instance, Listener, and # Web Interfaceexport ORACLE_HOME=/your/oracle/home/goes/hereexport ORACLE_SID=oraclesidgoeshereexport PATH=$PATH:$ORACLE_HOME/binORA_OWNR="oracleownergoeshere"# if the executables do not exist -- display errorif [&! -f $ORACLE_HOME/bin/dbstart -o&! -d $ORACLE_HOME ]thenecho "Oracle startup: cannot start"exit 1fi# depending on parameter -- startup, shutdown, restart# of the instance and listener or usage displaycase "$1" instart)# Oracle listener and instance startupecho -n "Starting Oracle: "su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"su $ORA_OWNR -c $ORACLE_HOME/bin/dbstarttouch /var/lock/oraclesu $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsoleecho "OK";;stop)# Oracle listener and instance shutdownecho -n "Shutdown Oracle: "su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"su $ORA_OWNR -c $ORACLE_HOME/bin/dbshutrm -f /var/lock/oraclesu $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsoleecho "OK";;reload|restart)$0 stop$0 start;;****)echo "Usage: `basename $0` start|stop|restart|reload"exit 1esacexit 0
创建好脚本後,给他添加执行权限,并在各个运行级里创建链接: # chmod 755 /etc/init.d/oracledb# update-rc.d oracledb defaults 99
在启动我们新的数据库之前,我们需要做一些用户化的设置:
/usr/local/bin/dbhome 需要改变 ORAHOME, ORASID, 和 ORATAB (/etc/oratab) 这几个环境变量。
/your/oracle/home/bin/dbhome 同上
/your/oracle/home/bin/dbshut 同上
/your/oracle/home/dbstart 需要改变ORATAB这个环境变量。
要使你所创建的所有的数据库在开机是启动,你需要相应的修改 /etc/oratab。
例如把 oracle:/opt/oracle:Y
替换为: dbname:/opt/oracle/:N
你需要设置如下环境变量:
ORACLE_HOME
ORACLE_SID
&&& 这有很多中方法,请自己找一个适合你自己的!一旦你重启机器或者重启数据库,你需要确认所有的东西都运行起来了,你可以通过sqlplus或者则web管理页面登陆来检查: :5500/em
来源:考试大-
责编:drfcy&&&
&考试大网校:计算机等级考试网络课程试听
暂无跟贴,欢迎您发表意见
考试大Oracle认证考试评论排行
1.&&评论2条
2.&&评论2条
3.&&评论1条
4.&&评论1条
5.&&评论1条
6.&&评论1条
主讲:陈翠娥
12345678910
12345678910

参考资料

 

随机推荐