Linux下出现Value too large for defined data type的报错

最近在运行脚本文件时,出现Value too large for defined data type的报错。困扰了好几天,网上有一部分解决方法是在挂载时在 -o 后添加上nounix,noserverino这两个参数,例如:

mount -o username=XXX,nounix,noserverino //d.d.d.d/XXX XXX

其中:

nounix主要是禁用CIFS UNix的扩展,从而关闭很多设置来解决部分会因为扩展导致的问题。

noserverino主要是禁止使用来自服务器端的编号而使得客户端生成inode编号。

但之前在进行mount时就已经添加上这两个参数了,且利用这种方法的例子和我的错误虽然都报错Value too large for defined data type,错误行开头出现的信息是不同的。

进一步测试且结合一些解释,推测错误原因应该和inode有关,且参数nounix解决的也是一种因inode差异产生的问题。通过ls -i查看目标文件夹的inode号,发现inode号大于4,294,967,296(2的32次方),为64位下的inode号。而编译生成的工具可能只能识别32位的inode号,也就是inode号小于4,294,967,296的位置。据说可以通过挂载时的命令可以限制inode挂载后生成inode的位数,但是包括查看mount(8)手册也没有找到。

最后通过重新创建目标位置文件夹使其inode在32位的表示范围内解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值