본문 바로가기

File System/Ext2

Ext2 : Disk Layout

  • Boot block 한 개와 block group들 로 나누어짐
    • Boot block 은 file system과 관련 x
  • N 개의 block group 들로 나눠짐
    • 각각의 block group 들은 같은 size이고 sequential 하게 저장됨
    • Kernel은 가능하면 한 파일의 데이터 블록을 같은 블록 그룹에 저장하려 하므로 블록 그룹은 파일 단편화를 줄이는 효과가 있다 
  • <Block groups>
  • Super block
    • 파일시스템의 metatdata저장
    • File system에 있는 전체 inode 수, 전체 block 수 저장
    • Free block 수, inode counter
    • Block group 당 block, inode 수, block size 등등 정보 들어있음

 

  • Group descriptors
    •  Group 내 block, inode, directory 수
    • Data block bitmap, inode bitmap 의 block number
    • 첫 번째 inode table block의 block number

 

 

  • Super block 과 Group descriptor 는 각각의 block group에 duplicate 됨
    • 실제 kernel은 block group 0 만 사용
    • Fsck 가 일관성 검사할 때 duplicate 하여 다른 block group으로 copy
      • E2fsck ; boot 시 consistency 자동으로 제공하는 외부 프로그램
    • Data 깨져서 block group 0의 superblock/ group descriptor 사용 못할 때 fsck 는 다른 group의 copy 사용 가능

 

  • Data block bitmap  &  Inode bitmap
    • Bit 들의 sequence, value 0 인 곳은 free block
    • Bitmap은 반드시 single block에 저장해야함

 

  • Inode table
    • 연속적인 일련의 block들로 구성되어지며 각 block은 미리 정의된 수의 inode를 포함
    • 모든 inode 크기는 128byte
    • VFS 에서는 각 파일의 아이노드 번호가 서로 달라야함, But VFS에서는 inode number를 disk에 저장할 필요 없음
    • Eg1. find) disk에서 13020의 주소를 원함, 각 블록 그룹에는 5000개의 inode가 포함, 해당 inode는 3번째 블록 그룹에 속함, disk에 대응 하는 주소는 해당 그룹의 아이노드 테이블의 3020째 엔트리에 저장됨  -> inode number(13020)가  key
    • Eg2. size)Block size 가 4kb 이면 4096 byte => 4096 * 8 개의 inode 나타낼 수 있음

 

 

  • Data blocks
    • 해당파일 data만 들어가있음 시작과끝 그런거 없음

'File System > Ext2' 카테고리의 다른 글

Ext2 : i-node, i-block  (0) 2019.04.11
Ext2 : 특징  (0) 2019.04.11