【转载】Linux新硬盘挂载某目录后原目录的文件消失

问题描述

项目初期用户文件较少,全部存储在/home目录下

/home目录没有单独划开分区,随着项目网站做大,用户文件越来越多,/home目录不够空间,想挂载一个新硬盘来负责储存

挂载硬盘

1、若挂载到一个新的目录下,

2、若挂载到一个原先有文件的目录下(以挂载到 /home为例子)

当挂载时候发现新挂载/home到新硬盘时,/home原来数据变空了

原因:是由于linux的VFS(虚拟文件系统)机制导致的

正常登录以后,所看到的各个目录,文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接看到硬盘上的实际目录树。当你挂载某个设备到一个VFS挂载点上时(比如/home),系统就把VFS中的这个挂载点/home指向你最后所挂载的那个设备上。那么你现在访问该挂载点时,就会看到你最后挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点/home已经不再指向之前的设备。所以之前的数据是被隐藏了,但并没有删除,若umount挂载后,数据又重新回来了。

3、处理

处理思路:

(1)先将硬盘挂载到一个新建的空目录作为跳板目录

mkdir /new

(2)将硬盘先挂载到跳板目录上

mount /dev/sdb /new

(3)将原要挂载的目录中所有文件复制过来

cp -R /home/* /new

(4)将硬盘挂载到原要挂载的目录

mount /dev/sdb /home

此时你会神奇的发现之前的/home目录文件已经全部转移过来了,也许你会有点疑问,我并没有复制或移动/new文件到新挂载的/home目录啊,其实此时的/home目录相当于/new目录的硬链接,可以测试下mkdir /new/test 你会发现/home目录也存在test

(5)删除跳板目录

解除跳板目录挂载,可能会出现占用无法删除,可以使用 umount -fl 强行卸载,

umount /new

-f 强制卸载 -l 一空闲马上卸载所有占用的文件系统。

删除跳板目录 rm -rf /new

设置开机自动启动挂载

使用以上方法挂载分区,重启系统之后,分区并不会自动挂载

需要修改 /etc/fstab配置文件。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值