tar打包时报错:Reached end-of-file before expected的解决方法

在ibm-aix5.3下用tar打包一个文件夹时报错:tar: 0511-194 Reached end-of-file before expected.

用的命令是:tar -cvf /tmp/sybase12503.tar /sybase/sybase12x

解决方法:

执行ulimit -f 返回结果为:2097151,说明系统对用户所能用的文件大小限制为:2097151*512=1G

此时查看没有成功打包完成的/tmp/sybase12503.tar文件,发现其大小正好是:1073741312 (bytes).

可通过改 /etc/security/limits 文件中的fsize来设置为无限制:

default:
    fsize = -1

为使 /etc/security/limits 文件的更改生效,用户必须注销当前登录会话并重新登录。
 
重新登录后,执行ulimit -a 返回结果为:unlimited。此时更改已经生效,对用户所能用的文件大小不加限制。但是,
无论 ulimit 设置如何,AIX 上的标准文件系统都有2GB文件大小限制,如果需要建大于2GB的文件需要启用大文件 选项创建文件系统。
 
然后,再次执行:tar -cvf /tmp/sybase12503.tar /sybase/sybase12x
成功将/sybase/sybase12x打包成/tmp/sybase12503.tar。
-bash-3.2$ ls -al /tmp/sybase12503.tar
-rw-r--r--    1 root     system   1142118400 May 12 11:17 /tmp/sybase12503.tar
 
补充:在网上搜到用tar打包的文件超过2G的时候,也是报同样的错误。此时就是文件系统的原因了。应该不是jfs2或者big file enable的jfs文件系统。
-bash-3.2$ lsfs -q /tmp
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/hd3        --         /tmp                   jfs2  20971520 --         yes  no
本机的/tmp文件系统为jfs2,应该可以支持2G以上的文件。
 
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:tar aix ulimit jfs2 打包 压缩 解压
————————————————————————————————-
  • 本文链接地址:http://www.sybrepair.com/tar-package-reached-end-of-file-before-expected.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《tar打包时报错:Reached end-of-file before expected的解决方法》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)