今天遇到一个特别奇怪的问题,我将一个2T的分区(以ext4格式化)挂载到/data(该目录为我自己创建),/data权限为777,但是我再在/data下再创建一个目录dm,dm目录权限为755,但是我以root权限在/data下可以创建文件,在系统的其他地方也可以自如创建文件,,,但是我在/data/dm下却无法touch文件,dmesg查看,发现很多ext4报错,报错情况类似于 node1 kernel: EXT4-fs error (device sdj): htree_dirblock_to_tree: bad entry。
在网上搜了一遍,发现很多人都推荐fsck,然后再mount,,,或者尝试重启,,,缘由是分区变为readonly了
但是此时我身边的一位牛人,他偏不这么做,,,,,他经过了一番分析,搜索(以我小菜的角度看来),,,他首先提出“如果inode过多,会导致无法创建文件”,,虽然我对文件系统有一点点的了解,但我从未往这个方向想过,顿时我觉得这个idea很新颖,但牛人进过一番查看(如何查看inode数量,自查),,否定了这个方向
然后我又不知道他怎么弄弄弄,找到MBR与GPT分区格式,,他把这个2T分区由MBR(fdisk命令采用这种格式)改为GPT(parted命令采用这种格式)时,奇迹发生了,问题解决了。
这还是我第一次听闻MBR与GPT,顿时对这位牛人膜拜不已,,对于MBR与GPT,网上资料很多,我这只是提出这样一个解决方案,至于原理各位请自行深究,欢迎回贴讨论