免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5117 | 回复: 11
打印 上一主题 下一主题

[故障求助] 一个目录下已经创建了3万多个自目录,无法再创建目录(急!) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-27 18:03 |只看该作者 |倒序浏览
一个目录下已经创建了3万多个自目录,无法再创建目录(急!)

# pwd
/picdatanfs/databak/testapp/ClaimUploadImages/continent/2006/2/DAA
# mkdir a
mkdir: 0653-358 Cannot create a.
a: There are too many links to a file.
# pwd
/picdatanfs/databak/testapp/ClaimUploadImages/continent/2006/2/DAA
# ls -l |wc
   32766  294887 2621212
# df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4           524288    452844   14%     3226     2% /
/dev/hd2          4194304   1794336   58%    41847     4% /usr
/dev/hd9var       1048576    952812   10%      401     1% /var
/dev/hd3          2097152    821532   61%     1521     1% /tmp
/dev/hd1          6291456   3436552   46%    83246     6% /home
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      2097152   2009388    5%      593     1% /opt
/dev/oralv        8388608   3616828   57%    74144     4% /oracle
/dev/weblv        4194304   2561508   39%    33022     4% /home/weblogic
/dev/piclvnfs   104857600  11870296   89%  2056652    43% /picdatanfs
/dev/stdarch     25165824  13742232   46%       68     1% /stdarch
#

文件系统是JFS2的
# instfix -i |grep ML
    Not all filesets for 5.2.0.0_AIX_ML were found.
    Not all filesets for 5200-01_AIX_ML were found.
    Not all filesets for 5200-02_AIX_ML were found.
    All filesets for 5200-03_AIX_ML were found.
    Not all filesets for 5200-04_AIX_ML were found.
    Not all filesets for 5200-05_AIX_ML were found.

论坛徽章:
0
2 [报告]
发表于 2006-02-27 18:42 |只看该作者
是否单个目录下创建的目录个数有2^15限制?
能否修改这个限制?

论坛徽章:
0
3 [报告]
发表于 2006-02-28 00:16 |只看该作者
这个限制是在/usr/include/sys/limits.h里定义的:

the LINK_MAX value is set to 32767

#define LINK_MAX        SHRT_MAX
../..
#define SHRT_MAX        (32767)


所以一个目录不能够拥有超过32767个 子目录.

以下是英文解析:
This is due to the fact that ".." in each subdirectory is a hard-link back to
the parent directory and the link count is implemented with a signed 16
bit quantity. Hence the error, EMLINK. Regular files are ok since they
do not require this link. You could work around this limitation by using
symbolic <links> to directories

/usr/include/sys/limits.h as the LINK_MAX value set to 32767

#define LINK_MAX        SHRT_MAX
../..
#define SHRT_MAX        (32767)


这个限制是hard-coded, 没办法改。

只能是其他的办法,譬如创建一个symbolic link 。

论坛徽章:
0
4 [报告]
发表于 2006-02-28 10:03 |只看该作者
多谢!

听说sun下面可以修改内核,难道AIX下就不能实现?郁闷。

论坛徽章:
0
5 [报告]
发表于 2006-02-28 11:37 |只看该作者
呵,又长见识了。

论坛徽章:
0
6 [报告]
发表于 2006-02-28 14:12 |只看该作者
搞编程的应该对32767 这个值比较敏感,这是个c的限制
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。

类型说明符    数的范围     分配字节数
int       -32768~32767     ■■
short int    -32768~32767     ■■
signed int    -32768~32767     ■■
unsigned int   0~65535        ■■
long int  -2147483648~2147483647  ■■■■
unsigned long  0~4294967295     ■■■■

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2006-02-28 17:07 |只看该作者
仰望 楼上的···············

论坛徽章:
0
8 [报告]
发表于 2006-05-16 14:36 |只看该作者

问题解决了吗?我也有相同问题,还不知道如何处理。烦请告知。谢谢!

问题解决了吗?我也有相同问题,还不知道如何处理。烦请告知。谢谢!

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-09 06:20:00
9 [报告]
发表于 2006-05-16 15:04 |只看该作者
那意思是没办法改了,看来不能多于72766呀.

论坛徽章:
0
10 [报告]
发表于 2006-05-16 20:55 |只看该作者
PFPF,

HOW TO SOLVE IT?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP