Rhel引导及排错
2013-08-05 16:18
204 查看
Linux 开机引导过程,如下图:
1,BIOS自检,检测硬件,决定启动介质
BIOS为写入到主板上的一块闪存或EEPROM的程序,它可以在开机的时候执行,并通过BIOS程序去加载CMOS的信息,并通过CMOS内的设置取得主机的各项硬件配置(CMOS:CMOS的主要功能就是记录主板上面的重要参数,包括系统时间,CPU电压与频率,各项设备的I/O地址与IRQ等),BIOS程序也可以修改CMOS当中的参数,用BIOS设定程序的按键都不同,一般常见的使用Del按键进入BIOS设置界面
2,从硬盘启动,读硬盘的第一个扇区MBR,然后将启动引导工作交给boot loader
MBR引导记录位于物理硬盘的第一块扇区的一段引导代码(第一块扇区512个字节,其中MBR占446字节,分区表占64字节,结束标志占2字节),该扇区又称为主引导扇区(MBR扇区)
3,boot loader去找 grub,grub读取配置文件grub.conf,决定默认启动项,找到内核(kernel)和驱动(initrd)
@1. Boot loader:它的主要功能是认识操作系统的文件格式并加载内核到内存中去执行,由于不同的操作系统的文件格式不一致,因此每种操作系统都有自己的bootloader,bootloader分为两个阶: 1、stage1: 执行boot loader加载文件系统驱动 2、stage2:加载真正的配置文件: grub.conf @2. grub.conf里面有内核和驱动的信息4,内核会主动调用init进程,读取配置文件 /etc/inittab,决定启动级别,运行初始化脚本/etc/rc.d/rc.sysinit,运行相应的启动级别下的脚本 /etc/rc.d/rcN.d/
5.依据/etc/inittab 执行/etc/rc.d/rc0~6.d
6, 加载X Window界面,等待用户输入用户名和密码
Grub.conf
GRUB.conf文件丢失修复:
第一步:运行root (hd0,0)(这是/boot所在的分区,hd0第一块硬盘,0第一个分区)
第二步:执行kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet (用来指定linux内核,root指定根的真正位置,一般用于RHEL6.x版本上面,5.x版本不需要指定根的路径)
[b]第三步:执行initrd /initrd-2.6.18-53.el5.img(用来指定initrd文件)[/b]
[b][b]第四步:执行boot[/b][/b]
[b][b][b]注意:运行root或者find /vmlinuz-2.6.18-53el5(可以使用TAB补全),可以搜索vmlinuz所在分区,也就是/boot所在分区[/b][/b][/b]
[b][b][b]
[/b][/b][/b]
看见红色的REDHAT就证明内核加载成功了
进入系统后需要把启动文件写入grub.conf文件,否则下次重新启动还是无法停留以上界面无法进入系统
Linux rescue
插入光盘---输入"linux rescue"或者按"F5"后输入“Linux rescue”---回车--“OK”--"OK"--"NO(修复模式下不需要网络)"---"continue"---"OK"
如果/boot目录下文件全部丢失可以通过如下完成
安装好的GRUB是没有配置文件的,可以自己写一个
/etc/inittab文件丢失(bash损坏无法进入登录界面修复方法类似)
丢失提示信息:
修改密码
倒计时时按字母“e”
上图中再按“e”
选择kernel行后再按字母“e”
在上图中最后输入1或者s或者S或者single回车后都可以进入单用户模式,single 前有一个空格
上图中再按“b”
需要输入刚才设置的grub密码后进入单用户模式修改用户密码
修改密码后重启
这里有个问题,设置了grub密码后每次重启也需要输入grub密码,这样远程重启就不方便了
1,BIOS自检,检测硬件,决定启动介质
BIOS为写入到主板上的一块闪存或EEPROM的程序,它可以在开机的时候执行,并通过BIOS程序去加载CMOS的信息,并通过CMOS内的设置取得主机的各项硬件配置(CMOS:CMOS的主要功能就是记录主板上面的重要参数,包括系统时间,CPU电压与频率,各项设备的I/O地址与IRQ等),BIOS程序也可以修改CMOS当中的参数,用BIOS设定程序的按键都不同,一般常见的使用Del按键进入BIOS设置界面
2,从硬盘启动,读硬盘的第一个扇区MBR,然后将启动引导工作交给boot loader
MBR引导记录位于物理硬盘的第一块扇区的一段引导代码(第一块扇区512个字节,其中MBR占446字节,分区表占64字节,结束标志占2字节),该扇区又称为主引导扇区(MBR扇区)
3,boot loader去找 grub,grub读取配置文件grub.conf,决定默认启动项,找到内核(kernel)和驱动(initrd)
@1. Boot loader:它的主要功能是认识操作系统的文件格式并加载内核到内存中去执行,由于不同的操作系统的文件格式不一致,因此每种操作系统都有自己的bootloader,bootloader分为两个阶: 1、stage1: 执行boot loader加载文件系统驱动 2、stage2:加载真正的配置文件: grub.conf @2. grub.conf里面有内核和驱动的信息4,内核会主动调用init进程,读取配置文件 /etc/inittab,决定启动级别,运行初始化脚本/etc/rc.d/rc.sysinit,运行相应的启动级别下的脚本 /etc/rc.d/rcN.d/
5.依据/etc/inittab 执行/etc/rc.d/rc0~6.d
6, 加载X Window界面,等待用户输入用户名和密码
Grub.conf
[root@justin ~]# vim /boot/grub/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 ;默认选择第一个title,title是系统的分隔符,第一个title后面就是第一个系统,用0表示。 timeout=5 ;默认在启动选择界面停留的时间,单位是秒。等待5秒自动进入默认操作系统 splashimage=(hd0,0)/grub/splash.xpm.gz ;splashimage是grub启动背景画面,这个可以不要 hiddenmenu ;是隐藏菜单只有按上下键才会出现 title Red Hat Enterprise Linux Server (2.6.18-308.el5) ;title后面就是系统在启动时候显示的名字 root (hd0,0) ;root 分指定你的内核所在的分区。hd0表示第一块硬盘设备。 0表示第一个分区 也是/boot所在的分区 kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/ rhgb quiet ;kernel 内核所在位置和名字,ro 只读;root=LABEL=/ 根分区是谁;rhgb---redhat graphics boot(图形化显示启动过程) ;quiet (静默式启动,不显示dmesg信息),类似硬件自检的消息不回显示 initrd /initrd-2.6.18-308.el5.img ~
#如果有多个系统的话,会有多个title 。 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的第一个扇面启动MBR 是Linux引导的第一个阶段(程序);GRUB是引导的第二阶段(配置文件)这两个阶段容易出现问题
GRUB.conf文件丢失修复:
#title后三行丢失 hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-308.el5) # root (hd0,0) # kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/1 rhgb quiet # initrd /initrd-2.6.18-308.el5.img因为注释掉了grub.conf 文件后三项,GRUB找不到启动文件了
第一步:运行root (hd0,0)(这是/boot所在的分区,hd0第一块硬盘,0第一个分区)
第二步:执行kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet (用来指定linux内核,root指定根的真正位置,一般用于RHEL6.x版本上面,5.x版本不需要指定根的路径)
[b]第三步:执行initrd /initrd-2.6.18-53.el5.img(用来指定initrd文件)[/b]
[b][b]第四步:执行boot[/b][/b]
[b][b][b]注意:运行root或者find /vmlinuz-2.6.18-53el5(可以使用TAB补全),可以搜索vmlinuz所在分区,也就是/boot所在分区[/b][/b][/b]
[b][b][b]
[/b][/b][/b]
看见红色的REDHAT就证明内核加载成功了
进入系统后需要把启动文件写入grub.conf文件,否则下次重新启动还是无法停留以上界面无法进入系统
Linux rescue
插入光盘---输入"linux rescue"或者按"F5"后输入“Linux rescue”---回车--“OK”--"OK"--"NO(修复模式下不需要网络)"---"continue"---"OK"
sh-3.2#chroot /mnt/sysimage ;chroot切换到硬盘的系统 sh-3.2#vim /boot/grub/grub.conf ;可以直接通过vim编辑grub.conf文件添加上启动文件
如果/boot目录下文件全部丢失可以通过如下完成
sh-3.2#cd Server/安装kernel,在安装内核时会自动生成initrd
安装好的GRUB是没有配置文件的,可以自己写一个
sh-3.2#cd /boot/grub/ sh-3.2#touch grub.conf sh-3.2#vim grub.conf ;写入启动文件用exit退出,连续两次
/etc/inittab文件丢失(bash损坏无法进入登录界面修复方法类似)
丢失提示信息:
sh-3.2# rpm -qf /etc/inittab #查看RHEL5.x版本的inittab文件是由那个软件包安装的
sh-3.2# exit sh-3.2# exit启用grub编辑保护,修改root的密码
修改密码
倒计时时按字母“e”
上图中再按“e”
选择kernel行后再按字母“e”
在上图中最后输入1或者s或者S或者single回车后都可以进入单用户模式,single 前有一个空格
上图中再按“b”
需要输入刚才设置的grub密码后进入单用户模式修改用户密码
修改密码后重启
这里有个问题,设置了grub密码后每次重启也需要输入grub密码,这样远程重启就不方便了
相关文章推荐
- RHEL引导过程
- RHEL 故障排错
- rhel7 grub配置文件及排错root密码找回
- RHEL 5基础篇—了解系统的引导过程
- rhel7引导启动过程修复
- rhel7 grub配置文件及排错 破解root密码
- rh436 - 基于rhel6.2的apache集群排错 - Cannot assign requested address: make_sock: could not bind to address
- 运维笔记41 zabbix3.2监控搭建(rhel6.5+nginx0.7+mysql5.7+php5.6+rpm安装的zabbix3.2带详细排错过程)
- Linux 引导程序与排错
- rhel7 grub配置文件及排错 破解root密码
- rhel6系统启动过程故障排错处理
- RHEL6基础之十六RHEL引导过程及修复、文件系统修复、root密码重置
- rhel 6.1 grub 引导故障排除
- U盘安装RHEL6.4引导安装在U盘上
- rhel7 grub配置文件及排错 破解root密码
- CentOS的引导过程以及遇到的故障排错的方法步骤
- 备忘:rhel 6.1 grub 引导故障排除
- linux- rhel7启动排错
- 系统排错----文件引导出错