《LinuxLesson02引导与关机课件》由会员分享,可在线阅读,更多相关《LinuxLesson02引导与关机课件(51页珍藏版)》请在金锄头文库上搜索。
1、Lesson02Linux引引导导与关机与关机内容提要内容提要第一次登录基本命令正确的关机方式Linux引导内幕引导加载程序启动脚本第一次登第一次登录录第一行显示的是你的LinuxDistribution与版本第二行显示的是Linux内核版本,以及你的硬件等级(i686)主机名称登录名称要进入图形模式,输入startx再回车即可注意密码的输入没有回显第一次登第一次登录录如何退出?输入exit,回车输入logout,回车注意:没有关机,只是结束当前作业第一次登第一次登录录如果启动图形界面则看不到上面的文字登录框,如何使用命令?图形模式与文字模式切换Ctrl+Alt+F1F6文字界面tty1tty
2、6Ctrl+Alt+F7/F8图形界面使用终端屏幕上点击鼠标右键,选择“新建终端”重启到文字模式输入命令init3回车即可修改配置文件,使得默认启动到文字模式在命令行输入gedit/etc/inittab回车,把第一行由id:5:initdefault:修改到id:3:initdefault:,保存后重启基本命令基本命令命令的输入格式为:command-optionsparam1param2.命令选项参数1参数2区分大小写command为命令的名称中括号不存在,只是表示可选,进行参数设定时,通常为“-”,若为完成参数名称,则输入“-”符号参数可谓选项的参数,或者命令的参数command,-op
3、tions,param这几项之间以空格隔开,空格无论多少,都视为1个指令太长时,可以使用“”继续到下一行基本命令基本命令举例:空格与选项、参数roothexy#ls-al/rootroothexy#ls-al/root举例:大小写DatedateDATE有何不同?基本命令基本命令显示日期的命令:date直接输入datehexyhexy$date2007年08月30日星期四05:02:12CST显示年月日hexyhexy$date+%y/%m/%d07/08/30hexyhexy$date+%Y/%m/%d2007/08/30显式小时和分钟hexyhexy$date+%H:%M05:08hexy
4、hexy$date+%h:%m8月:08基本命令基本命令在线求助命令:man格式:mancommandName用法:空格或者PageDown键向后翻页PageUp键向前翻页输入“/单词”来查询关键词或者词组,这里不区分大小写通过SEEALSO部分可以查看相关的命令通过q键退出Home键回到最前面End键至末尾回车键查看下一行举例:mandate基本命令基本命令日历显示命令:cal直接输入cal显式当前月份的日历hexyhexydoc$cal输入cal年份,显式某一年的日历hexyhexydoc$cal2007输入cal月份年份,显式某年某月的日历hexyhexydoc$cal82007基本命令
5、基本命令错误信息的查看万一输入了错误的指令怎么办?可以藉由屏幕上的错误信息发现问题所在。如:hexyhexy$DATEbash:DATE:commandnotfound表明指令找不到,也就是系统上没有DATE这个指令又如:hexyhexy$cal132002cal:illegalmonthvalue:use1-12错误信息提示月份超出范围了。基本命令基本命令简单计算器:bc直接输入表达式,回车即计算结果,默认只显示整数值输入quit回车即退出基本运算符:+加法-减法*乘法/除法指数%余数输入scale=数字,控制小数点的位数为你需要的数字基本命令基本命令如何终止命令执行?q:很多命令的默认退出
6、命令就是输入q键,如man或者more等命令按下Ctrl+c例如:hexyhexy$find/-name*a*正确的关机方式正确的关机方式Linux下面强烈建议不要通过直接关闭电源的方式来关机!Linux/Unix系统经常掉电可能比Windows还要严重!极有可能导致文件系统的损坏!可以通过who命令查看当前使用系统的用户。使用正确的关机指令:如shutdown或者reboot关机之前最好强制将缓存写入硬盘正确的关机方式正确的关机方式命令:sync在Linux系统中,为了加快数据的读写速度,默认的情况下,某些数据将不会直接被写入硬盘,而是先暂存在内存当中,如此一来,如果一个数据被你重复的改写,
7、那么由于他尚未被写入硬盘中,因此可以直接由内存当中读取出来,在速度上一定是快上相当多的。不过,万一当你重启或者是关机,或者是不正常断电的情况下,由于数据尚未被写入硬盘当中,所以就会造成数据的更新不正常。这个时候就需要sync命令来把缓存中的数据写入硬盘中。所以,在系统关机或重启之前,最好多执行几次sync。正确的关机方式正确的关机方式命令:shutdownshutdown会通知系统内的各个进程,并且将通知系统中的系统run-level内的一些服务来关闭。Shutdown可以实现:可以自由选择关机模式:是要关机、重启或进入单用户模式均可。可以设定关机时间:可以设定成现在立刻关机,也可以设定某一个
8、特定的时间才关机。可以设置关机信息:在关机之前,可以将自己设定的消息传送给在线用户。可以仅发出警告信息:有时有可能你要进行一些测试,而不想让其它的使用者干扰,或者是明白的告诉使用者某段时间要注意一下!这个时候可以使用shutdown来吓一吓使用者,但却不是真的要关机可以选择是否要fsck检查文件系统。正确的关机方式正确的关机方式命令:shutdownshutdown-t秒数-rkhcfF时间信息-t秒数意思是动作在XX秒之后开始执行-k意思是不要真的关机,只是发送警告信息-r意思是在系统的服务停止之后重新启动-h意思是在系统的服务停止之后关机-f意思是重新启动后略过fsck工具的磁盘检查-F意
9、思是重新启动后执行fsck工具的磁盘检查-c意思是取消已经在运行的shutdown命令时间可以是now代表立即执行hh:mm今天的几点几分+mmmm分钟之后,now等价于+0正确的关机方式正确的关机方式命令shutdown举例shutdown-hnow立刻关机shutdown-h20:25系统在今天的20:25分会关机shutdown-h+10系统再过十分钟后自动关机shutdown-rnow系统立刻重启shutdown-r+30Thesystemwillreboot再过三十分钟系统会重新开机,并显示后面的信息。shutdown-knowThissystemwillreboot仅发出警告信息,
10、吓唬人!正确的关机方式正确的关机方式简单命令reboothaltpoweroffreboot其实与shutdown-rnow几乎相同。不过,建议在关机之前还是将数据回填的指令下达一次再说:roottestroot#sync;sync;sync;reboothalt和poweroff都是用来关机的,一般在忘记了shutdown怎么用的情况下使用。Linux引引导导内幕内幕引导是开机的专业术语引导的主要任务加载内核到内存执行各种初始化Linux的引导方式自动方式:无须管理员干预手动方式:系统先自动执行一些过程,然后在运行大多数初始化脚本之前,把控制权力交给管理员。这时候计算机处于单用户模式。通常在
11、系统出现故障时才使用手动方式。Linux引引导导内幕内幕典型的引导过程:加载并初始化内核检测和配置设备创建自发的系统进程管理员参与(如果是手工引导)执行系统初始化脚本多用户使用Linux引引导导内幕内幕阶段1:加载并初始化内核内核也是一个程序,它的路径通常是/vmlinuz或者/boot/vmlinuz,现在的Linux版本通常是在/boot/vmlinuz-内核版本号,然后让/boot/vmlinuz链接到它。加载分为两个阶段:计算机加电后,执行存储在ROM中的引导代码,然后ROM反过来从磁盘加载引导程序到内存。这里与Linux无关。引导程序载入Linux内核,内核执行内存检测以确定有多少R
12、AM可用。内核为自己划分一块固定大小的实际内存空间,这部分空间只有内核能够用。Linux引引导导内幕内幕阶段2:检测和配置设备内核的第一项任务是就检查机器的环境以确定计算机包含哪些硬件。内核开始执行时,它试图找到并初始化已经告诉它的每一个设备。大多数内核为它们所找到的每一个设备打印一条专门的信息。现在的Linux内核,大多数都能够通过探测设备总线来自动检测硬件变化,并试图找到匹配的驱动程序。那些没有检测到设备或者没有响应探测的驱动程序或者没有找到驱动程序的设备都将禁用。Linux引引导导内幕内幕阶段3:创建自发的系统进程一旦完成硬件配置,内核就会创建几个“自发”进程。也就是说,这些进程不是由系
13、统的fork机制创建的。在linux上,看不到进程ID号(PID)为0的进程。进程init的PID一定为1,其父进程的ID号(PPID)为0。其他的自发进程包括内存和硬盘数据的处理进程,如kflushdkupdatekpiodkswapd等一旦自发进程创建完毕,内核在引导阶段的任务就完成了。但是大多数Linux的daemon进程都没有创建,所以现在还不能处理如用户登录之类的事情。Linux引引导导内幕内幕阶段4:管理员参与(如果是手工引导)如果系统以单用户模式进行引导,那么在init启动时,内核会通知init实际要引导的是单用户模式。init进程最后会把控制权交给sulogin,sulogin
14、提示用户输入root口令。如果密码输入正确,系统将生成一个rootshell。用户可以按下Ctrl+D绕过单用户模式而继续进入到多用户模式。在rootshell中,系统通常只安装了root分区,需要其他分区时管理员必须手工安装,而且可能还需要手工执行fsck命令以检查和修复文件系统。退出该rootshell时,系统将继续引导进入多用户模式。Linux引引导导内幕内幕阶段5:执行系统初始化脚本由init根据一定的算法来选择并运行启动脚本。Linux引引导导内幕内幕阶段6:多用户使用为了响应用户登录请求,必须有一个getty进程监听终端或者控制台。init进程直接生成这些getty进程,完成引导过
15、程。init还可以根据需要,生成图形登录系统,例如xdm或者gdm。引引导导加加载载程序程序Linux有两种流行的引导加载程序:LILO:传统的Linux引导加载程序,非常稳定而且有丰富的文档。LILO的安装与配置需要分成两个步骤设定/etc/lilo.conf这个配置文件用lilo命令改写MBR或者superblockGRUB:Linux引导加载程序的新贵,更加灵活而复杂,基本垄断了新的Linux发行版本。修改配置文件/boot/grub/grub.conf即可LILO的开机信息写入到/dev/hda这块硬盘的MBR当中。如果是SuperBlock,那么必须使用逻辑分区的代号,如/dev/h
16、da5引引导导加加载载程序程序配置文件/etc/lilo.conf详解:整体设置部分promptCompactdelay=50default=linux-2.4.7boot=/dev/hdamap=/boot/mapinstall=/boot/boot.bLinearLba32Password=1234567message=/boot/message强制出现boot的开机信息可以整合一些读取的扇区,使得map较小,适合软盘启动时使用等待用户输入的时间延迟,单位是0.1秒,超时则使用default启动,没有default则用第一个label主机的地图信息以及bootsector的信息在使用较大容
17、量的硬盘时,可以加入这两个参数试试看设置进入LILO的密码。设置关于LILO的信息。引引导导加加载载程序程序配置文件/etc/lilo.conf详解:个性设置部分image=/boot/vmlinuz-2.4.7-10label=linux-2.4.7read-onlyroot=/dev/hda1other=/dev/hdb1label=Windows2k用来引导的内核,可以有多个启动菜单显示的文本,注意用TAB隔开开机扇区挂载为只读装载为根目录的磁盘如果是非Linux内核就以other来设定引导磁盘扇区同样的要有label来表示这个引导扇区的名称引引导导加加载载程序程序LILO的安装在准备好
18、配置文件之后,lilo的安装非常简单,只要在命令行输入lilo回车即可。该命令会自动寻找/etc/lilo.conf文件来进行安装,如果该文件不存在,则显示“/etc/lilo.conf:Nosuchdirectory”。如果找到则显示安装的label,并在默认label后面打“*”。如:roothexy#liloAddedlinux-2.4.7*AddedWindows2k引引导导加加载载程序程序LILO的使用如果安装好了LILO,当系统引导时,LILO会打印如下的提示符:LILO:用户可以按下TAB键以显示已经定义好的LabelLILO:linux-2.4.7Windows2kLILO:可
19、以直接输入label启动需要的系统,如果达到超时限制用户都没有如何输入,那么将直接采用default进行引导引引导导加加载载程序程序使用LILO注意事项成功运行lilo之前不要重启系统!最好先运行lilo-t来测试配置而不是真正安装,如果一切正常,再用lilo命令进行安装引引导导加加载载程序程序使用GRUB的好处GRUB可以让您在开机的时候自行编辑与修改启动配置项,有点像是bash的指令模式;GRUB可以自动动态寻找配置文件,亦即它可以依据/boot/grub/grub.conf的内容而改变其设置。因此,修改启动配置只要改/boot/grub/grub.conf即可,不需要再重新安装GRUB!
20、注意:很多Linux发行版本都建立了该配置文件的链接/boot/grub/menu.lst/etc/grub.conf引引导导加加载载程序程序GRUB的硬盘代号GRUB里面的硬盘代号与LILO还有Linux传统的代号不一样,他的代号有点像如(hd0,0)hd指的是IDE的硬盘,而里面的第一个0代表他是第一个IDE的master,而第二个0代表他是第一块分区,所以这个代号就是hda1引引导导加加载载程序程序GRUB的配置文件/boot/grub/grub.confdefault=1timeout=5splashimage=(hd0,1)/grub/splash.xpm.gzhiddenmenut
21、itleCentOS(2.6.18-8.el5)root(hd0,1)kernel/vmlinuz-2.6.18-8.el5roroot=LABEL=/rhgbquietinitrd/initrd-2.6.18-8.el5.imgtitleWindowsXProotnoverify(hd0,0)chainloader+1设置默认系统,第一个为0超时设置单位为秒背景图片设置隐藏引导加载选择菜单第一个启动配置启动根目录所在磁盘内核位置引导扇区所在磁盘引引导导加加载载程序程序GRUB的安装过程输入grub开始配置过程使用root磁盘代号选择启动根目录所在磁盘代号使用setup磁盘代号选择MBR或Su
22、perblock直接安装使用quit离开grub引引导导加加载载程序程序GRUB安装实例:SuperBlock引引导导加加载载程序程序GRUB安装实例:MBR引引导导加加载载程序程序常见引导问题的处理:问题1:安装好了Linux之后,在开机的过程中却只出现”LI”就不动了!怎么办?这个问题可能发生的原因是LILO没有设定好,或者是由于Linux安装在非/dev/hda(MBR)的硬盘之中,解决的方法可以如下:1.用Linux光盘开机,然后在出现boot:处输入linuxroot=/dev/hda1(记得linux安装在哪个分区?)顺利开机之后,以vi修改/etc/lilo.conf将linea
23、r这一行取消(如果没有这一行的话,那就在lilo.conf中加入吧!)然后执行lilo再取出光盘并重新开机试试看;(待续)引引导导加加载载程序程序常见引导问题的处理:问题1(续)2.进入BIOS,将硬盘的mode改成LBA试看看;3.将Linux往前面一点的扇区安装,例如你可能安装在/etc/hdc1,那你可以重新安装Linux在/dev/hda2试看看制作启动盘的办法:安装时制作采用命令roothexyroot#mkbootdisk-device/dev/fd0uname-rInsertadiskin/dev/fd0.Anyinformationonthediskwillbelost.Pre
24、sstocontinueorCtoabort:引引导导加加载载程序程序常见引导问题的处理问题2:我不要玩Linux了,如何移除LILO?只要以Windows或者DOS启动盘启动系统,然后输入:fdisk/mbr就可以将LILO自MBR当中移除。问题3:无法正常的进入LILO怎么办?使用Linux启动盘启动,在出现boot:的时候,输入linux-s就可以启动了。这里请特别注意,那个linux指的是LILO中配置的label名称。-s指的是进入单人维护模式登入。启启动动脚本脚本init执行内核加载之后,由内核执行的第一个程序就是/sbin/init。而这个程序第一个目标当然就是确定主机是要以那种
25、模式(通常叫runlevel)登录。这个时候就必须要以/sbin/init来加载/etc/inittab的信息。Linux到底有那些runlevel(运行级别)?可以打开/etc/inittab来看看启启动动脚本脚本执行级别(来自/etc/inittab)#0-halt(DoNOTsetinitdefaulttothis)#1-Singleusermode(类似于安全模式)#2-Multiuser,withoutNFS(Thesameas3,ifyoudonothavenetworking)#3-Fullmultiusermode#4-unused#5-X11#6-reboot(DoNOTse
26、tinitdefaulttothis)id:5:initdefault:#设置默认执行级别常用的就是3和6,千万别把initdefault设置到0和6启启动动脚本脚本机器引导时,init从运行级0开始一级一级往上运行到/etc/inittab中所设置的默认级别。/etc/inittab定义了系统进入每一个级别时要运行的命令,并且为相邻运行级别的过渡进行了控制。启启动动脚本脚本init的第一个执行内容/etc/rc.d/rc.sysinit设置主机名称设置PATH设置网络状态启动SWAP检查文件系统(上次是否正常关机?)设置系统参数(/proc)检查、挂载文件系统设置时钟将启动信息用dmesg写
27、入到/var/log/dmesg中启启动动脚本脚本init执行运行级的各脚本在/etc/rc.d目录下面可以看到8个目录和3个文件,目录rc0.drc6.d分别代表了各个run-level需要执行的脚本。而在这些目录中的文件都是以S或者K开头,并接两位数的数字与该服务的名称所组合而成的。这些文件全部是链接文件,均指向到/etc/rc.d/init.d这个目录下的系统服务名文件。这些脚本都能识别startstoprestart参数。S开头表示启动该服务,K开头表示杀死该服务,而两位数字则代表执行顺序。例如S12syslog会比S90crond更早被执行。启启动动脚本脚本init执行运行级的各脚本
28、当init从低的运行级别向高的运行级别过渡时,它安装数字递增地运行所有以S开头的、带有start参数的脚本。当init从高的运行级别向低的运行级别过渡时,它按照数字递减地运行所有以K开头的、带有stop参数的脚本。脚本的目录由当前运行级别决定,例如运行级别为3,则目录是/etc/rc3.d/初始化脚本执行之后,最后执行/etc/rc.d/rc.local,通常进行个性化设置。可以说,rc.local是作为启动过程的一部分最后运行的脚本。启启动动脚本脚本RedHat系列的特殊功能一旦看到“WelcometoRedHatLinux”这则消息,用户可以按下“i”键进入确认模式,控制启动过程注意:RedHat并没有让用户确认是否已经按下了正确的键,它继续安装本地文件系统、激活SWAP分区、加载键映射文件并定位它的内核模块,只有当它运行到级别3时,才真正提示用户进行确认。启启动动脚本脚本切换运行级别的命令telinitinit命令之后直接跟目标运行级别即可。举例:(除了不太友好之外,跟reboot功能几乎一样)小小结结如何正确开关机引导过程