您的位置:首页 > 运维架构 > Linux

Linux-CentOS常见故障排除

2013-12-20 00:18 435 查看
测试环境 Vmware10虚拟机下Centos6.464位操作系统。一、stage1故障boot loader 是载入核心的重要工具,没有 boot loader,那么 kernel 根本就没有办法被系统加载,这个 boot loader 可以具有选单功能、直接加载核心档案以及控制权移交的功能等,系统必须要有 loader 才有办法加载该操作系统的核心,但是MBR 是整个硬盘的第一个 sector 内的一个区块,其大小也只有 446 bytes 。而stage1包括一部分分区表的引导程序,stage1是存在MBR (Master Boot Record, 主要启动记录区)中,第一阶段为执行boot loader 的主程序,这个主程序必须要被安装在开机区,亦即是 MBR或者是 boot sector 。但如前所述,因为 MBR 实在太小了,所以,MBR或boot sector 通常仅安装 boot loader 的最小主程序,幵没有安装 loader 的相关配置文件。我们模拟第一阶段失效出现故障,其做法让boot loader 446字节的内存直接占满,别无用处即可。

注:用/dev/zero块设备去覆盖/dev/sda, boot loader=466字节,大于原来空间被全部覆盖。重启之后我们进入引导界面,试图以硬盘来启动系统(系统已经不能正常启动)。


注:选择第三项,救援模式,可以直接点回车键,也可以按Esc键,进入boot界面,键入linux rescue 回车执行命令。一分钟之后会出现救援模式界面,进行一些选择:


选择语言:我们选择英语


选择键盘标准:选择us(美式标准)



选择急救系统镜像位置:选择localCD/DVD (本地光盘上)


选择是否启用网络功能:不启动


选择另一些高级选项:这里我们不过多选择,直接继续


提示你光盘镜像被挂在到/mnt/sysimage下,可以用shell编辑,选择继续OK。


选择开启一个shell。点击OK。


输入chroot /mnt/sysimage/ 指令到这里之后,我们要在shell里写命令,来重建MBR中的boot loader输入指令:chroot/mnt/sysimage/grub-install /dev/sda

重建成功,输入exit,在输exit,选择reboot重启系统。这样你的系统就可以正常启动了。二、stage2故障Stage 2:主程序加载配置文件:第二阶段为透过 boot loader 加载所有配置文件不相关的环境参数档案 (包括文件系统定义与主要配置文件 menu.lst),一般来说,配置文件都在 /boot 底下。我们可以删除/boot/grub/stage2模拟stage2失效。删除之后就重启系统就会出错:



这样的错误是个很严重的错误,一般系统这样挂掉,就不太行了,其实不然,在windows下,出现系统故障,我们可以进入winPE下,去修复故障,或者完成机主想要的一些工作,这些还是可以的。在我们Linux下,一样有这样类似于winPE的系统,这里有一个CentOS-6.4-x86_64-LiveDVD.iso,这样的光盘镜像一样可以进入系统,解释一下:liveDVD其实就可以理解成在光盘中不需要安装,直接就可以运行的操作系统。在我们的环境中,我们只需要将原来的安装光盘镜像文件换成CentOS-6.4-x86_64-LiveDVD.iso镜像文件,但是我们选择光盘启动,,不让还是硬盘启动模式,虚拟机下开始出现进入starting进度条时,在虚拟机里点击之后并且要按Esc键,才能进入BIOS选择第一启动项,(要眼疾手快):



选择setup进入bios

在boot位置选择CD-ROMDrive,按F10保存退出。
系统进入时有十秒时间不做选择就会进入图形界面,也可以在十秒之内按任意键,进入菜单模式,

我们选择第二项boot,进入之后是图形界面,按下Ctrl+alt+F2,进入字符界面,主要是可以使用管理员权限,登录输入root回车就可以了,接下来我们要去访问硬盘,来来查看硬盘信息:

先将硬盘挂载起来,这里就挂载在/boot目录下,这样就可以查看硬盘信息
输入命令:cd /boot/grub 可以查看到stage2文件不存在。

将grub的相关文件安装到/dev/sda硬盘上,,成功之后stage2文件就应该是生成了,我们重启之后就可以成功登录系统了。



三、grub.conf故障故障模拟,直接删除grub.conf文件。这个文件里面记录的是系统开机之后你默认要选择的系统,如果没有这个入口,系统是不会启动的。首先我们需要把第一启动项改回硬盘启动,看系统自身能否启动。


系统已经不能正常启动




执行这段代码,系统也能正常启动,我们需要到系统中去重建那个grub.conf文件




做完这些重启系统,之后可以正常开启了。

四、/boot/grub/丢失或者大部分文件丢失故障
其实这种,我们可以先用第二种故障的解决方法,用liveDCD镜像,以光盘启动为首项,进去后先将硬盘挂载到/boot/目录下,在执行grub-install –root-directory=/ /dev/sda 指令就可以重建grub,但是grub目录下还是缺少grub.conf文件,我们还需要手动去编写这个文件。刚好是第三个故障,所以我们依照第三故障的解决方法就能建立grub.conf文件,保存之后重启系统就可以了。
五、系统管理员口令丢失故障这样的问题我们只要进入单用户模式就可以修改,或删除管理员密码了,首先我们得在系统启动时按任意键进入系统选项菜单


选项中是我们要进入的操作系统,选择我们按下边的指示,按e键,进入编辑状态,

选中第二行,再按e键,在行末写上一个“1”,表示单用户模式,回车之后按b键开始引导,就进入单用户模式了,进去之后的修改,就很简单了,passwd -d root 删除口令或者你可以删除之后再添加一个新口令。

六、/etc/fstab文件损坏(比如不小心改写设置)
这种与引导程序无关的文件的损坏,系统会提示我们需要进入维护模式。


出现误写,误删的错误。


按enter键,进入维护模式。
我们进入fstab文件,文件属性就提示readonly,所以我们就不能直接修改了,我们可以重新挂载/分区:指令 mount –o rw remount /这样我们就可以修改更正了。

本文出自 “eyes,say” 博客,请务必保留此出处http://eyessay.blog.51cto.com/8365949/1343007
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: