【转】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
- 上一篇: 详解FAT32文件系统(转)
- 下一篇: 【转】Dalvik opcodes
呃 本文暂时没人评论 来添加一个吧