Linux系统使用版本:CentOS 6.5
救援模式有什么作用:
◆可以更改root密码;
◆恢复硬盘、文件系统操作;
◆系统启动不来的时候,只能通过救援模式来启动;
救援模式启动的步骤如下:
1、首先开机进入BIOS设置(每台电脑进入bios的方法不同根据自己的电脑进入),BOOT启动顺序为光盘优先启动 CD-ROM Drive 使用小键盘的+ -号调整上下顺序;设置好后保存并退出。
2、重启系统后进入安装启动菜单,上下键移动到Rescue install system 救援安装系统;
3、选择语言,保持默认English
4、选择键盘类型,保持默认us
5、是否启动网络,需要根据你实际情况进行选择,如果需要通过联网拷贝数据,选择YES,在这里我们选择NO;
6、进入到Rescue界面,选择Continue
7、系统挂载在/mnt/sysp_w_picpath下 如果要到root环境下,运行 chroot /mnt/sysp_w_picpath 命令
8、三种选项:shell 进入命令行模式;fakd是诊断模式;reboot重启电脑;我们这里选择shell
9、进入shell命令行,提示符为bash-4.1#
ls /mnt/sysp_w_picpath/ 显示挂载的目录为根目录的文件
执行chroot /mnt/sysp_w_picpath/ 将/mnt/sysp_w_picpath/目录下的文件移动到根目录;
命令后提示符为sh-4.1#
ls 显示为根目录的文件;
10、在sh-4.1#模式下需要先exit退出,回到bash-4.1#才可以reboot重启系统;
可以操作系统实施救援了
grub挂了的,grub-install /dev/hdxx
配置文件改错的,vi /etc/fstab vi /etc/inittab ..................
软件包被毁的 rpm -F xxx.rpm
完成修复工作后,exit命令退出chroot,exit退出rescue shell 系统重启。
备注:
如果你硬盘上的系统是非rhel系统如debian的,那么在第4步时,rescue 程序会找步不到硬盘上的系统,所以我们这是选择"跳过",直接进入shell。假设现在硬盘上的有一个debian 系统 /dev/hda1 为/boot 分区 /dev/hda5 为 / 分区 /dev/hda6 为swap。那么我们现在这么做。
# fdisk -l (查看分区情况)
# mkdir /mnt/linux
# mkdir /mnt/linux/boot (根据fdisk -l 得到的信息创建目录)
# mount -t ext3 /dev/hda5 /mnt/linux
# mount -t ext3 /dev/hda1 /mnt/linux/boot (挂载硬盘上的文件系统)
# chroot /mnt/linux (chroot 改变工作系统)
#
自此我们顺利进入硬盘上的debian系统,剩下来到就和先前一样了,有冤的报冤有仇的×××。
另:
如果你的系统是文件系统损坏那么就不用挂载,chroot 系统了。
直接 fsck /dev/hdxx 即可。
其实我们仔细想想这个rescue会发现,所谓rescue 模式只是一个带shell 的linux 运行环境而已,然后通过mount 和 chroot进入要修复的系统的。
所以在没有rescue 盘的情况下我可以利用 Linux livecd 或软盘版的linux 进入shell 环境然后重做
# fdisk -l (查看分区情况)
# mkdir /mnt/linux
# mkdir /mnt/linux/boot (根据fdisk -l 得到的信息创建目录)
# mount -t ext3 /dev/hda5 /mnt/linux
# mount -t ext3 /dev/hda1 /mnt/linux/boot (挂载硬盘上的文件系统)
# chroot /mnt/linux (chroot 改变工作系统)
#
就可以简单的进入一个rescue 环境了.:em02:
后记: 今天跑到机房一弄.不行. 于是乎开展了专项拯救活动.
<>
惠普硬盘 /dev/cciss/c0d0p1
案例二:系统配置文件丢失修复
系统在引导期间,很重要的一个过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果/etc/inittab误删除或修改错误,Linux将无法正常启动。此时,只有通过救援模式才可以解决此类问题。
1、有备份文件的恢复办法
进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等要进行备份),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittab.bak,则在救援模式下执行:
sh-3.1# chroot /mnt/sysp_w_picpath
sh-3.1# cp /etc/inittab.bak /etc/inittab
2、没有备份文件的恢复办法
如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):
sh-3.1# chroot /mnt/sysp_w_picpath
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/sysp_w_picpath下,需要使用--root选项指定其位置。覆盖安装/etc/inittab文件所在的RPM包:
sh-3.1# rpm -ivh --replacepkgs --root /mnt/sysp_w_picpath /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/sysp_w_picpath/etc
注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysp_w_picpath目录下相应位置即可。
救援模式是维护Linux的有力武器,本文以上述两个例子讲解了它的应用方法,希望能够给读者一点启示。解决Linux系统启动的故障,必须充分理解Linux的引导过程,才能够对故障进行有效的判断和处理。