ext2 FileSystem 이해하기


8

ext2 파일 시스템에서 삭제 된 inode를 찾으려고합니다. 그리고 이것은 내가 취하는 접근법입니다. 그러나 나는 내가 잘못하고 있다고 생각합니다.

  1. 나는 수퍼 블록의 시작에 1024 바이트를 먼저 찾고 있습니다.

  2. 블록 크기가 1024 바이트임을 알 수 있으므로 그룹 설명자 테이블은 오프셋 2048에서 시작합니다.

  3. 그룹 디스크립터 테이블에는 각 블록 그룹에 대한 그룹 디스크립터가 있습니다. 그래서 그룹 설명자 또는 블록 그룹의 수를 계산합니다 : 그룹당 총 아이 노드 / 아이 노드. 이것은 나에게 값 8을 제공합니다. 즉, 블록 그룹 설명자 테이블에 8 개의 그룹 설명자가 있습니다.

  4. 8 개 그룹 설명자 모두에 대해 first_inode_table 필드를 읽었습니다. 그룹 설명 자의 길이는 32 바이트입니다.

    이것이 내가 혼란스러워하는 곳입니다. 첫 번째 그룹 디스크립터에 대한 inode 테이블은 260을 제공합니다. 이것은 첫 번째 블록 그룹에 대한 inode 테이블에 액세스한다는 것은 260 * blocksize입니까?

  5. 일단 거기에 도달하면 dtime 필드를 읽습니다. 마지막으로 삭제 된 시간을 알려줍니다. 그것이> 0이면 삭제되었음을 의미합니다.

    그래서 내가 가진 또 다른 혼란은 inode 테이블의 처음 11 개 항목이 예약되어 있다고합니다. 따라서 inode 테이블의 모든 inode 항목을 제대로 살펴보면 문제가되지 않습니다.

내 접근 방식이 맞습니까? 당신이 뭔가 잘못 볼 경우 올바른 방향으로 알려주세요.


추론이 맞습니다. 버그는 다른 문제로 인한 것입니다.

4
@Catie이 문제를 해결 한 경우 직접 답변을 추가하거나 질문을 삭제해야합니다. :-)
John Parker

1
답변을 직접 추가하십시오!
kalaracey 2016 년

1
문제가 해결 된 또 다른 문제이므로 질문에 답변했습니다. 더 이상 문제가 없으며 Catie가 돌아올 가능성이 매우 낮으므로 답이없는 목록에 대한이 질문을 받도록 도와주십시오 ...
Tamara Wijsman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.