今天在AIX上tar备份文件失败,tar命令打包时出错 tar: tape write error: unexpected EOF 。df -g显示文件系统有很大的空间但是就是无法写入。不只在Windows下fat32文件系统文件有4G的限制,在unix上也有文件大小的限制的。
在AIX上用户写入的文件大小除了受限于文件系统格式,还受限于ulimit的设置:

ibm@test1:/home/ibm/>ulimit -a
time(seconds) unlimited
file(blocks) 2097151
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user) unlimited
ibm@test1:/backup/>ls -lrt
-rw-r–r– 1 ibm ibm 1073741312 Sep 27 18:43 websphere.bak.tar

这里block即512字节,这里的文件大小限制为2097151×512=1073741312。和备份失败的文件大小一样。

在HP-UNIX下,一般文件不能大于2G。因为在HP-UNIX上的UFS文件系统当一个文件大于2GB的之后被称为large file,其处理的方法和一般文件系统不一样。

通过更改挂载参数来支持largefiles
#fsadm -F vxfs -o largefiles “/dev/vg00/lvol*”
用large file选项挂载文件系统:
#mount -F vxfs -o largefiles /dev/vg#/lvol# /(mountpoint)