CentOS操作系统的使用过程中,往往会因为人为失误或者客观原因导致系统崩溃。例如我们常见的2种场景:
- 误操作执行rm -rf /*但及时Ctrl+C中断;
- 服务器断电后系统故障无法启动;
大多数的工程师应该使用过Windows PE(下文简称PE)系统,在Windows系统无法正常启动时可能会想到尝试PE模式下进行系统修复或者修复失败的情况下拷贝原有的数据。对于CentOS系统,也有类似PE系统的救援安装模式可进行尝试修复系统或者拷贝数据。
救援安装模式我们要先准备一个安装引导介质,这里以安装镜像iso文件举例。
准备工作:
- 安装镜像iso文件
- 笔记本一台
- Oracle JDK
- U盘或者移动硬盘(可选)
实施步骤:
- 笔记本安装JDK并接入服务器BMC管理口网络或者直连服务器BMC管理口(具体步骤省略)
- 浏览器登录BMC管理口,海康新服务器默认10.10.10.10(具体步骤省略)
- 打开虚拟Java控制台加载iso安装文件
打开虚拟光驱
加载iso镜像文件
- 重启服务器进入救援安装模式
F11进入引导菜单
选择虚拟光驱
选择Troubleshooting
选择救援安装模式
进入命令行
- 查看磁盘识别情况
查看磁盘
如果看不到centos_hikvisionos卷组信息,代表root和opt未能自动挂载,执行第6步进行挂载。
- 激活卷组挂载文件系统
1. vgchange -ay //激活卷组
mkdir /oldroot //创建临时挂载点
mkdir /oldopt //创建临时挂载点
mount /dev/centos_hikvisionos/root /oldroot //挂载根文件系统
mount /dev/centos_hikvisionos/opt /oldopt //挂载/opt文件系统
文件系统配置
- 确认网卡链路
1. ip a //查看网卡名称
ethtool enp65s0f1 //查看网络链路
Speed:1000Mb/s //代表网卡已连接千兆网络
链路确认
- 配置原网卡IP地址
1. ip addr add 60.1.0.3/28 dev enp65s0f1 //配置IP掩码
ip route add default via 60.1.0.2 dev enp65s0f1 //配置默认路由
配置并确认网络
1. xshell登录另一台linux服务器并确认root远程登录权限
vi /etc/ssh/sshd_config //编辑配置sshd文件,确保
PermitRootLogin yes //确保PermitRootLogin 值为yes
systemctl restart sshd //重启sshd服务立即生效
- 远程拷贝数据
1. 以scp方式拷贝原目录/opt/hik至对方/tmp为例
scp -P xxx -r /oldopt/hik root@60.x.x.x:/tmp/
-P xxx 对端ssh登录端口
-r 拷贝文件不加参数,拷贝目录加-r参数
user@ip 对端用户和ip
/tmp 对端存放路径
- 插入U盘拷贝数据(可选)lsblk 查看U盘是否识别,假如U盘识别为sdb,一般情况U盘的会存在分区sdb4,挂载的时候要挂载sdb4。Linux默认不支持ntfs文件系统,所以可使用parted -l确认U盘是ntfs还是fat。fat格式可执行以下命令挂载:
1. mkdir /upan
mount -t vfat /dev/sdb4 /upan
cp -r /oldopt/hik /upan
- 插入ntfs移动硬盘拷贝数据(可选)如果数据量大且网络情况不好的时候可考虑使用移动硬盘进行备份,把ntfs-3g-2017.3.23-6.el7.x86_64.rpm拷贝到U盘,按照第11步挂载U盘安装ntfs安装包。
2. rpm -ivh ntfs-3g-2017.3.23-6.el7.x86_64.rpm
mkdir /ydpan
mount -t nfts /dev/sdb4 /ydpan
cp -r /oldopt/hik /ydpan
救援模式下备份数据在原系统无法恢复的情况下抢救数据的一种方式,并非唯一的方式。在日常工作中请一定做好异地数据备份,尽量避免备份数据和原始数据在同一个主机下。
再次提醒如果误执行了删库跑路命令“rm -rf /*”,以我们现有的常规手段数据几乎不能恢复,希望大家尽量避免这种悲剧。当然人外有人,山外有山,绝世高手也大有人在,如有成熟的恢复方案请大侠赐教。