【转】Ext4文件系统之快速格式化-数据结构方式(Win平台-任意平台)

1.更新根目录(Update Root Directory) 

    加载inode2设置硬链接数为2+1=3【加入默认目录】在inode2指向的目录表中添加目录"lost+found",其inode设置为11,即第一个非保留inode。(load inode 2 and set link-count to 3,jump to root entry set one dir "lost+found" with inode 11.)


2.创建默认目录(Create DefaultDir)

    设置inode11信息,令inode11.offset=inode2.offset+1,在inode11.offset位置创建默认目录的目录表信息,“.和..”。(update inode 11,inode11.offset=inode2.offset+1,Create null entry ".&.." at inode11.offset.)


3.更新GTD表(Update GTD)

    GDT[0].freeblock=BlockPerGroup-inode2.offset-1; 

    GDT[0].freeblock_hi=BlockPerGroup-(GDT[n].inode_bitmap_hi)&0xFF-0x200;

    GDT[0].free_inodo_block=InodesPerGroup-11,GDT[n].free_inodo_block=0(n>0).


4.更新数据位图(Update Bitmap)

    通过GTD信息同步数据位图。(sync bitmap by GDT.)


5.更新超级块(Update SuperBlock)

    Update SuperBlock.freeblock and SuperBlock.freeInode by GDT.


附加(addition)

char * getbitmap(unsigned int used){


if (used>4096*8)return 0;


static char buff[4096]; 


memset(&buff,4096,0);


int i,s=0;


int f= used/8;


int x=used % 8;


for (i=0,i<f,i++)buff[i]=0xff;


for (i=0,i<x,i++)s=s+1<<i;


buff[f]=s;


return &buff;


}


原文CoolDUP:http://blog.cooldup.com/?id=61

文章标签:

本文链接: http://lmroot.com/blog/?id=9,尊重共享,欢迎转载,请自觉添加本文链接,谢谢!

版权声明: 本文除特别说明外均由原创

分享本文:
呃 本文暂时没人评论 来添加一个吧

分享:

支付宝

微信

歌曲 - 歌手
0:00