




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LINUX中GRUB故障排除在Linux系统进行安装系统、更新软件等操作时,系统经常会出现安装故障和更新故障。本章主要针对开机后无法引导系统的故障,专门介绍了GRUB系统引导软件的安装和使用,以及在紧急状况下如何进入救援模式并恢复系统设置。9.1 Linux启动安装进程故障排除机器启动时若GRUB配置文件出错,则无法顺利进入操作系统。GRUB在Linux系统中的作用日益重要。本节就GRUB软件的安装和使用过程中经常出现的故障的排除方法进行了详细的介绍。9.1.1 故障001开机启动后GRUB失败开机后启动GRUB失败。GRUB(Grand Unified Boot Loader)是Linux环境下常用的引导程序,经常会由于配置被更改或者重新安装系统而失效。当我们启动系统,在自检结束后没有进入GRUB选项菜单,而只是出现grub命令提示符时,表示系统启动GRUB失败了。系统无法通过GRUB的设置进入Windows或Linux系统。用户在更改GRUB配置文件后没有及时修复。根据是否将/boot单独分区,分两种情况进行说明。1没有将/boot单独分区的情况在grub提示符下输入命令:grubinstall (hd0,1)/boot/Grub/stage1 d (hd0) (hd0,1)/boot/grub/stage2 p (hd0,1)/boot/grub/menu.lstGRUB的安装分为两个主要的步骤:stage1和stage2。stage1是一段嵌入MBR的迷你代码。stage2是主要部分,在stage1把控制权传递给它后,就由它来接管所有事情。install后面必须指定stage1的位置,这里假设Fedora Core7安装在/dev/sda2,则其分区位置为(hd0,6),因为GRUB能读取文件系统,所以还指定了分区上目录位置:/boot/grub/stage1,参数d表示stage1将寻找stage2所在的磁盘。接着就是GRUB的安装位置:(hd0),这里就是指安装在MBR(主引导记录)。后面的参数指定stage2的位置:(hd0,1)。参数p指定menu.lst文件的位置。在GRUB的分区表示中,第一块可读取的硬盘驱动器是hd0,第二块可读取的硬盘驱动器(即使它被连接在第三、第四或更高的IDE端口上)是hd1,以此类推。在GRUB的分区表中,分区号从0开始。因此,/dev/hda1在GRUB表里表示为(hd0,0),/dev/hda7在GRUB表里表示为(hd0,6)。注意:GRUB里面不区分硬盘类型hda和sda,即/dev/hda1和/dev/sda1同样表示为(hd0,0)。2将/boot单独分区的情况对于以/boot作为单独分区的情况,在GRUB提示符下输入命令:grubinstall (hd0,1)/grub/stage1 d (hd0) (hd0,1)/grub/stage2 p (hd0,1)/grub/menu.lst上例假设/boot位于(hd0,1)(也就是hda2),而/位于(hd0,2)(也就是hda3),我们不能用(hd0,2)/boot/grub/stage1,因为GRUB不知道(hd0,1)是/boot,所以必须首先指向挂接为/boot的分区,然后把目录指向那里。重新启动系统以后,就可以看到GRUB菜单了。另外还有一种方法可以恢复GRUB到MBR,步骤如下。(1)查找/boot/grub/grub.conf文件,如果命令执行成功,会返回对应分区,如(hd0,6)。grubfind/boot/grub/grub.conf(hd0,6)(2)挂载分区(hd0,6),命令返回对应分区的文件系统格式。grubroot(hd0,6)the type of (hd0,6) is ext2如果是Linux系统,则为ext2fs文件系统格式;若是Windows XP系统,则为NTFS文件系统格式,其他还有FAT32等格式。(3)安装GRUB到MBR,(hd0)指第一个硬盘。grubsetup(hd0)(4)重新启动后就可以看见以下菜单。grubreboot.1.2 故障002使用GRUB引导Windows系统失败开机后GRUB启动Windows系统失败。GRUB是一个功能强大的引导软件,可以同时支持Linux和Windows系统,当机器安装的Windows系统无法成功在GRUB引导下启动,而只是出现grub命令提示符时,GRUB启动Windows系统失败。用户在重装Windows系统后更改了GRUB配置文件记录。系统启动后只出现grub,而没有别的提示。在这种情况下有两种方法可以引导Windows系统。(1)使用GRUB命令引导。grubroot(hd0,0)grubchainloader+1grubboot这里只有第一个命令需要说明一下,root命令挂载分区,当Windows系统安装在第一个分区(C盘),即hda1或sda1时,使用(hd0,0)。如果不知道Windows系统安装在哪个分区,可以使用grubroot(hd0,n)尝试,n=1,2,39。(2)使用GRUB菜单选项引导。当GRUB菜单出现后,手动选择Windows选项。如果点击选项但无法引导,可以按e进入编辑模式,查看对应的语句。保证语句的正确,特别是分区号必须正确。正确的语句格式如下:root(hd0,0)chainloader+19.1.3 故障003使用GRUB引导Linux系统失败开机后GRUB启动Linux系统失败。GRUB是一个功能强大的引导软件,可以同时支持Linux和Windows系统,当机器安装的Linux系统无法成功在GRUB引导下启动,而只是出现grub命令提示符时,GRUB引导Linux系统失败。用户更改了GRUB配置文件或重装系统后GRUB配置文件中引导记录被更改。要想在GRUB里引导Linux系统,必须知道Linux系统内核的版本号。下面根据是否将/boot单独分区,分两种情况进行说明。1系统将/boot单独分区的情况假设一台系统将/dev/sda1挂载为/boot,将/dev/sda7挂载为/。在/boot目录中,内核的文件名是vmlinuz-2.6.21-1.3194.fc7。这种情况下,要引导系统,应当在grub提示符后面输入下面的命令:grubroot(hd0,0)grubkernel/vmlinuz-2.6.21-1.3194.fc7 root=/dev/sda7grubboot这里root语句给出了包含内核的分区。kernel语句描述了分区中内核文件的路径和文件名。参数root=给出了包含/sbin/init的分区,即系统的根分区。2没有将/boot单独分区的情况假设系统没有将/boot单独分区,而是将系统全部安装在/dev/sda1下,则使用的命令稍有不同。grubroot(hd0,0)grubkernel/boot/vmlinuz-2.6.21-1.3194.fc7 root=/dev/sda1grubboot9.1.4 故障004使用GRUB引导多系统失败使用GRUB引导多系统失败。GRUB是一个功能强大的引导软件,可以同时支持Linux和Windows系统,当机器中同时安装的Windows或Linux系统无法成功在GRUB引导下启动,而只是出现grub命令提示符时,表明GRUB引导多系统失败。用户更改了GRUB配置文件或重装系统后GRUB配置文件中引导记录被更改。当使用GRUB来引导多系统时,可以在GRUB菜单通过选项选择引导的系统。如果无法引导,则要查看相关的配置文件/boot/grub/menu.lst。事实上该文件是/boot/grub/grub.conf文件的一个软连接。使用vi文本编辑器打开/boot/grub/menu.lst配置文件,内容如下:#Grub.conf generated by anaconda#NOTICE:You have a /boot partition.This means that#all kernel and initrd paths are relative to /boot/,eg.#root(hd0,7)#kernel/vmlinuz-version ro root=/dev/VolGroup00/LogVol00#initrd/initrd-version.img#boot=/dev/sdadefault=2timeout=5splashimage=(hd0,7)/grub/splash.xpm.gzhiddenmenutitleFedora(2.6.20-2925.9.fc7xen)root(hd0,7)kernel/xen.gz-2.6.20-2925.9.fc7module/vmlinuz-2.6.20-2925.9.fc7xen roroot=/dev/VolGroup00/LogVol00 rhgb quietmodule/initrd-2.6.20-2925.9.fc7xen.imgtitleFedora-base(2.6.21-1.3194.fc7)root(hd0,7)kernel/vmlinuz-2.6.21-1.3194.fc7 roroot=/dev/VolGroup00/LogVol00 rhgb quietinitrd/initrd-2.6.21-1.3194.fc7.imgtitleWindowsXProotnoverify(hd0,0)chainloader+1其中boot=/dev/sda说明硬盘是sda类型,即SCSI接口的硬盘。default=2定义系统默认的启动入口,这里是2,代表第3个入口,即Windows系统。timeout=5缺省入口的显示延迟时间(s)。splashimage=(hd0,7)/Grub/splash.xpm.gz用于GRUB的启动界面。hiddenmenu隐藏菜单界面。titleFedora(2.6.20-2925.9.fc7xen)启动入口,每一个入口都以一个title的关键字开始,后面跟上对该启动入口的描述。这也是显示在菜单上的选项。root(hd0,7)kernel/xen.gz-2.6.20-2925.9.fc7module/vmlinuz-2.6.20-2925.9.fc7xen ro root=/dev/VolGroup00/LogVol00 rhgb quietmodule/initrd-2.6.20-2925.9.fc7xen.img这是对应入口Fedora(2.6.20-2925.9.fc7xen)的具体引导命令,包括挂载根目录命令root,加载内核命令kernel,还有加载模块命令module。titleFedora-base(2.6.21-1.3194.fc7)root(hd0,7)kernel/vmlinuz-2.6.21-1.3194.fc7roroot=/dev/VolGroup00/LogVol00rhgbquietinitrd/initrd-2.6.21-1.3194.fc7.img这是第2个启动入口Fedora-base(2.6.21-1.3194.fc7)的描述和具体的引导命令,注意其与第1个入口的引导命令差别。当GRUB无法引导多系统时,需要修改配置文件中不同启动入口的具体命令设置。9.2 求援模式本节主要讲解Linux修复以及救援模式。很多用户现在都是安装Windows和Linux双系统进行学习和研究,在重装Windows或者是执行了一些误操作的时候,导致Linux启动失败。最简单的修复方法是重装Linux系统,但是花费时间较长。以下给出进入Linux救援模式的方法,以帮助读者对损坏系统进行相关的修复操作。9.2.1 故障005无法进入救援模式无法进入救援模式。系统连单用户模式都无法进入时或出现GRUB命令行也不能解决的引导问题。系统找不到启动文件或启动文件被更改。当系统连单用户模式都无法进入时或出现GRUB命令行也不能解决的引导问题,需要使用Linux救援模式来进行故障排除。此方法可分为4步骤进行。(1)将Linux安装光盘(如果使用CD光盘,则放入第一张引导光盘)放入光驱,设置固件CMOS/BIOS为光盘引导,当Linux安装画面出现后,选择Rescue installed system,按Tab键进行编辑,出现以下语句:vmlinuz initrd=initrd.img rescue回车进入救援模式。(2)系统会检测硬件,引导光盘上的Linux环境,依次提示选择救援模式下使用的语言(建议选择默认的英文即可,因为部分Linux系统选择中文会出现乱码);键盘设置用默认的us就好;网络设置可以根据需要,大部分故障修复不需要网络连接,可不进行此项设置,选择No。(3)接下来系统将试图查找根分区。默认在救援模式,硬盘的根分区将挂载到光盘Linux环境的/mnt/sysimage目录下,默认选项continue表示挂载权限为读写;Read-only为只读,如果出现检测失败,可以选择skip跳过。此处,因为要对系统进行修复,所以需要有读写权限,一般选择默认选项continue。进入下一步后,系统提示执行chroot /mnt/sysimage命令,可以将根目录挂载到硬盘系统的根目录中去。(4)出现sh-3.2#提示符。执行以上步骤就可以进入到救援模式,此时可进行相关操作修复损坏的Linux系统。9.2.2 故障006配置文件丢失配置文件丢失。系统在引导期间,很重要的一个过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果/etc/inittab误删除或修改错误,Linux将无法正常启动。误删除或修改错误配置文件。此时,只有通过救援模式才可以解决此类问题,有以下两种情况。1有备份文件的恢复办法进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议对系统中的重要数据目录,如/etc、/boot等进行备份),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittab.bak,则在救援模式下在终端中输入命令:sh-3.2#chroot /mnt/sysimagesh-3.2#cp /etc/inittab.bak /etc/inittab重新启动电脑,系统恢复完毕。2没有备份文件的恢复办法此方法可分为两个步骤。(1)如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果),在终端中输入命令:sh-3.2#chroot /mnt/sysimagesh-3.2#rpm -qf /etc/inittabinitscripts-8.54-1退出chroot模式,在终端中输入命令:sh-3.2#exit(2)挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下),在终端中输入命令:sh-3.2#mount /dev/hdc /mnt/sourceFedora系统的RPM包存放在光盘Fedora/RPMS目录下,另外,因为要修复的硬盘系统的根目录在/mnt/sysimage下,需要使用-root选项指定其位置。覆盖安装/etc/inittab文件所在的RPM包,在终端中输入命令:sh-3.2#rpm -ivh -replacepkgs -root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.54-1.i386.rpm其中的rpm命令选项replacepkgs表示覆盖安装,执行完成后,即已经恢复了此文件。如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,在终端中输入命令:sh-3.2#rpm2cpio mnt/source/Fedora/RPMS/initscripts-8.54-1.i386.rpm|cpio-idv ./etc/inittabsh-3.2#cp etc/inittab /mnt/sysimage/etc重新启动电脑,系统恢复完毕。此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。9.3 重装Windows后无法进入Linux系统的故障排除当安装双系统环境,先安装Linux再安装Windows;或者已经安装好双系统环境的Windows损坏,在重新安装Windows后,保存 GRUB的MBR(Master Boot Record,主引导记录)会被Windows系统的自举程序NTLDR所覆盖,造成Linux系统无法引导。9.3.1 故障007无法进入Linux系统无法进入Linux系统。启动Linux失败。系统找不到启动文件或是启动文件被更改。此方法可分为3个步骤。(1)如果要恢复双系统引导,首先用上述方法进入救援模式,在终端中重新输入命令:sh-3.2#chroot /mnt/sysimage(2)将根目录切换到硬盘系统的根目录中,然后在终端中输入命令grub-install重新安装GRUB。sh-3.2#grub-install /dev/hda/dev/had为硬盘名称,如使用SCSI硬盘或Linux安装在第二块IDE硬盘,此项设置要做相应调整。(3)然后依次执行exit命令,退出chroot模式及救援模式(执行两次exit命令),在终端中重新输入命令:sh-3.2#exitsh-3.2#exit系统重启后,将恢复GRUB引导的双系统启动。9.3.2 故障008 MBR损坏无法进入GRUB引导系统MBR损坏无法进入GRUB引导系统。系统连单用户模式都无法进入时或出现GRUB命令行也不能解决的引导问题。重装。此方法可分为3个步骤。(1)从/projects/grub4dos主页下载grub4dos- 0.4.3.zip,解压后将grub4dos-0.4.3目录下文件grldr复制到C盘根目录下(假如C盘是系统盘);修改文件C:boot.ini。boot.ini通常是隐藏、只读的系统文件,所以需要将其的隐藏、只读属性去掉,才可以编辑。在我的电脑工具菜单文件夹选项下的查看栏中取消隐藏受保护的操作系统文件和隐藏已知文件类型的扩展名,并选择显示所有文件和文件夹,就可以看到C盘根目录下的boot.ini文件了,在文件最后加入一行:c:grldr=grub重启系统,当出现选择系统列表时选择GRUB进入,这时原来GRUB的菜单就可见了,选择Linux系统对应的菜单项进入Linux系统。(2)进入后,在终端中输入命令:#grub将显示GRUB提示符,在终端中输入命令:grubfind /boot/vmlinuz该命令将显示/boot/vmlinuz所在的磁盘分区,就是Linux的引导分区,例如系统的显示结果:grub (hd0,X)(3)然后在终端中输入命令:grubroot (hd0,X)grubsetup (hd0)上面最后一条将GRUB重新写入MBR中,重启系统,启动菜单又可见了。其中hd0表示第一块硬盘,X表Linux所在分区,可以在输入hd0,后按Tab键可以选择Linux所在分区,还有一个强调的是在root和setup后面都有空格。如果成功将提示successful。9.3.3 故障009无法进入GRUB界面故障009无法进入GRUB界面。GRUB无法引导系统。GRUB配置文件错误。这种方法并不修复MBR,完全靠Grub for dos引导Linux。此方法可分为3个步骤。(1)下载Grub for dos,解压缩,会生成Grub_for_dos文件夹,将该文件夹中的grldr文件复制到Windows系统分区的根目录下,还要将该文件夹的子目录boot目录的子目录Grub目录下的menu.lst文件也复制到Windows系统分区的根目录下。(2)到Windows系统分区的根目录下修改menu.lst文件,假如Linux装在分区hda6(在Grub里表示为(hd0,5)上,在该文件里添加下面一段:title Linuxkernel (hd0,5)/boot/vmlinuz root=/dev/hda6initrd (hd0,5)/boot/initrd.img(3)编辑系统文件boot.ini,在该文件的最后添加一行:C:grldr=grub保存,重启系统会发现在选择启动的操作系统时多出了一行Grub,选择这个选项,引导程序Grub将自动读取C盘下刚才编辑的文件menu.lst,此时将显示一个列表,每行代表一个要引导的系统。选择上面添加的Linux这一行,之后将引导Linux操作系统,系统修复完毕。系统分区(如C盘)下的那两个文件grldr和menu.lst千万不要删除,如果删除就无法引导Linux了。在使用linux过程中经常碰到Linux启动直接进入GRUB界面但没有启动选单(只剩下一个“grub”提示符)的状况,这时就认定系统已经没救,开始重新安装,甚至包括一些接触Linux已久的人也是如此。其实出现此种状况,只要了解Linux系统引导过程中GRUB的作用以及工作流程,就非常容易解决。Linux系统在启动过程中,首先是硬件(PC上大多是CMOS/BIOS)的物理检测,诸如检测系统的显卡、CPU和硬盘等,可从系统按下电源后看到此检测信息;检测无问题,将读取硬盘的MBR(主引导分区)中的引导程序,Linux中常用的引程序如LILO和GRUB。引导程序GRUB在系统启动期间只有一个作用,就是载入内核;内核在引导期间有两个主要的作用,一个是驱动系统硬件,另一个将启动系统进程init;init进程将读取其配置文件/etc/inittab完成后续所有的引导。所以其实GRUB在引导期间只有一个最重要的作用,就是载入系统内核。那么GRUB在引导期间到底是如何执行引导的呢?让我们来看以下的GRUB配置文件/boot/grub/grub.conf(一定要注意/etc/grub.conf只是此文件的一个软链接)片断示例:default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.18-53.el5PAE) root (hd0,0) kernel /vmlinuz-2.6.18-53.el5PAE ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.18-53.el5PAE.img此段是加载GRUB的最重要的设置段,其中“title”段指定了GRUB引导界面系统的标题;“root”段指定了/boot分区所在的位置;“kernel”段指定了内核所在位置(vmlinuz-2.6.18-53.el5PAE ro root=LABEL=/ rhgb quiet),内核加载时权限属性为只读(“ro”),以及指定根分区所在位置(root=LABEL=/);initrd指定了Linux镜像文件所在位置。当Linux系统中GRUB配置文件/boot/grub/grub.conf内容修改错误或损坏时,系统启动后会自动进入GRUB命令行模式(“grub”),最常见的原因无外乎两个,一是GRUB配置文件中此三段修改错误;二是GRUB配置文件丢失。(还有少数原因,如内核文件或镜像文件损坏、丢失,/boot目录误删除等)此时可以使用如下几种方法进行恢复。存在GRUB配置文件备份如果存在GRUB配置文件备份,那么比较省事的办法就是对其进行备份恢复,可以按如下方法进行: 把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中设定系统用光驱引导; 等安装界面出来后,按F2键(不同Linux版本此快捷键可能稍有不同,如即时Linux是按F5键盘),进入进入模式列表的界面,输入“linux rescue”,进入Linux维护模式; 一系列键盘以及几项简单的配制(如设置键盘等),这里不多做介绍,然后会出现如下字符:桌面应用sh#此时就可以在此命令行下执行操作了:sh#cp /backup/gru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新闻记者职业资格考试新闻基础知识模拟试卷及答案解析一
- 2025年7月份三级培训教育考试卷及答案
- 2025年智能制造与工业互联网考试试题及答案
- Unit 4 The Earth 第1课时 Reading 教学设计 2025学年沪教版英语七年级上册
- 任务三 发布动画作品 说课稿 -2024-2025学年桂科版初中信息技术八年级上册
- 广东省珠海市工厂消防安全测试题四(含答案)
- 安徽省芜湖市工厂消防安全测试题十六(含答案)
- 2025-2030中国酸奶饮品零售渠道变革及营销策略研究报告
- 2025-2030中国进口啤酒市场格局及本土化策略研究
- 2025-2030中国装配式建筑行业发展现状及投资机会分析报告
- 共享实验室合作协议书
- DBJ04-T 290-2012 袖阀管注浆加固地基技术规程
- 客服人员安全操作培训课件
- 城管协管员面试题目及答案
- DL-T 794-2024 火力发电厂锅炉化学清洗导则
- 地质项目合同管理办法
- 天津市受问责干部管理办法
- 内科进修汇报护理
- 口腔咨询师沟通技巧培训
- T/CSWSL 004-2018饲料原料酿酒酵母发酵白酒糟
- 双五归零方法实施培训
评论
0/150
提交评论