欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    RH131Linux管理笔记二-Linux系统启动流程.docx

    • 资源ID:70336649       资源大小:3.42MB        全文页数:38页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    RH131Linux管理笔记二-Linux系统启动流程.docx

    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/sda default=0    #default=0表示默认启动第一个系统,如果系统有两个系统是用什么做为分隔符的呢?title就是系统的分隔符,第一个title后面就是第一个系统,用0表示。 timeout=5 #timout=5,就是默认在启动选择界面停留的时间,单位是秒。等待5秒自动进入默认操作系统 splashimage=(hd0,0)/grub/splash.xpm.gz #splashimage是grub启动背景画面,如果是自己写grub.conf文件,这个可以不用写。 hiddenmenu title 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里mount chainloader +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,在安装内核时会自动生成initrd  cd /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.conf vim grub.confOK,grub.conf写完后,就保存退出,然后就可以启动系统了用exit退出,连续两次启动后就进入这个界面了,这就是因为没有我们刚才说的那个环境图片那个文件的原因。注意哈:kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet rhgb:表示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-<version>.<arch>.rpm预编译核心及模块 kernel-source-<version>.<arch>.rpm核心源代码,需要人工编译出核心并安装 kernel-<version>.src.rpm urlwww.kernel.org/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)Initrd initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。 initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。#mkinitrd   initrd-版本号.img   版本号核心启动流程: 检测硬件设备 设备驱动初始化 将根分区以只读方式挂载 载入初始进程(一般是init)init从/etc/inittab中读取数据并初始化 init运行级别: 系统启动脚本 执行运行级别对应目录下的脚本 设置热键 定义UPS设备脚本 在虚拟控制台上循环开启getty进程 定义runlevel 5时的X显示管理器init定义了06这7个运行级别,运行级别可以被指定于: 系统启动时作为核心加载参数被指定 未被指定的情况下,系统启动时从/etc/inittab中读取 在系统运行中,root用户键入init 0-6来指定。 用户可以用/sbin/runlevel来查看当前的运行级别系统的运行级别默认情况下为: 0:关机 1/S/emergency:单用户模式,通常用于维护系统 2:多用户模式但无网络 3:多用户模式(字符界面) 4:用户定义,未定义情况下与3相同 5:X11(包括网络) 6:系统重启/etc/rc.d/rc.sysinit是系统启动用的脚本,从/etc/sysctl.conf中读取核心参数: 设置系统时钟 载入keymap 激活swap分区 设置主机名 检查根文件系统并挂载 加载Raid设备 激活磁盘限额 检查并挂载其他文件系统 清除失效锁及PID文件每一个运行级别都对应一个目录/etc/rc.d/rcX.d目录内存放的,即当前运行级别需要开启的服务脚本对应/etc/rc.d/init.d/目录下的链接,链接文件开头是S,表示启动;开头是K,则表示关闭。切换运行级别,即运行这个目录里所有的脚本,用户可以通过ntsysv调整当前运行级别的开关服务,或用chkconfig,调整某一运行级别下的开关服务。/etc/rc.d/rc.local在运行级别目录下被最后一个调用,一般系统用户将针对此台计算机的开机定制设置写入其中,而非/etc/rc.d/rc.sysinit。下期我们讲系统服务哈#

    注意事项

    本文(RH131Linux管理笔记二-Linux系统启动流程.docx)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开