当前位置: 首页 > news >正文

Linux 挂载新磁盘导致原文件被隐藏解决方案

文章目录

    • 事件背景
    • 问题原因
    • 解决方案一(无效)
    • 解决方案二

事件背景

事故源于我的一次无心操作,前几天我使用 fdisk -l 命令偶然发现测试环境一台服务器竟然有 1TB 的磁盘未挂载,而那台测试服务器已经使用两年了,之前就一直磁盘空间紧张,这次就像是意外之喜,于是我开始了磁盘挂载之路,首先使用 fdisk 命令进行分区操作,然后使用 mkfs.ext4 命令进行格式化操作,并在 /etc/fstab 文件中设置好开机自动挂载,最后使用 mount 命令将新磁盘挂载到根目录下

mount /dev/sdb1 /root

然后今天同事反映测试环境很多应用报错了。

问题原因

听到同事反馈,我虎躯一震,马上想到可能是前几天挂载新磁盘导致的问题,当时的情况是根目录没有单独挂载,而我使用新磁盘挂载到根目录,就会导致之前的根目录文件没了,会使用新磁盘里面的文件,但是我当时确认过老磁盘根目录下是没有文件的,我才敢直接挂载的。等等。。。这里面可能有问题,我没有考虑到隐藏文件!!!果然,根目录下有很多程序运行所需要的隐藏文件被我忽略了。

解决方案一(无效)

既然找到问题了,那就要去解决它,我很清楚老磁盘的数据是没有丢失的,只是被隐藏起来了,现在就需要将老磁盘的数据找回来,最先想到的办法就是 umount 新磁盘,那么老磁盘的数据自然就出现了

umount /dev/sdb1

当我运行这个命令时,反馈结果是目标忙,命令执行不成功,使用强制 umount 也无济于事,使用 lsof /dev/sdb1 命令查出所有占用进程并杀死也没用,于是我放弃 umount 新磁盘。

解决方案二

我转向求助 AI,其实不抱有太大希望,AI 给我指了条明路,试了下竟然真的成功了!操作办法如下:

首先创建一个临时目录,然后将根目录绑定到临时目录,注意下面的 --bind 选项

mkdir /tmp/oldroot
mount --bind / /tmp/oldroot

然后进入临时目录里面的根目录,将老 /root 目录下的文件复制到当前 /root 目录下,注意命令中的 . 符号,表示复制全部文件,包括隐藏文件

cd /tmp/oldroot/root
cp -rf . /root

最后卸载临时目录的绑定关系,并删除,搞定!

umount /tmp/oldroot
rmdir /tmp/oldroot
http://www.dtcms.com/a/282994.html

相关文章:

  • 【代码】Matlab鸟瞰图函数
  • sqli-labs靶场通关笔记:第23关 注释符过滤
  • 叉车机器人如何实现托盘精准定位?这项核心技术的原理和应用是什么?
  • 静默的田野守护者:Deepoc具身智能如何让除草机器人读懂大地密语
  • Mybatis08-使用pageHelper
  • 本地 AI 问答机器人搭建项目(Ollama + Qwen-7B + LangChain + FastAPI)
  • AI对话聊天与桌宠工具调研报告
  • 【案例分享】基于FastCAE-Acoustics软件对车门进行噪声预测
  • 移动平板电脑安全管控方案
  • 祥云系统开源云商城程序全开源版 个人程序云商城(源码下载)
  • 前端学习7:CSS过渡与动画--补间动画 (Transition) vs 关键帧动画 (Animation)
  • xss-lab1-8关
  • AdsPower 功能详解 | 应用中心使用指南:插件统一管理更高效、更安全!
  • [NOIP][C++] 树的重心
  • 精彩代码分析-1
  • 深入探讨机器学习中的过拟合:从VC维到正则化的贝叶斯视角
  • Alamofire 网络请求全流解析,通俗易懂
  • 降本增效利器:汽车制造中EtherCAT转PROFIBUS DP网关应用探析
  • Linux权限管理:玩转root与用户组
  • 前端 oidc-client 静默刷新一直提示:Error: Frame window timed out 问题分析与解决方案
  • 前端上传 各类 文件 ,前端自己解析出来 生成界面 然后支持编辑(增强版 支持大多数文件格式的在线编辑)
  • React Native 在 Web 前端跨平台开发中的优势与实践
  • Windows下编译pthreads
  • vue-router 导航式编程 参数的设置
  • 优学教育官网搭建02课程中心
  • vscode Cline接入火山引擎的Deepseek R1
  • 项目资源预算分散,如何实现协同整合?
  • orfeotoolbox ResetMargin
  • 《小白学习产品经理》第五章:方法论之波士顿矩阵
  • Linux中的GDB的作用与GCC的区别