2011-09-28 6 views
1

취미 OS 용 ext2 드라이버를 작성하면서 블록 그룹 설명자에서 inode 테이블을 읽는 중 문제가 발생했습니다.ext2 블록 그룹에서 inode 테이블을 읽는 방법은 무엇입니까?

블록 그룹 설명자의 세 번째 필드는 해당 그룹에 대한 inode 테이블의 블록 ID입니다. 필자의 경우 파일 시스템의 루트 디렉토리에 대해 64로 돌아옵니다. 수퍼 블럭은 블록 1에 위치하며 볼륨의 시작 부분부터 1024 바이트입니다. 블록 크기는 1024 바이트이지만 디스크 섹터 크기는 512입니다. 따라서 수퍼 블록에 액세스하려면 lba 2에서 읽습니다.

문제는 inode 테이블을 읽으려고 할 때입니다. 블록 ID가 64이고 내 블록 크기가 1024이고 디스크 섹터 크기가 512 인 경우 디스크 섹터 130에서 inode 테이블을 읽지 않습니까? 그럴 수는 있지만 아무 것도 없습니다 ...

유효한 블록 그룹 설명자가 주어진 경우 올바른 inode 테이블을 읽는 방법은 무엇입니까?

답변

1

블록 그룹 설명자 테이블의 블록 ID는 모두 절대 값이므로 블록 ID 64는 사용자의 경우 LBA 128 및 129에 저장됩니다.

+0

Duh! 나는 꽤 피곤했고 분명한 대답을 놓쳤다. –