如何将目录剪切为另一个分区?

时间:2013-09-19 21:03:41

标签: linux mount

假设我们有两个设备:sda1(其上安装了系统/)和sda2(清晰,格式化的分区)。我在sda1上有目录/数据,它由数百个进程(一些写操作)实时使用。 是否可以将sda2挂载为/ data文件夹(包含文件),保留[访问]所有文件(?)并同时从sda1分区“剪切”/ data文件夹(并使其成为分区sda2的一部分)?我知道mount中有bind选项但它只允许你将第一个目录复制到另一个目录。 它是唯一一个停止所有进程的解决方案,将sda2挂载为/ data2或其他东西,将所有文件移动到sda2并将sda2重新挂载为/ data?

2 个答案:

答案 0 :(得分:0)

是 - 唯一的方法是将sda2挂载到/ data2,从sda1移动数据并将sda2重新挂载为/ data。在一个目录上同时安装两个分区不是一种选择。

答案 1 :(得分:0)

你可以做这些事情,以防你觉得它们有用:

  • 在/ data上安装sda2,而现有进程仍然可以处理他们在sda1上打开的文件。当他们关闭文件时,他们将不再看到sda1中的文件。
  • 将sda2挂载到/ mount中的新挂载命名空间,这样当您在/ data上列出文件时,您会看到来自sda2的内容,但系统的其余部分仍然会看到sda1。您可以使用unshare创建新的命名空间。

您不能做的是从一个文件系统中删除目录并将其粘贴到另一个文件系统上。数据必须从磁盘上的一个位置移动到另一个位置,这需要时间。