蓝盟经验,Linux系统故障修复大全

发布者:上海IT外包来源:http://www.lanmon.net点击数:1247

我发现Linux系统在启动过程中会出现一些故障,这会导致系统无法正常启动。我在这里写了几个应用程序单用户模式。、GRUB命令操作、 Linux救援模式故障修复案例有助于大家了解此类问题的解决方案。
(1)单用户模式
Linux系统提供单用户模式(类似于Windows安全模式),以便在最小的环境中进行系统维护。在单用户模式(运行级别1)中,Linux引导到根shell,禁用网络,并且只运行几个进程。单用户模式可用于修改文件系统损坏、恢复配置文件、移动用户数据等。
以下是几个单用户模式修复系统故障的典型示例:
案例1:忘记了root密码
在单用户模式下,Linux不需要root密码(RedHat不需要root密码,但SuSe需要它。不同的Linux系统略有不同。本文以FedoraCore6为例),这使得它很容易改变root密码。在系统引导进入多用户模式时,了解如何进入单用户模式非常重要。
1、在系统启动过程中,将出现启动界面,按任意键进入GRUB菜单选项。
如果您不想要此提示,请直接转到GRUB菜单选项并删除配置文件grub.conf中的“hiddenmenu”项。
2、按“e”键编辑GRUB引导菜单选项,然后按“e”键进入GRUB屏幕。使用箭头键向下移动到内核行,然后按“e”键。
3、在尾随光标处添加单个,按Enter返回上一个屏幕,按“b”开机,系统自动进入单用户模式。如果要更改root密码,请执行以下命令:sh-3.1 #passwdroot
更改成功后,执行命令exit退出并重新启动。
您可以纠正许多阻止系统在单用户模式下正常启动的问题,例如:
1、禁用可能中止系统的服务,例如禁用Samba服务,然后执行:sh-3.1#chkconfigsmboff将在下次系统引导时不启动Samba服务。
2、更改系统默认运行级别如果XWindow无法启动或失败,您可以编辑/ etc / inittab文件并以文本形式登录。将initdefault引导级别更改为3:id:3:initdefault:
案例2:硬盘部门混乱在引导过程中遇到的最常见问题是硬盘可能有坏扇区或脏扇区(数据损坏)。这种情况多半是由异常停电引起的、异常关机造成的。出现此问题,系统启动时,屏幕将显示:
Pressrootpasswordorctrl + D:此时,输入root密码系统自动进入单用户模式,输入“fsck -y / dev / hda6”(fsck进行文件系统检测和修复命令,“-y”设置检测错误自动修复,/ dev / Hda6是发生错误的硬盘分区。请根据具体情况更改此参数。修复系统后,使用“reboot”命令重启。
情况3、GRUB选项设置错误
“Error15”表示系统找不到grub.conf中指定的内核。 GRUB引导错误消息,我们观察到由于输入错误,内核文件“vmlinuz”变成了“vmlinux”,因此系统无法找到内核可执行文件。我们可以按任意键返回GRUB编辑界面,修改此错误,按Enter键并按“b”键正常启动。当然,不要忘记在进入系统后更改grub.conf文件。这是许多初学Linux用户在修改GRUB设置时可以轻松搞定的错误。当此黑屏提示时,请观察错误消息并进行修复。
(二)GRUB启动故障排除
我发现有时Linux会在启动后直接进入GRUB命令行界面(只有“grub>”
“提示”,此时许多用户选择重新安装GRUB甚至重新安装系统。事实上,这种失败的最常见原因有两个:一个是GRUB配置文件中的错误设置;第二个是GRUB配置文件Lost(有几个原因,如内核文件或图像文件损坏、丢失,/ boot目录被意外删除等),如果是第一种情况,可以先修复GRUB命令后的系统;如果是第二种情况,那么使用Linux救援模式修复(本文后面会有介绍)。
首先,我们需要了解GRUB引导系统的引导过程。 grub.conf文件中的主要配置选项如下(请注意,GRUB配置文件是/boot/grub/grub.conf,/etc/grub.conf只是该文件的软链接)):
titleFedoraCore(2.6.18-1.2798.fc6)
为root(hd0,0)
内核/引导/ vmlinuz的-2.6.18-1.2798.fc6roroot = LABEL = / rhgbquietinitrd /引导/ initrd的-2.6.18-1.2798.fc6.img“title”部分指定GRUB引导系统:“root”部分指定/ boot分区的位置:“kernel”部分指定内核文件的位置,内核load属性是只读的(“ro” “)并指定根分区的位置(root = LABEL = /); initrd指定图像文件的位置。因此,引导序列中的GRUB首先加载/ boot分区,然后依次加载内核和映像文件。
案例:“titleFedoraCore(2.6.18-1.2798.fc6)”被错误删除
此时,系统将在启动后自动输入“GRUB>”。
“命令行,为了排除故障,我们可以执行以下操作:
1、找到/boot/grub/grub.conf文件所在的分区GRUB>
查找/ boot / grub目录/ grub.conf中(hd0,0)
2、查看grub.conf文件错误GRUB>
Cat(hd0,0)/boot/grub/grub.conf建议在安装系统后备份grub.conf文件。如果有grub.conf.bak等备份文件,则可以在此时查看备份文件。文件比较,发现错误:GRUB>
猫(hd0,0)/boot/grub/grub.conf.bak
3、确认错误后,首先通过命令行完成GRUB引导,然后进入系统修复grub.conf文件错误:1)指定/ boot分区根目录(hd0,0)
2)指定要加载的内核kernel / boot / vmlinuz-2.6.18-1.2798.fc6roroot = LABEL = / rhgbquiet3)指定映像文件的位置initrd / boot / initrd-2.6.18-1.2798.fc6.img
提示:GRUB支持tab键命令完成功能
4、从/ boot分区启动引导(hd0,0)
可以通过按“c”键在GRUB菜单模式下调用命令行模式,或者可以使用它来测试新编译的内核(设置内核、initrd以引导新的内核和映像文件)。增加对GRUB引导和Linux系统引导知识的了解将大大有助于排除故障。
(3)Linux救援模式应用
当系统无法进入单用户模式或GRUB命令行无法解决的引导问题时,我们需要使用Linux救援模式进行故障排除。请按以下步骤操作:1、将是Linux安装光盘(如果您使用CD,将第一张启动光盘放入CD-ROM驱动器),设置固件CMOS / BIOS以启动光盘,当出现Linux安装屏幕时,输入“ boot:“prompt”linuxrescue“进入救援模式。 (有关救援模式的更多信息,您也可以按F5查看)
2、系统会检测硬件,启动光盘上的Linux环境,然后提示你选择救援模式下使用的语言(建议选择默认的英文,根据作者测试,有些Linux系统会出现乱码中文);键盘设置默认“我们”很好;网络设置可以根据需要,大多数故障修复不需要网络连接,你不能设置这个,选择“否”。
3、下一个系统会尝试查找root分区,出现mount提示符,在rescue模式下设置默认值,硬盘的root分区将被挂载到CD Linux环境的/ mnt / sysimage目录下,默认选项“continue”表示安装权限用于读写:“只读”是只读的。如果检测失败,您可以选择“跳过”跳过。在这里,因为要修复系统,需要具有读写权限,一般选择默认选项“继续”。
进入下一步后,系统会提示执行“chroot / mnt / sysimage”命令,该命令可以挂载到我们硬盘系统的根目录下。
案例1:双系统启动修复
当我们安装双系统环境时,首先安装Linux然后安装Windows;或Windows已安装在双系统环境中,重新安装Windows后,保存GRUB MBR(MasterBootRecord,主启动记录)将是由NTLDR覆盖的Windows系统启动程序,导致Linux系统无法启动。
1、如果要恢复双系统启动,首先通过上述方法进入救援模式,执行chroot命令如下:sh-3.1 #chroot / mnt / sysimage
2、将根目录切换到硬盘系统的根目录,然后执行grub-install命令重新安装GRUB:sh-3.1#grub-install / dev / hda“/ dev / hda”为硬盘名称,如使用SCSI硬盘或Linux安装在第二个IDE硬盘驱动器上。此设置需要相应调整。
3、然后依次执行exit命令,退出chroot模式和救援模式(执行两个退出命令):sh-3.1#exit系统重新启动后,将恢复GRUB引导的双系统引导。案例2:系统配置文件丢失修复
在引导过程中,一个非常重要的过程是init进程读取其配置文件/ etc / inittab,启动系统基本服务程序和默认运行级别服务程序以完成系统引导。如果删除或修改了/ etc / inittab不正确,Linux将无法正常启动,如图7所示。此时,此类问题只能通过救援模式解决。
/ etc / inittab文件缺少引导错误示例
1、有一个备份文件恢复方法进入救援模式,执行chroot命令后,如果有这个文件的备份(强烈建议在系统重要数据目录,如/ etc、 / boot进行备份),直接复制备份文件返回并退出并重启。如果配置文件修改不正确,例如典型的/boot/grub/grub.conf和/ etc / passwd文件修改错误,则可以直接更正恢复。假设备份文件/etc/inittab.bak在救援模式下执行:sh-3.1 #chroot / mnt / sysimagesh-3.1 #cp /etc/inittab.bak/etc/inittab
2、无备份文件恢复方法如果某些配置文件丢失或软件被意外删除,并且没有备份,则可以通过重新安装软件包进行恢复,首先找出/ etc / inittab所属的RPM软件包(即使文件丢失,因为有RPM数据库,你可以找到结果):sh-3.1 #chroot / mnt / sysimagesh-3.1 #rpm -qf / etc / inittabinitscripts-8.45.3-1
退出chroot模式:sh-3.1#exit
安装包含RPM软件包的安装CD(在救援模式下,CD通常安装在/ mnt / source目录中):sh-3.1 #mount / dev / hdc / mnt / source
Fedora系统的RPM包存储在CD的Fedora / RPMS目录中。其他Linux存储位置类似。我不会在这里列出它们。另外,由于要修复的硬盘系统的根目录在/ mnt / sysimage下,因此需要使用——root选项。指定其位置。覆盖安装了/ etc / inittab文件的RPM包:sh-3.1#rpm -ivh——replacepkgs——root / mnt / sysimage / mnt / source / Fedora / RPMS / initscripts-8.45.3-1.i386.rpm其中rpm命令options“——replacepkgs”表示覆盖安装,文件在执行完成后已恢复。如果只想提取RPM包中的/ etc / inittab文件进行恢复,可以在进入救援模式后执行命令:sh-3.1#rpm2cpio / mnt / source / Fedora / RPMS / initscripts-8.45.3-1 .i386。转| cpio-idv./etc/inittabsh-3.1#cpetc/inittab/mnt/sysimage/etc
请注意,执行此命令时,无法将此命令直接还原到/ etc目录。它只能被提取到当前目录,并且必须将还原的文件名的路径写入完整的绝对路径。成功解压缩文件后,将其复制到根分区所在的/ mnt / sysimage目录中的相应位置。
救援模式是维护Linux的有力武器。本文通过以上两个例子说明了应用方法,希望能给读者一些启发。要解决Linux系统启动失败,必须充分了解Linux启动过程才能有效判断和处理故障。
---------------------
作者:jyndxw
资料来源:CSDN
原文:https://blog.csdn.net/jyndxw/article/details/7109137
版权声明:本文是博主的原创文章,请附上博客文章链接!
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部