一,插入光盘,将系统的Bios设定为优先从光盘启动,进入光盘救援模式。
光盘救援模式
按回车后系统会自动加载一些驱动之类的必要数据,然后提示你进行下一步。接着问你要不要启动网络,最好启动,因为对系统进行任何改变之前一定要把重要的数据通过网络拷贝出来。
配置网络
就直接使用DHCP获取IP地址好了,简单些,因为每个公司都有内部DHCP服务,家里50元的路由器也有这功能,不用手工配置它,省得一旦配错连不上网,有一个注意点是先把IPv6去掉,不然网络启动的时间会变慢, 且救援模式下不需要这个东西。
启用IPv4去掉IPv6
然后下一个界面要认真阅读以下,它会告诉你一些特别有用的信息。
认真阅读该图
它的大意是说,它会自动帮你把你的那个没法启动的系统安装盘挂载到/mnt/sysimage这个地方,然后你就可以对你的系统进行一些改动(修复)了,如果你希望这样做你就只要选择"Continue"这个选项继续下去就可以了,当然你也可以选择把系统挂载成只读模式"Read-Only",这样的话你就不能对系统进行修改,只能备份数据到网络上了。
我们这里演示就选择"Continue",挂载成可读可写模式,以便进行系统修复。
接下来它会帮我们做一系列的检查加载,然后出现下一个画面
注意chroot /mnt/sysimage的提示
意思是我已经帮你把系统挂载在/mnt/systmage这个目录下了,你稍后可以选择使用chroot /mnt/sysimage来改变你的当前根目录到/mnt/sysimage这里,这有时候正是我们需要的,比如我们如果是因为临时安装了一个什么软件包导致系统故障的,就可以用这个方法把新安装的软件包删除,以便恢复正常。
接下来我们就可以获得一个命令行下进行操作的bash shell, 我们就在这个地方进行自救。
在这里进行修复工作
先查看一下网络是否正常可用了,方法如下
ping外网有回复即网络可用
ping 一下外网,有回复即表示本机网络已经可用,这个时候你可以选择先备份重要数据,然后再进行系统修复,有一个很好用的备份命令:scp介绍给大家,可以通过网络把重要数据拷贝到其他Linux服务器上,这一点很重要,二哥20年来跟团队成员一直强调的保命绝招就是“先备份,再进行其它操作”。
重点--先备份永远没错!
啥!你说二哥胆小是吗?这个领域没有英雄豪杰,胆大包不住天,尝试两次你就知道,这个领域会“饿死胆大的,撑不死胆小的”,跟别的地方不一样。
如何备份?举例说:
scp -r /root/scripts/ root@192.168.2.81:/root/
这样就能把/root/scripts下的所有文件都拷贝到另一台机器上的/root/scripts下了,需要备份其他的就用同样方法。
数据备份好之后我们就可以开始我们的系统修复了。
修复系统
比如说,假设你刚刚是因为安装了一个软件包叫做glibc导致系统不能启动的,那么你就可以这样把它删掉恢复正常:
chroot /mnt/sysimage/
这样你就可以把系统的根目录切换你要修复的系统的根目录上了,之后的操作就是对被修复系统做的。
然后你就可以用
yum remove glibc
把它删除,其他类似。
如果你要修复文件系统,那么就要用到
e2fsck /dev/sda* ; 或者是 e2fsck /dev/mapper/vgxxx_lv_root
这个命令了,sda2和/dev/mapper/vgxxx_lv_root是我的硬盘号和逻辑卷号,殿下你们要填自己的,但是要注意一件事情就是进行文件系统修复的时候一定要退出当前根分区回到光盘启动的时候默认的那个根分区系统,不然是没法做修复的。用命令exit就可以退出了
判别在哪个根分区
看到图中的1这种情况就代表你还没有退出被修复硬盘的根分区,看到图中的2就代表已经退出到光盘的根分区了。让后把/mnt/sysimage/下的被挂载项目全部umount(卸载),比如
umount /mnt/sysimage/sys ..... umount /mnt/sysimage/
里面的子目录都umount完成之后在最后一步umount /mnt/sysimage/,注意一定是要把子目录umout了之后才能umout上层目录或者跟目录,道理很简单,就是当你正站在一缸里面的时候你是没法把这个缸举起来的,只有你跳出这个缸你才能把这个缸提起来。好,所有人都跳出这个缸了之后你就可以使用下面命令进行系统修复了。
e2fsck /dev/mapper/vgxxx_lv_root
通常情况下这样做系统也就可以重新启动起来了。如果还想要做其他的修复,方法类似,比如你忘记密码了想要清空密码再设置新的,那么你就可以到/mnt/sysimage/etc/passwd文件里面下图中标红的x删除,重启系统后再设置密码。