Java程序无法在linux中的挂载系统上写入

     2023-02-16     306

关键词:

【中文标题】Java程序无法在linux中的挂载系统上写入【英文标题】:Java program is unable to write on mounted system in linux 【发布时间】:2018-09-30 12:27:33 【问题描述】:

我目前正在处理一个场景,我们必须在 Linux 和 Windows 的共享目录中创建一个文件。 我已经通过以下链接来实现它:

https://www.journaldev.com/878/java-write-to-file

https://it.toolbox.com/question/how-to-write-a-file-in-a-network-folder-without-using-ftp-031208

我能够在 Windows 网络中实现它,例如将文件名指定为 (\\198.168.1.1\data\files)

但对于 Linux,我首先使用 NFS 通过以下链接共享特定目录:

https://alvinsim.wordpress.com/2012/06/21/mounting-nfs-from-linux-to-aix/

https://www.tecmint.com/how-to-setup-nfs-server-in-linux/

但出现以下异常:

java.io.FileNotFoundException: /data/files(只读文件系统)

我在以下线程中发现以下问题已解决,但我无法成功:

https://askubuntu.com/questions/197459/how-to-fix-sudo-unable-to-open-read-only-file-system

感谢任何建议。

【问题讨论】:

我认为修复链接与在某些故障后恢复 rw 文件系统更相关。在您的情况下,您正在安装的文件系统可能是 ro。我记不太清楚了,但你可以在 fstab 中看到这个。 为了获得更好的答案,您应该提供 fstab 或 mount 条目 - 使用 grep '/data/files' /etc/fstabmount | grep '/data/files' 另外,试试touch /data/files/justatest.txt——只要失败,问题就不是java相关的 您是否尝试过使用 SMB 而不是 NFS 【参考方案1】:

所以我终于能够弄清楚问题所在了。

我根据 /etc/exports 文件中的链接创建的条目是不够的。 我们需要使用一些选项以及(同步、rw 等)来允许使用任何 java 程序进行任何手动修改或修改。 就我而言,我应该使用选项 (rw,no_root_squash)。 它奏效了。 正如在中很好解释的那样:

https://serverfault.com/questions/611007/unable-to-write-to-mount-point-nfs-server-getting-permission-denied/611013#611013?newreg=ce76e9417ca645da9487a5d9ccbf0371

来自文档: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/deployment_guide/s1-nfs-server-config-exports

root_squash — 防止远程连接的 root 用户拥有 root 权限,并为他们分配用户 nfsnobody 的用户 ID。这有效地将远程 root 用户的权力“压制”到最低的本地用户,防止未经授权更改远程服务器上的文件。或者, no_root_squash 选项关闭根压缩。要压缩每个远程用户,包括 root,请使用 all_squash 选项。

【讨论】:

挂载怎么理解

...。中文名挂载属于挂载通常是指给磁盘分区访问存储设备中的文件通过访问这个目录来访问存储设备。在windows操作系统中,挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。这个操作可以通过“计算机管... 查看详情

8.29_linux磁盘管理

...点和/etc/fstab/etc/fstab配置文件系统体系被mount、fsck和其它程序使用写入配置文件的挂载路径,系统重启时保留文件系统体系可以在设备栏使用文件系统卷标使用mount-a命令挂载/etc/fstab中的所有文件系统文件挂载配置文件/etc/fstab每... 查看详情

PHP 无法将上传的文件移动(写入)到挂载的网络驱动器

...上的共享本地目录中编辑工作文件来开发基于PHP的Web应用程序。然后(linux)登台服务器安装我们的共享驱动器并在子域下为它们提供服务。例如。joe.work.com 查看详情

linux中的NFS挂载系统调用

...。mount-tnfs-onolock10.126.62.45:/vol/home/avinoba/Sky/mnt上述命令在程序中使用的等效系统调用是什么?我尝 查看详情

linux时间不同步会影响挂载吗?

...Linux系统的时间不同步,可能会影响挂载的过程,并导致无法将文件正确挂载到目标磁盘上。因此,在挂载前应首先设置Linux系统的时间,以确保挂载的顺利完成。 参考技术B会,linux时间不同步会影响挂载,可能会使平台验证失... 查看详情

什么是挂载,linux挂载如何实现详解(代码片段)

...中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异... 查看详情

什么是文件的挂载?

...中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。 Linux中的挂载,指的就是将设备文件中的顶级目录连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。(纠正一个误区... 查看详情

Linux 上 Java 中的多点触控事件:来自操作系统的事件还是在应用程序中识别?

...Java中的多点触控事件:来自操作系统的事件还是在应用程序中识别?【英文标题】:Multi-toucheventsinJavaonLinux:eventsfromOSorrecognizeinapplication?【发布时间】:2014-10-0613:20:16【问题描述】:我正在尝试实现一个能够利用触摸事件和多点... 查看详情

linux硬盘掉线挂载信息还在

磁盘挂载与卸载磁盘分区完之后需要格式化,格式化之后需要挂载磁盘。格式化后的磁盘恰是是一个块设备文件,类型为b。在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某个分区挂载到... 查看详情

如何将所有系统输出写入java中的文件?

我创建了一个JAVA应用程序。有时,用户对其执行无效操作,或者在输出错误时应用程序遇到一些异常。但是,除非我使用java-jarmyapp.jar从命令行运行应用程序,否则这些输出不可见我希望以日志的形式将所有这些记录到文件中,... 查看详情

为啥从windows中拷贝到移动硬盘中的有些文件或文件夹在ubuntu中无法显示

...了linux操作系统时它用通常的方式扫描硬盘、U盘等介质就无法正常获取,也就造成无法读取无法显示。我没用过ubuntu版本的linux系统所以不能从根源上帮你解决,但是你可以在windows系统上保证文件的单纯性。还有应当注意的是,... 查看详情

安装tuxerantfsformac后依旧无法写入怎么办?(附下载)

...完成后即可完美解决此问题,但有时会发现,Mac系统依旧无法写入磁盘文件,那此时又该怎么办呢?首先遇到这种情况不用慌,大概率产生问题原因是由于软件本身设置问题或者是磁盘本身问题,下面跟着我看看如何一步步解决... 查看详情

计算机中的挂载是啥意思?

...里面的文件,但在命令行却不知怎么访问它的目录,比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。5.这时提问者使用了mount/dev/sdb1~/Share/,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,之后访问这个~/Share/... 查看详情

Windows 上的 Java 无法写入 PhysicalDriveX

】Windows上的Java无法写入PhysicalDriveX【英文标题】:JavaonWindowscannotwritetoPhysicalDriveX【发布时间】:2013-12-0822:07:56【问题描述】:我在Windows上遇到了Java的这个讨厌的问题。(Linux上的Java没有这个问题。)在Linux上,作为root用户,... 查看详情

怎样挂载spiflash分区到文件系统中的目录下

...分区中的内容。那些文件还在硬盘上,但是你看不到了,无法使用它们,直到你把/home卸载了,这时原来的内容又出来了。作者:lixue4961发布日期:2011-8-19谢谢各位前辈的指点,现在思路清晰多了,昨天晚上我试着在虚拟机上装了... 查看详情

代号 One 控制中心无法在 Linux 操作系统 (Ubuntu) 上运行

...我的机器上运行IntelliJIDEA,但我无法打开CN1控制中心应用程序。当我点击CodenameOnePreferences时没有任何反应。我已经运行了java-jar~/.coden 查看详情

linux磁盘信息查看和挂载新硬盘

...插到服务器上后,需要将硬盘挂载到文件系统上,不然是无法使用的。具体可以这样理解,在Windows上的硬盘没有分区也是无法直接使用的。效果如下之前sdb后面时没有挂载的,我们挂载到了/data目录下。sdb是单独的一块大硬盘。... 查看详情

linux9.0怎么挂载u盘?

...在WINDOWS中是不一样的。USB存储设备被视为SCSI设备。系统中的第一个SCSI设备表示为"sda",第二个表示将哦为“sdb”.可以使用“fdisk-l”命令来列出系统中所有的存储设备。U盘的挂载:#mount-tvfat/dev/sda1/mnt//mnt目录通常用于挂... 查看详情