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

Linux救援模式应用

2013-07-23 22:20 561 查看
当系统连单用户模式都无法进入或出现GRUB命令行也不能解决的引导问题,我们就需要使用Linux救援模式来进行故障排除。步骤如下:

  1、将Linux安装盘放入光驱,设置BIOS为光盘引导,在“boot:”提示符后输入“linux
rescue”回车进入救援模式。
  2、系统会检测硬件,引导光盘上的Linux环境,依次提示选择救援模式下使用的语言、键盘设置、网络设置等。
  3、接下来系统将试图查找根分区。

  默认在救援模式,硬盘的根分区将挂载到光盘Linux环境的/mnt/sysimage目录下,默认选项“continue”表示挂载权限为读写;“Read-only”为只读,如果出现检测失败可以选择“skip”跳过。因为要对系统进行修复,一般选择“continue”。进入下一步,系统提示执行“chroot
/mnt/sysimage”命令,可以将根目录挂载到我们硬盘系统的根目录中去。

  案例一:双系统启动修复
  当我们安装双系统环境,先安装Linux再安装Windows;或者已经安装好双系统环境的Windows损坏,在重新安装Windows后,保存
GRUB的MBR会被Windows系统的自举程序NTLDR所覆盖,造成Linux系统无法引导。

  1、如果要恢复双系统引导,首先进入救援模式,执行chroot命令:
  sh-3.1# chroot /mnt/sysimage     (进入救援模式一定要改,交换/mnt/sysimage 到根目录)

  2、将根目录切换到硬盘系统的根目录中,执行grub-install命令重新安装GRUB:
  sh-3.1# grub-install /dev/hda

  “/dev/hda”为硬盘名称,此项设置要要视具体情况做相应调整。

  3、依次执行exit命令,退出chroot模式及救援模式(执行两次exit命令):
  sh-3.1# exit
  sh-3.1# exit

  系统重启后,将恢复GRUB引导的双系统启动。

  案例二:系统配置文件丢失修复
  系统引导期间,很重要的一个过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果/etc/inittab误删除或修改错误,Linux将无法正常启动。此时,只有通过救援模式才可以解决此类问题。

  1、有备份文件的恢复办法
  进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议备份系统中的重要目录,如/etc、/boot),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittab.bak,则在救援模式下执行:
  sh-3.1# chroot /mnt/sysimage
  sh-3.1# cp /etc/inittab.bak /etc/inittab

  2、没有备份文件的恢复办法
  如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):
  sh-3.1# chroot /mnt/sysimage
  sh-3.1# rpm -qf /etc/inittab
  initscripts-8.45.3-1

  退出chroot模式:
  sh-3.1# exit

  挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下):
  sh-3.1# mount /dev/hdc /mnt/source

  Fedora系统的RPM包存放在光盘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命令选项“--replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。

  如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,执行命令:
  sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm
  | cpio -idv ./etc/inittab
  sh-3.1# cp etc/inittab /mnt/sysimage/etc

  注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: