Linux 使用 `cp` 命令导致挂载点被覆盖问题记录

Linux 使用 cp 命令导致挂载点被覆盖问题记录

我在linux上运行一个cp命令 cp -r /home/home_bk/* /home 此时为什么我找不到home_bk目录了? home_bk 目录是挂载在 /dev/sda1 上面 home 目录是挂载在 /dev/sdc1 上面

你现在的情况:

  • /home 已经挂载到 /dev/sdc1
  • /home/home_bk 挂载到 /dev/sda1

你执行了:

复制代码
cp -r /home/home_bk/* /home

结果:home_bk 消失了

为什么?
因为:

你把 /dev/sda1 里的所有内容,全部复制覆盖到了 /dev/sdc1 的 /home 目录下。

同时,原来的 /home/home_bk 这个「挂载点目录」被覆盖删除了!


核心原理(超级简单)

  1. /home 现在是 新分区 /dev/sdc1

  2. /home/home_bk旧分区 /dev/sda1 的挂载点

  3. 你执行 cp -r /home/home_bk/* /home

    → 把 sda1 里的所有文件

    全部拷贝到 sdc1 的 /home 下

  4. 拷贝过程中,原来的 /home/home_bk 目录被删掉 / 覆盖了

  5. 所以挂载点没了 → 看起来 home_bk 消失了


你的 home_bk 数据并没有丢!

/dev/sda1 里的数据完好无损!

只是 /home 下的挂载点目录 home_bk 被覆盖删除了


立刻恢复 home_bk(一步一步照做)

1. 重新创建挂载点目录
复制代码
mkdir -p /home/home_bk
2. 重新挂载 sda1 到 home_bk
复制代码
mount /dev/sda1 /home/home_bk
3. 查看是否恢复
复制代码
ls /home/home_bk

✅ 马上就能看到所有数据


以后绝对不能再这样复制!

错误命令(会删挂载点):

复制代码
cp -r /home/home_bk/* /home

正确复制(不破坏挂载点):

复制代码
cp -r /home/home_bk/. /home

或者

复制代码
rsync -av /home/home_bk/ /home/

最终总结(最关键)

  1. home_bk 数据没丢,都在 /dev/sda1 里
  2. 只是挂载点目录被 cp 命令覆盖删除了
  3. 重建目录 + 重新挂载 → 立刻恢复
相关推荐
考虑考虑8 小时前
cmd局部设置java变量
运维·后端·自动化运维
我爱吃土豆18 小时前
AI 编程工具远程开发指南:Codex 桌面版与 WorkBuddy 通过 SSH 连接云服务器实践
服务器·人工智能·ssh
生活爱好者!8 小时前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
一技安身9 小时前
【信创】银河麒麟V10、统信UOS解压7Z文件
linux·运维·服务器
奔跑的架构师9 小时前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
迷途呀10 小时前
CI/CD 自动化部署实践:让代码提交后自动上线
linux·运维·nginx·ci/cd·自动化
闲云自留地10 小时前
动手玩 Nova:Hypervisor、主机聚合、可用分区、虚拟机生命周期实操
运维·架构·openstack
赴生-10 小时前
Liunx 操作系统 进程概念(上)
linux
binqian10 小时前
【linux】OpenSSH升级文档
linux·运维·网络
吴声子夜歌10 小时前
Shell编程——if条件语句
linux·运维·shell