- 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 |