收藏 分享(赏)

RH131Linux管理笔记二-Linux系统启动流程 (grub).doc

上传人:hskm5268 文档编号:7058627 上传时间:2019-05-04 格式:DOC 页数:32 大小:3.59MB
下载 相关 举报
RH131Linux管理笔记二-Linux系统启动流程 (grub).doc_第1页
第1页 / 共32页
RH131Linux管理笔记二-Linux系统启动流程 (grub).doc_第2页
第2页 / 共32页
RH131Linux管理笔记二-Linux系统启动流程 (grub).doc_第3页
第3页 / 共32页
RH131Linux管理笔记二-Linux系统启动流程 (grub).doc_第4页
第4页 / 共32页
RH131Linux管理笔记二-Linux系统启动流程 (grub).doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、RH131Linux 管理笔记二-Linux 系统启动流程这节课程是相当重要的。也是 RHCE 考试上午的考的主要内容,系统排错。只要你看懂了系统的启动流程,排错就基本没有多大问题了。计算机启动,上电自检检查 BIOS 就不说了,所有系统都那样。下面就是 LINUX 的启动流程: 、硬件读取引导扇区 、加载 LILO 或者 Grub(一般我们使用的是 GRUB,这个是重点) 、加载内核(以只读方式挂载) 、挂载根文件系统 、启动 init,一切进程的“祖父” 、读取/etc/inittab 文件 、读取 rc.sysinit 文件 、运行 rcX.d 下的文件(文件都是 init.d 下的符号

2、链接) 其中有一个 xinetd 的超级进程,调用/etc/xinetd.conf 配置文件,从配置文件中知道读/etc/xinetd.d 文件,结束后调用 Miggetty 、读取/etc/rc.d/rc.local 文件具体步骤在启动的时候大家都能看见滴哈 BIOS 初始化 检查外围设备 检查启动设备 读区 MBR 启动引导工具引导并运行核心,分为两个独立的阶段: 第一阶段:存放在启动扇区 第二阶段;/boot 目录下的文件第一阶段即 BIOS 从启动扇区中读入 IPL(初始化程序引导工具)这一过程。因为 MBR 的空间太小,所以启动引导工具往往还需要从其他地方进一步读入数据,即所谓第二阶

3、段。这通常是一个可以做选择的交互界面。在 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 来重安装gr

4、ub现在我们打开/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

5、 /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/spl

6、ash.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

7、内核镜象的名字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 盘 ti

8、tle windows #另一个操作系统的标题 rootnoverify (hd0,1) #操作系统存放在 hd0,1 上,不要在 grub 里 mount chainloader +1 #从 hd0,1 的第一个扇面启动大家记一下自己的系统哈,下面我们做个实验,特别是系统版本不一样的更要记住。把后面三行删掉后保存退出。OK 后我们重新启动系统。我们重启后系统停在这里了哈出现刚才的图是正常的,因为我们修改了 grub.conf 文件,GRUB 找不到启动文件了,所以我们就要手动敲进去第一步:运行 root (hd0,0) (这是/boot 所在的分区)第二步:执行 kernel /vmlinu

9、z-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-53

10、el5(可以使用 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 次小试牛刀,这次我们

11、来点更狠的哈我们要来点狂暴滴动作哈o(_)o来狠滴哈,我们把/boot 分区里的文件全部删除了掉哦,一个也不剩哈(不删 boot 分区哦,只删除里面文件)rm -rf /boot/*又跑这来了哈好吧,现在我们把 RHEL5 的 ISO 镜像放进去,然后设置从光驱启动,我们要进救援模式了。第一步:将 RHEL5 安装放入光驱并设置从光驱启动系统第二步:输入 linux rescue 或按 F5 进入救援模式如果上一步是按的 F5,那我们在这一步输入 linux rescue 哈第三步:这里选择语言哈这里选择美式键盘这里我们不启用网络接口哈第四步:这步注意,要让系统帮你自动挂载以前的系统,也就是硬

12、盘里的系统好了,现在就正式进入救援模式了。下面我们使用#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 -forc

13、e 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.

14、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 的配置文件

15、是不是刚才我写的是这样的吧其实 BOOT 分区删了都可以恢复,只是复杂一点点能够搞定的前提是,df 命令里还有/dev/sda1 是 boot 分区的记录,不然就比较危险了我们先分区,然后安装内核和 GRUB,就可以搞定了。现在就参照上面的安装内核和 GRUB 就可以解决问题了。关于 boot 分区排错全解析,救援模式,内核安装。#还有一个 superlogin 模式,大家没见过,我们来看下这个模式什么样子大家编辑/etc/fstab,然后记住这个文件。很重要滴哦在 LINUX 系统中,大部分系统配置信息都以各种文件的形式保存在/etc 目录中。而/etc/fstab 就是专门用来配置本地文件

16、系统。我们 在 LINUX 中常常用mount 命令把一硬盘分区或者一张光盘挂装到文件系统中。/etc/fstab 就是在开机引导的时候自动挂载 LINUX 的文件系统。 事实上通过修改这个配置文件我们可以挂载所有的凡是 LINUX 所支持的文件系统。在 LINUX 中/etc/fstab 的数据项如下所示:/dev/device mountpoint type rules 0 orderfstab 文件是开机后系统在第 4 步读取滴第一列:设备或者卷标名称 第二列:mountpoint 挂载点,如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSS

17、TND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home 下面就是一个不错选择。第三列:文件系统,LINUX 支持 N 多种文件类型,如果你想知道具体点滴话可以在 LINUX 下用 fdisk 查看。第四列:挂载参数 rules 是指挂载时的规则。下面列举几个常用的: auto:开机自动挂载 default:按照大多数永久文件系统的缺省值设置挂载定义 noauto:开机不自动挂载 nouser:只有超级用户可以挂载 ro:按只读权限挂载 rw:按可读可写权限挂载 user:任何用户都可以挂载 noexec:不允许可执行文件执行,但千万不要把根分区挂载为

18、 noexec,那就无法使用系统了,连 mount 命令都无法使用了,这时只有重新做系统了! nodev:不允许挂载设备文件 nosuid,nosgid:不允许有 suid 和 sgid 属性请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是 noauto.如果你的 LINUX 没法显示中文,先装一个中文字库(例如 GB2312),然后在这里加一个 codepage=GB2312。记得两个规则之间用逗号分开。第五列:dump 检查时候,备不备份0 是指 dump(系统备份工具)。这一项为 0,就表示从不备份。如果上次用dump 备份,将显示备份至今的天数。第六列:开机是否检查;0 为不检

19、查;1 为第一个检查;2 为 1 检查了才检查 2 order 指 fsck(启动时 fsck 检查的顺序)。为 0 就表示不检查,(/)分区永远都是 1,其它的分区只能从 2 开始,当数字相同就同时检查(但不能有两 1)。如 果我要把第二块 IDE 硬盘上的 windows C 区挂到文件系统中,那么数据项是:/dev/hdb1 /c vfat defaults 0 0 (/c 是事先建立的文件夹,作为 c 盘的挂载点。)当你修改了/etc/fstab 后,一定要重新引导系统才会有效。对于已经挂载好的设备,现在要改变挂载参数,这时可以不用卸载该设备,而可以使用下面的命令(没有挂载的设备,re

20、mount 这个参数无效) #mount /mnt/D/ -o remount,ro (改 defaults 为 ro)OK,大家把/etc/fstab 这个文件记住哈,现在我们把/根分区那行删除掉,然后保存退出,重新启动系统哈 效果如下:重新启动系统的时候,大家注意他的启动顺序,看仔细了能看见红色 Red Hat 就证明内核加载成功,加载内核是启动系统的第三步。第 4 步,加载文件系统,这个时候读取的就是 fstab 文件了,由于我们的fstab 文件出问题了,所以这步就没成功,卡在上面那里了,我们输入自己 root的密码如上图哈,输入正确后,就会出现命令提示符我们就可以操作了,我们先去看下

21、 fstab 文件哈:vim /etc/fstab明显的红色,就是有问题的,后面挂载点是根。当我们要编辑 LABEL=为 LABEL=/时,系统提示/etc/fstab 是只读文件,开始挂载的时候估计是为了安全,所以是只读的。我们需要以读写方式重新挂载。在此之前,我们用 e2label 看看哪个分区的卷标是根,显示/dev/sda2 是我们的/根分区哈。我们以读写方式重新挂载:mount -o remount,rw /然后修改 fstab,把这里改成设备/dev/sda2,不用卷标了,保存退出。最后用 exit 退出系统,重新启动,看我们能不能正常进入系统哈又到这里了哈OK,开始启动服务了,已

22、经走到第 8 步了OK,系统正常哈这样就完成这个错误的修复了,这个主要让我们有个了解,知道是怎么回事,有这个东西,使用时间长了,我们就会遇见这些问题#内核模型单片型内核 单片型内核将各种硬件支持、网络协议与文件系统管理都编译入一个单一的文件中。模块型内核: 模块型内核则允许计算机在使用到某一项功能的时候自动加载,防止了核心臃肿,是大部分情况下的标准构建。默认核心存放路径:/boot 核心版本命名规则:主版本号、次版本号、补丁级数 Red Hat 附加参数:发布号显示当前系统的内核信息#uname -r 核心 RPM 包 kernel-rpm 预编译核心及模块 kernel-source-rpm

23、 核心源代码,需要人工编译出核心并安装 kernel-.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”创

24、建,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 版本号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报