RH131Linux管理笔记二-Linux系统启动流程.docx_第1页
RH131Linux管理笔记二-Linux系统启动流程.docx_第2页
RH131Linux管理笔记二-Linux系统启动流程.docx_第3页
RH131Linux管理笔记二-Linux系统启动流程.docx_第4页
RH131Linux管理笔记二-Linux系统启动流程.docx_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RHCE课程-RH131Linux管理笔记二-Linux系统启动流程这节课程是相当重要的。也是RHCE考试上午的考的主要内容,系统排错。只要你看懂了系统的启动流程,排错就基本没有多大问题了。计算机启动,上电自检检查BIOS就不说了,所有系统都那样。下面就是LINUX的启动流程:、硬件读取引导扇区、加载LILO或者Grub(一般我们使用的是GRUB,这个是重点)、加载内核(以只读方式挂载)、挂载根文件系统、启动init,一切进程的“祖父”、读取/etc/inittab文件、读取rc.sysinit文件、运行rcX.d下的文件(文件都是init.d下的符号链接)其中有一个xinetd的超级进程,调用/etc/xinetd.conf配置文件,从配置文件中知道读/etc/xinetd.d文件,结束后调用Miggetty、读取/etc/rc.d/rc.local 文件具体步骤在启动的时候大家都能看见滴哈BIOS初始化检查外围设备检查启动设备读区MBR启动引导工具引导并运行核心,分为两个独立的阶段:第一阶段:存放在启动扇区第二阶段;/boot目录下的文件第一阶段即BIOS从启动扇区中读入IPL(初始化程序引导工具)这一过程。因为MBR的空间太小,所以启动引导工具往往还需要从其他地方进一步读入数据,即所谓第二阶段。这通常是一个可以做选择的交互界面。在Linux中常用的启动引导工具:grub和lilo在某些时候,WINDOWS支持多系统就需要安装GRUB哈GRUB:Grand Unified Bootloader被广泛地用于替代lilo支持在启动时使用命令行模式支持md5加密保护可以从ext2/ext3、ReiseFS、JFS、FAT、minix及FFS文件系统上启动其配置文件为/boot/grub/grub.conf,更改grub.conf即可立时生效如果硬盘上的MBR被更动过,可以用/sbin/grub-install /dev/hda来重安装grub现在我们打开/boot/grub/grub.conf查看一下哈:vim /boot/grub/grub.conf这就是grub.conf的精华我们分析一下这个文件哈:# grub.conf generated by anaconda# Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/sda2# initrd /initrd-version.img#boot=/dev/sdadefault=0#default=0表示默认启动第一个系统,如果系统有两个系统是用什么做为分隔符的呢?title就是系统的分隔符,第一个title后面就是第一个系统,用0表示。timeout=5#timout=5,就是默认在启动选择界面停留的时间,单位是秒。等待5秒自动进入默认操作系统splashimage=(hd0,0)/grub/splash.xpm.gz#splashimage是grub启动背景画面,如果是自己写grub.conf文件,这个可以不用写。hiddenmenutitle Red Hat Enterprise Linux Server (2.6.18-53.el5)#title后面就是系统在启动时候显示的名字 root (hd0,0)#root 启动文件所在位置 kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet#kernel 内核所在位置和名字 initrd /initrd-2.6.18-53.el5.img#initrd内核镜象的名字grub.conf的范例:timeout=10 #等待10秒自动进入默认操作系统splashimage=(hd0,0)/grub/splash.xpm.gz #grub启动背景画面default=0 #默认进入第一个标题title Red Hat Linux (2.4.20-18) #Red Hat Linux标题root (hd0,0) #根文件系统位置kernel /vmlinuz-2.4.20-18 ro root=LABEL=/ #核心位置与核心加载参数initrd /initrd-2.4.20-18.img #启动initrd ram盘title windows #另一个操作系统的标题rootnoverify (hd0,1) #操作系统存放在hd0,1上,不要在grub里mountchainloader +1 #从hd0,1的第一个扇面启动大家记一下自己的系统哈,下面我们做个实验,特别是系统版本不一样的更要记住。把后面三行删掉后保存退出。OK后我们重新启动系统。我们重启后系统停在这里了哈出现刚才的图是正常的,因为我们修改了grub.conf 文件,GRUB找不到启动文件了,所以我们就要手动敲进去第一步:运行root (hd0,0)(这是/boot所在的分区)第二步:执行kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet (用来指定linux内核)第三步:执行initrd /initrd-2.6.18-53.el5.img(用来指定initrd文件)第四步:执行boot看见红色的REDHAT就证明你的内核加载成功了这就是在启动rc.d的服务了启动正常下面我们来点狠的哈,这次我们就要把grub.conf删除掉然后我们重新启动我们的系统哈。好了,和刚才一样的,小问题,大家自己动手吧 ,主要想强迫你们记忆下grub.conf的内容注意:运行root或者find /vmlinuz-2.6.18-53el5(可以使用TAB补全),可以搜索vmlinuz所在分区,也就是/boot所在分区第一步:运行root (hd0,0)(这是/boot所在的分区,其中括号内的信息,就是上面命令的回显.)第二步:执行kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet (用来指定linux内核)第三步:执行initrd /initrd-2.6.18-53.el5.img(用来指定initrd文件)第四步:执行boot同样,看见红色的REDHAT就证明你的内核加载成功了OK了哈通过刚才2次小试牛刀,这次我们来点更狠的哈我们要来点狂暴滴动作哈o(_)o来狠滴哈,我们把/boot分区里的文件全部删除了掉哦,一个也不剩哈(不删boot分区哦,只删除里面文件)rm -rf /boot/*又跑这来了哈好吧,现在我们把RHEL5的ISO镜像放进去,然后设置从光驱启动,我们要进救援模式了。第一步:将RHEL5安装放入光驱并设置从光驱启动系统第二步:输入linux rescue或按F5进入救援模式如果上一步是按的F5,那我们在这一步输入linux rescue哈第三步:这里选择语言哈这里选择美式键盘这里我们不启用网络接口哈第四步:这步注意,要让系统帮你自动挂载以前的系统,也就是硬盘里的系统好了,现在就正式进入救援模式了。下面我们使用#chroot切换到硬盘的系统具体命令# chroot /mnt/sysimage/然后我们去boot查看缺少了什么文件哈:#cd /boot & ls查看故障原因,我们发现/boot目录下一个文件也没有了哈.由于boot下面主要是内核和GRUB,所以我们安装这两个东西哈安装就要先挂载cd ,mount 就是挂载,这个以后会讲mkdir /mnt/cdmount /dev/hdc /mnt/cd然后就是安装kernel,在安装内核时会自动生成initrdcd /mnt/cd/Server/rpm -Uvh -force kernel-2.6.18-53.el5.i686.rpm安装好内核后,我们去/boot目录看看内核和initrd已经有了,然后我们需要安装GRUB然而刚安装的GRUB是没有配置文件的,我们可以自己写一个哈,如果你boot分区的grub目录里的grub.conf配置文件丢失或者错误,回出现什么情况呢?系统启动会进入GRUB模式。但是这个不严重,我们只需要给系统提供系统启动的参数就能正常进入系统。我们发现/boot/grub/目录下确实没有grub.conf哈那我们就自己写一个哈cd /boot/grub/touch grub.confvim grub.confOK,grub.conf写完后,就保存退出,然后就可以启动系统了用exit退出,连续两次启动后就进入这个界面了,这就是因为没有我们刚才说的那个环境图片那个文件的原因。注意哈:kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quietrhgb:表示redhat graphics boot,就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg也可以看到quiet:表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示看见这步了,基本就是成功了OK了,我们去看看grub.conf的配置文件是不是刚才我写的是这样的吧其实BOOT分区删了都可以恢复,只是复杂一点点能够搞定的前提是,df命令里还有/dev/sda1是boot分区的记录,不然就比较危险了我们先分区,然后安装内核和GRUB,就可以搞定了。现在就参照上面的安装内核和GRUB就可以解决问题了。关于boot分区排错全解析,救援模式,内核安装。#还有一个superlogin模式,大家没见过,我们来看下这个模式什么样子大家编辑/etc/fstab,然后记住这个文件。很重要滴哦在LINUX系统中,大部分系统配置信息都以各种文件的形式保存在/etc目录中。而/etc/fstab就是专门用来配置本地文件系统。我们在 LINUX中常常用mount命令把一硬盘分区或者一张光盘挂装到文件系统中。/etc/fstab就是在开机引导的时候自动挂载LINUX的文件系统。事实上通过修改这个配置文件我们可以挂载所有的凡是LINUX所支持的文件系统。在LINUX中/etc/fstab的数据项如下所示:/dev/device mountpoint type rules 0 orderfstab文件是开机后系统在第4步读取滴第一列:设备或者卷标名称第二列:mountpoint挂载点,如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home下面就是一个不错选择。第三列:文件系统,LINUX支持N多种文件类型,如果你想知道具体点滴话可以在LINUX下用fdisk查看。第四列:挂载参数rules是指挂载时的规则。下面列举几个常用的:auto:开机自动挂载default:按照大多数永久文件系统的缺省值设置挂载定义noauto:开机不自动挂载nouser:只有超级用户可以挂载ro:按只读权限挂载rw:按可读可写权限挂载user:任何用户都可以挂载noexec:不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了!nodev:不允许挂载设备文件nosuid,nosgid:不允许有suid和sgid属性请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto.如果你的LINUX没法显示中文,先装一个中文字库(例如GB2312),然后在这里加一个codepage=GB2312。记得两个规则之间用逗号分开。第五列:dump检查时候,备不备份0 是指dump(系统备份工具)。这一项为0,就表示从不备份。如果上次用dump备份,将显示备份至今的天数。第六列:开机是否检查;0为不检查;1为第一个检查;2为1检查了才检查2order 指fsck(启动时fsck检查的顺序)。为0就表示不检查,(/)分区永远都是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。如果我要把第二块IDE硬盘上的windows C 区挂到文件系统中,那么数据项是:/dev/hdb1 /c vfat defaults 0 0 (/c 是事先建立的文件夹,作为c盘的挂载点。)当你修改了/etc/fstab后,一定要重新引导系统才会有效。对于已经挂载好的设备,现在要改变挂载参数,这时可以不用卸载该设备,而可以使用下面的命令(没有挂载的设备,remount 这个参数无效)#mount /mnt/D/ -o remount,ro (改defaults为ro)OK,大家把/etc/fstab这个文件记住哈,现在我们把/根分区那行删除掉,然后保存退出,重新启动系统哈效果如下:重新启动系统的时候,大家注意他的启动顺序,看仔细了能看见红色Red Hat就证明内核加载成功,加载内核是启动系统的第三步。第4步,加载文件系统,这个时候读取的就是fstab文件了,由于我们的fstab文件出问题了,所以这步就没成功,卡在上面那里了,我们输入自己root的密码如上图哈,输入正确后,就会出现命令提示符我们就可以操作了,我们先去看下fstab文件哈:vim /etc/fstab明显的红色,就是有问题的,后面挂载点是根。当我们要编辑LABEL=为LABEL=/时,系统提示/etc/fstab是只读文件,开始挂载的时候估计是为了安全,所以是只读的。我们需要以读写方式重新挂载。在此之前,我们用e2label看看哪个分区的卷标是根,显示/dev/sda2是我们的/根分区哈。我们以读写方式重新挂载:mount -o remount,rw /然后修改fstab,把这里改成设备/dev/sda2,不用卷标了,保存退出。最后用exit退出系统,重新启动,看我们能不能正常进入系统哈又到这里了哈OK,开始启动服务了,已经走到第8步了OK,系统正常哈这样就完成这个错误的修复了,这个主要让我们有个了解,知道是怎么回事,有这个东西,使用时间长了,我们就会遇见这些问题#内核模型单片型内核单片型内核将各种硬件支持、网络协议与文件系统管理都编译入一个单一的文件中。模块型内核:模块型内核则允许计算机在使用到某一项功能的时候自动加载,防止了核心臃肿,是大部分情况下的标准构建。默认核心存放路径:/boot核心版本命名规则:主版本号、次版本号、补丁级数 Red Hat附加参数:发布号显示当前系统的内核信息#uname -r核心RPM包kernel-.rpm预编译核心及模块kernel-source-.rpm核心源代码,需要人工编译出核心并安装/url上发布的原始核心源代码包,需要build出arch包再使用vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory“, Linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。vmlinuz的建立有两种方式:(1) 编译内核时通过“make zImage”创建,zImage适用于小内核的情况,它的存在是为了向后的兼容性。(2) 内核编译时通过命令make bzImage创建 (单独编译内核映像,不编译驱动模块,生成内核映像bzImage)Initrdinitrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。#mkinitrd initrd-版本号.img 版本号核心启动流程:检测硬件设备设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论