无效的跨设备链接(18)当arch linux上保存一个文件
195(30天)
显示旧的评论
接受的答案
更多的答案(9)
西蒙rotondi
2022年10月12日
我有同样的行为。
反正我已经发现一个大问题是临时文件,如果我将matlab tempdir设置为一个文件系统不同的关于btrfs或tempfs文件也在不同的文件系统使用没有问题。
如果临时文件的文件系统或文件正在与btrfs用新内核,它不会工作。我也试图禁用牛文件夹我工作但没有改进。
例如改变matlab的临时dir
清晰的所有
tempdir
setenv (“TMPDIR”,“文件夹从NTFS, EXT4 . .”)
清晰的所有
tempdir
它应该是固定的(文件不是btrfs)
6个评论
费德里科•
2023年3月30日
因为它是需要做它任何时候你打开matlab。
打开(或创建)
startup.m
在你的
userpath
文件夹,使用下面的命令:
编辑(fullfile (userpath,“startup.m”))
然后在这个文件下面的行(使用正确的文件夹路径):
setenv (“TMPDIR”,“/ home /对于/ yourtempdir”);
Jacek Jagosz
2022年11月9日
从Matlab的人,这是帮助他们解决这个问题。
这似乎是提交了这个问题,不仅存在于内核5.18甚至5.15 LTS补丁
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=4d5055873e24bba9e01b3b5d16790714b0d38533
一些其他的应用打破了这种变化,不仅仅是Matlab。例如qBittorrent,他们讨论了整个问题:
https://github.com/qbittorrent/qBittorrent/issues/17352
他们固定在这个特殊的提交:
https://github.com/arvidn/libtorrent/pull/6965
希望Matlab可以介绍相同的修复,希望找到新版本。
我可以从Mathworks平某人这就给,这可以帮助他们解决这个问题。
Adrian Dummermuth
2022年9月22日
我得到这个错误当我试图挽救.mlx文件提供的教授。我有写权限在/ tmp /但我不知道为什么保存.mlx不工作但是如果我创建一个新文件。有什么建议吗?
运行在流行!_OS 22.04 LTS
Linux pop-os 5.19.0-76051900-generic # 202207312230 ~ 202207312230 ~ 22.04 ~ 9 d60db1 SMP PREEMPT_DYNAMIC星期四x86_64 x86_64 x86_64 GNU / Linux
不能ex_1_1_tmp.mlx保存文件。
. lang。RuntimeException:内部异常书面MLX文件:无法提交修改:复制失败:fl:文件系统:SystemError: / tmp / .ed28 df99 - 8888 aaaatmp无效跨设备的链接
4评论
Lennart古德里安
2022年11月30日
嘿,伙计们,
这个问题也一直缠着我(在揭路荼(Arch) Linux),我只是想分享我想出的解决方案,不需要你降级您的内核,因为这是我没有很兴奋。谢谢你!
@simone rotondi
文件系统的信息的问题会同temp目录!
以来我主要的硬盘上我有一个btrfs,我只是格式化u盘小脂肪,将其命名为matlab,创建了一个
tmp
并设置
TMPDIR
var指向(' /运行/媒体/ uname / matlab / tmp”)。然后我保存所有matlab这个u盘上的文件,就像一个魅力。肯定不是最优(期待很快修复MathWorks团队)但对我来说这是寒冷的选择比降级和版本锁定我的内核。
希望它能帮助一些人!
干杯
2的评论
Lennart古德里安
2023年3月3日
命令中使用Matlab
setenv (“TMPDIR ', '文件夹从NTFS, EXT4…')
正如你所看到的在西蒙上面的回答。在Matlab中有一个自动运行启动脚本你可以写当你打开这个项目,如果你加入这一行,它将自动在每一个开始,问题已经解决了(如果你也有外部存储设备的FAT文件系统连接)。
尤金·范伯格
2022年12月8日
浪费(我讨厌承认这一点)之后几天试图找到一个完整的解决方案变体的这个问题,我发现,问题的根源是旧版本的Java JRE, Mathworks R2022b包。更换一个新版本的JRE修复的每个实例copy_file_range交叉设备问题(临时目录,仿真软件保存问题,Xilinx blockset编译)。万博1manbetx
过程:
- 下载并解压或安装javahttps://www.java.com/en/download/manual.jsp
- 在matlab安装目录,重命名R2022b / sys / java / jre / glnxa64 R2022b / sys / java / glnxa64.orig
- R2022b / sys / java / jre目录创建一个名为glnxa64的符号链接到下载jre。现在应该有glnxa64 / bin / java指向新的java二进制。
R2022b更新2的版本是2019年1月
java版本“1.8.0_202”
Java (TM)运行时环境(构建1.8.0_202-b08)
Java热点(TM) 64位服务器虚拟机(构建25.202 -b08,混合模式)
在安装新版本
java版本“1.8.0_351”
Java (TM)运行时环境(构建1.8.0_351-b10)
Java热点(TM) 64位服务器虚拟机(构建25.351 b10,混合模式)
尤金·范伯格
2022年9月27日
我在22.04.1 LTS也有同样的问题。MATLAB是安装在一个不同的体积比/ tmp。strace显示下面的模式。通过创建一个临时目录的磁盘卷上matlab上安装和运行matlab与TMP变量设置为目录错误解决但这似乎是个糟糕的解决方案。
[pid 38662] openat(具有,“/ opt / MATLAB / R2022b /工具万博1manbetx/模型/块/过时/ simulink_need_slupdate.mdl”,O_RDONLY | O_CLOEXEC) = 948
[pid 38662] fstat(948年,{st_mode = S_IFREG | 0444年,st_size = 164480,…})= 0
[pid 38662] openat(具有,“/ tmp / .d1ee e4b5 - 3401 aa22.tmp_extracted_pac万博1manbetxkage_simulink_need_slupdate.mdl / _mwopc_packageCopy.txt”,O_WRONLY | O_CREAT | O_EXCL | O_TRUNC | O_CLOEXEC, 0100644) = 950
[pid 38662] fstat(950年,{st_mode = S_IFREG | 0644年,st_size = 0,…})= 0
零[pid 38662] copy_file_range(948年,950年,NULL, 164480, 0) = 1 EXDEV(无效的跨设备链接)
0评论
西蒙rotondi
2022年9月30日
在fedora 36 btrfs文件系统有同样的错误在R2022a和R2022b。
Linux 5.18.9是最后一个工作得很好但现在4个月大,从5.18.10 5.19.12问题依然存在。
每次我要拯救基金文件给我
错误写文件“(路径)/名称。基金”:未能关闭包:“Collegamento交易dispositivi非valido (18)”。
“Collegamento交易dispositivi非valido”意味着“无效的交叉连接设备”