目录
前言
系统版本:Centos7.9
出现问题:误操作命令rm -rf /usr,直接将整个usr目录全部删除,所有/usr/bin下命令无法使用,系统重启失败。
恢复步骤:制作一个相同版本的系统U盘,使用U盘作为系统启动盘,进入操作系统救援模式,将usr目录复制至原系统后重启。
1、制作系统U盘
1.1 准备两个U盘。
一个16G以上U盘,用于制作系统盘;
一个4G以上U盘,用于存放usr目录。
1.2 下载Centos7.9镜像
下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/,本次选择阿里的源下载
1.3 电脑安装系统U盘制作工具Ultraiso
下载地址:https://cn.ultraiso.net/xiazai.html
1.4 系统U盘制作
A. 点击【文件】->打开,选择你的ISO路径,选定打开;
B. 点击菜单【启动】->写入硬盘映像
打开ISO后选择启动光盘,然后再选择写入硬盘映像;
C. 选择硬盘驱动器(就是你的U盘盘符),点击【格式化】,格式化一下U盘
D. 格式化完成后,选择【写入方式】,(我选的是USB-HDD+);
E. 点击【便捷启动】,选择写入新的驱动器引导扇区,再选择Syslinux
F. 点击【写入】,写入过程需要一段时间,耐心等待即可。
至此,系统U盘制作完成。
2、进入救援模式并导入usr
2.1 插入系统 U 盘
进入 bios , 设置为U盘启动 (F2 ,F8, F12 , ESC … )
2.2 进入系统救援模式界面
先选Troubleshooting,再选Rescue installed system**
2.3 进入后等待最终进入提示模式
输入 1 回车
我在这一步并没有出现上图界面,而是报了Error:i8042:no controller found。
现象: 在出现i8042的错误页面,继续等待,一直到滚动错误提示停止,进入一个输入命令界面。
原因: Ultraiso在写入硬盘镜像的时候把U盘盘符给改成了Centos 7 x86_64。
解决办法如下:
A. 在出现i8042的错误页面,继续等待,一直到滚动错误提示停止,进入一个输入命令界面;
B. 在命令行输入界面,输入:
ls /dev/sd*
会列出当前系统下所有的存储设备,确认U盘路径,我这里显示的是/dev/sdb4;
C. 确认U盘路径后,输入reboot重启系统,重新进入救援模式,至选择Rescue installed system界面
D. 按Tab键,进入编辑界面,找到
vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet
把这行改为
vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4:/ rescue quiet
就是将hd:和rescue quiet之间的内容改为U盘路径,注意要写成/dev/sdb4:/
E. 修改之后,直接按Enter回车键,进入到上面步骤:2.3 进入后等待最终进入提示模式(下图) ,继续进行后续替换步骤即可。
2.4 切换到临时linux系统
然后输入chroot /mnt/sysimage 切换到临时linux系统,切换后前缀会变为bash
在这时,原来的操作系统就挂载到了 /mnt/sysimage 目录下,将恢复文件/usr 直接复制到 /mnt/sysimage 目录即可。
2.5 将备份的数据接入 linux 操作系统&替换
我是将另一个相同系统的/usr 目录进行压缩:tar -zcvf usr.tar.gz /usr 后文件usr.tar.gz直接放到 另一个U 盘里面了.(注意 U盘格式,不然 linux 操作系统不识别)
2.5.1 插入存储usr.tar.gz的U 盘
2.5.2 执行命令 查看挂载 U 盘映射的地址名称
lsblk
会发现一个地址类似 : /dev/sdb1
2.5.3 创建挂载文件目录
mkdir /mnt/usb
2.5.4 挂载 U 盘
mount /dev/sdb1 /mnt/usb
2.5.5 操作U 盘内容
cd /mnt/usb (u盘的内容都在里面)
2.5.6 卸载 U 盘
umount /mnt/usb
2.6 直接将/usr 目录替换
cp /mnt/usb/usr.tar.gz /mnt/sysimage
tar -xzvf /mnt/sysimage/usr.tar.gz
2.7 重启系统
exec /sbin/reboot (重启)
记得bios改回为硬盘启动. (如果是通过临时修改的那种方式,可以不做修改.)
————————————————
总结
在进行服务器操作时尽量不要使用root用户操作,尽量使用赋予sudo权限的普通用户进行操作,另外在使用rm命令时也一定小心小心再小心,谨慎谨慎再谨慎。