1Panel icon indicating copy to clipboard operation
1Panel copied to clipboard

linux下不同分区之间移动文件,提示invalid cross-device link错误

Open wjf2016 opened this issue 2 years ago • 3 comments

请描述您的问题

服务器为 debian11系统,移动硬盘分区1为ext4格式,挂载为/DOCUMENT;移动硬盘分区2为ext4格式,挂载为/MEDIA,当前用户为root用户,将/DOCUMENT下某个目录移动到/MEDIA下某个目录时,会报如下错误:

{ "code": 500, "message": "服务内部错误: rename /DOCUMENT/movies/宇宙探索编辑部 (2023) /MEDIA/movies/宇宙探索编辑部 (2023): invalid cross-device link", "data": null }

wjf2016 avatar May 20 '23 06:05 wjf2016

感谢反馈。 进入主机-终端,手动执行 mv 或者 cp 命令来操作文件夹,是否会有相同的报错问题。

wanghe-fit2cloud avatar May 20 '23 12:05 wanghe-fit2cloud

@wanghe-fit2cloud 主机终端里面执行没问题的,如下图

根据1panel接口报错信息,我猜测1panel移动文件的原理是:先在目标位置建立一个原文件的硬链接,然后再删除原文件?Invalid cross-device link 明显是创建硬链接的报错,因为是不同分区,所以建立硬链接失败了,导致报错。我奇怪的是1panel底层为啥不直接调用mv命令来移动文件,这个不是兼容性最好吗?

wjf2016 avatar May 21 '23 13:05 wjf2016

@wanghe-fit2cloud 主机终端里面执行没问题的,如下图

根据1panel接口报错信息,我猜测1panel移动文件的原理是:先在目标位置建立一个原文件的硬链接,然后再删除原文件?Invalid cross-device link 明显是创建硬链接的报错,因为是不同分区,所以建立硬链接失败了,导致报错。我奇怪的是1panel底层为啥不直接调用mv命令来移动文件,这个不是兼容性最好吗?

目前 1Panel 的文件操作部分是通过调用 Golang 的 sdk 来实现,这个问题我们在后续版本中持续优化吧。

wanghe-fit2cloud avatar May 21 '23 13:05 wanghe-fit2cloud

v1.8.0 版本已发布。

wanghe-fit2cloud avatar Nov 08 '23 10:11 wanghe-fit2cloud