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.