遇到这个问题其实主要就是说,有可能是linux上挂载的文件系统不合适,此外就是针对特定的文件格式,没有进行很好的适配,这里主要是指NTFS
首先的话就是要把这个盘符要卸载一下,其次再重新挂载
关于linux下的文件操作指令,在文章末尾有详细介绍,这里直接给出来:
fdisk命令查看硬盘的信息:
fdisk -l /dev/sdb查看硬盘的信息
这里使用的卸载命令其实就是umount命令:
umount /dev/sda
至于说下一步进行重新挂载的话,主要是需要两个工具包:ntfs-3g 以及ntfsfix
前者是进行挂载ntfs盘经常使用的一个工具,后者的话是一个挂载NTFS分区错误修复工具,主要是因为如果这个ntfs盘符是从一个windows系统下取出的,那大概率是会出这个问题,这个ntfsfix 的用途和解决方案在这里:
linux下挂载NTFS分区错误修复
然后接下来几个步骤就可以解决问题了:(参考链接)
1. 安装ntfs-3g
yum install -y ntfs-3g
2. 安装ntfsprogs, 不安装的话一会执行ntfsfix命令将会提示找不到该命令
yum install -y ntfsprogs
3. 执行fdisk -l查找要挂载的分区文件, 假设找到的ntfs分区为/dev/sdb1
4. 此时如果执行第5步的话会提示"Metadata kept in Windows cache, refused to mount."之类的错误提示, 所以需要执行以下命令:
ntfsfix /dev/sdb1
5. 挂载分区, 执行命令:
mkdir -p /mnt/ntfs
mount -t ntfs-3g /dev/sdb1 /mnt/ntfs
此外:
中途还遇到过这些问题:
Python 在Linux写入文件 遇到OSError: [Errno 5] Input/output error
补充一些linux查看磁盘挂载的命令:
linux查看磁盘挂载的三种方法
这里也介绍了几种使用linux文件系统的方法:
linux下查看硬盘信息、硬盘分区、格式化、挂载、及swap分区
一种方法:使用df命令,例如:
$df
再例如fdisk命令:
fdisk -l /dev/sdb查看硬盘的信息