首页 > 试题广场 >

默认block size=4k情况下,Ext3文件系统支持

[单选题]
默认block  size=4k情况下,Ext3文件系统支持的最大文件大小是 ______。
  • 1TB
  • 2TB
  • 4TB
  • 16TB
C

ext3还是使用15个inode来查找数据块,前12个为直接数据块,直接指向存储数据的数据块,接下来分别为一级间接块,二级间接块,三级间接块.
最大文件:
前面直接指向12个数据块,一级间接块最大为block size / 4,block size就是数据块的大小,因为一个索引是4个字节,所以除以4,这样计算下来,最大的文件可以使用的总块数为:12 + (block size/4) + (block size/4)^2 + (block size/4)^3,如果block size大小为4K,则为(12 + 2^10 + 2^20 + 2^30) * 2^12 约等于4T。
参考:http://zhumeng8337797.blog.163.com/blog/static/100768914201112805015563/
编辑于 2015-08-25 00:36:53 回复(5)
维基百科上的说明:
发表于 2015-09-23 11:57:27 回复(0)
说下我对2TB的理解,不知道对不对。 我觉得这道题实际上不太严谨,因为这个2TB应该是针对linux EXT3来说的。 当block size是4K的时候,经过计算,EXT3本身支持的最大文件大小的确是4TB。 然而在早期的linux中,ext3_inode结构中有一个u32 i_blocks,代表文件的总block数,但是这个i_blocks并不是以ext3实际设置的block size为单位,而是固定以512B为单位,所以最大的文件大小被限制为2∧32×2∧9=2T. 然而这个限制现在早已经不存在了,即使在32位机器上,现在的i_blocks也被定义为blkcnt_t,可以是64位,所以也可以突破2T的限制。 这是我唯一能找到的合理解释。
发表于 2016-04-11 11:33:57 回复(0)
2TB
inode中,有个字段记录了扇区数目。大小为4个字节,所以为2T
发表于 2017-08-21 18:07:48 回复(0)
发表于 2017-04-20 15:27:57 回复(0)
做完了,答案选b
发表于 2017-03-24 08:41:47 回复(0)
计算结果是4TB,但是 内核中还有个参数来限制单个文件的大小,那就是upper_limit.而upper_limit=0x1FF7FFFD000 近似等于2TB。
发表于 2016-07-27 11:26:09 回复(0)
每个inode大小固定为128bytes,每个文件仅会占用一个inode。inode除了记录文件的属性外,还有12个直接,一个间接,一个双间接,一个三间接来记录block。
12个直接指向:12*4K=48K
间接:间接记录block的区段可以指向一个block,该block用于记录存储数据的block。每条block号码的记录要用去4bytes,因此一个4K的block可以记录4K/4byte=1024个block号码。所以可记录大小为1024*4K=4M
双间接:同理,这个双间接区段可以指向一个block,该block用于记录存储指向数据block的block。4K的block可以记录1024个block号码,而这1024个block中每一个都可以记录1024个指向数据的block。所以可记录的总大小为1024*1024*4K=4G
三间接:同理可得三间接区段可记录文件大小为1024*1024*1024*4K=4T
鸟哥的书上表8.1写的是2TB,答案也是2TB,不知道为什么 ?
发表于 2015-09-01 09:46:53 回复(0)
发表于 2015-08-14 11:07:28 回复(0)