无效的跨设备链接(18)当arch linux上保存一个文件

195(30天)
我已经安装了matlab在arch linux。一切都很好,甚至仿真软件。万博1manbetx我也可以打开的文件没有问题。但每当我尝试保存一个文件,我得到错误。我不能找到任何在线
错误写文件”(路径)“无效的跨设备链接(18)”。

接受的答案

约书亚Ortiga
约书亚Ortiga 2022年9月7日
移动:沃尔特·罗伯森 2022年9月7日
我也使用Arch Linux和有同样的问题。不幸的是这是一个问题,目前仅通过下调来解决您的内核,Linux 5.18.9 < =
4评论

登录置评。

更多的答案(9)

西蒙rotondi
西蒙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
Jacek Jagosz 2022年11月9日
从Matlab的人,这是帮助他们解决这个问题。
一些其他的应用打破了这种变化,不仅仅是Matlab。例如qBittorrent,他们讨论了整个问题: https://github.com/qbittorrent/qBittorrent/issues/17352
他们固定在这个特殊的提交: https://github.com/arvidn/libtorrent/pull/6965
希望Matlab可以介绍相同的修复,希望找到新版本。
我可以从Mathworks平某人这就给,这可以帮助他们解决这个问题。
3评论

登录置评。


Adrian Dummermuth
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评论
Maciej
Maciej 2022年9月29日
你可以保存.mlx文件/ tmp目录,然后将文件移到你prefferred位置。不过,这是一个贫穷的解决方案。

登录置评。


卡洛斯Planelles Otero
卡洛斯Planelles Otero 2022年9月28日
我有同样的问题在流行!_OS 22.04,储蓄作为m文件没问题但不是.mlx。

Lennart古德里安
Lennart古德里安 2022年11月30日
嘿,伙计们,
这个问题也一直缠着我(在揭路荼(Arch) Linux),我只是想分享我想出的解决方案,不需要你降级您的内核,因为这是我没有很兴奋。谢谢你! @simone rotondi 文件系统的信息的问题会同temp目录!
以来我主要的硬盘上我有一个btrfs,我只是格式化u盘小脂肪,将其命名为matlab,创建了一个 tmp 并设置 TMPDIR var指向(' /运行/媒体/ uname / matlab / tmp”)。然后我保存所有matlab这个u盘上的文件,就像一个魅力。肯定不是最优(期待很快修复MathWorks团队)但对我来说这是寒冷的选择比降级和版本锁定我的内核。
希望它能帮助一些人!
干杯
2的评论
Lennart古德里安
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,混合模式)
1评论
西蒙rotondi
西蒙rotondi 2022年12月9日
你好,我认为这是一个很酷的解决方案但我不设法解决这个问题。
我在fedora update1 37和Matlab 2022 b
我试着这个技巧与甲骨文java库和openjdk填词。但是他们没有解决错误。(不管怎样,我将一直使用它)
“Java 1.8.0_352-b08红帽公司OpenJDK。64位服务器虚拟机混合模式”
与甲骨文公司的Java 1.8.0_351-b10 Java HotSpot VM (TM) 64位服务器混合模式”
这可能是完全是我的错,我希望。我会继续努力,谢谢!

登录置评。


尤金·范伯格
尤金·范伯格 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(无效的跨设备链接)

西蒙rotondi
西蒙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”意味着“无效的交叉连接设备”
6个评论
西蒙rotondi
西蒙rotondi 2022年11月11日
编辑:西蒙rotondi 2022年11月11日
如果你在Fedora36我只会推荐回到内核5.18.9
你可以下载并安装它
mkdirKernDown
cdKernDown
kojidownload-build内核fc36——5.18.9 - 200.
sudodnf安装。/内核- *
并锁
sudodnf versionlock添加内核fc36——5.18.9 - 200.
然后解锁同欢笑的问题什么时候能修好
sudodnf versionlock删除kernel-5.18.200.fc36
否则你应该遵循 @Walter罗伯森 建议

登录置评。


费德里科•
费德里科• 2023年3月30日
解决方案,最新的内核,MATLAB R2022b
确保选择了TMPDIR在/ home分区:
因为它是需要做它任何时候你打开matlab。
打开(或创建) startup.m 在你的 userpath 文件夹,使用下面的命令:
编辑(fullfile (userpath,“startup.m”))
然后在这个文件下面的行(使用正确的文件夹路径):
setenv (“TMPDIR”,“/ home /对于/ yourtempdir”);

类别

找到更多的在性能和内存帮助中心文件交换

s manbetx 845


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!