ext2 파일 시스템에서 삭제 된 inode를 찾으려고합니다. 그리고 이것은 내가 취하는 접근법입니다. 그러나 나는 내가 잘못하고 있다고 생각합니다.
나는 수퍼 블록의 시작에 1024 바이트를 먼저 찾고 있습니다.
블록 크기가 1024 바이트임을 알 수 있으므로 그룹 설명자 테이블은 오프셋 2048에서 시작합니다.
그룹 디스크립터 테이블에는 각 블록 그룹에 대한 그룹 디스크립터가 있습니다. 그래서 그룹 설명자 또는 블록 그룹의 수를 계산합니다 : 그룹당 총 아이 노드 / 아이 노드. 이것은 나에게 값 8을 제공합니다. 즉, 블록 그룹 설명자 테이블에 8 개의 그룹 설명자가 있습니다.
8 개 그룹 설명자 모두에 대해 first_inode_table 필드를 읽었습니다. 그룹 설명 자의 길이는 32 바이트입니다.
이것이 내가 혼란스러워하는 곳입니다. 첫 번째 그룹 디스크립터에 대한 inode 테이블은 260을 제공합니다. 이것은 첫 번째 블록 그룹에 대한 inode 테이블에 액세스한다는 것은 260 * blocksize입니까?
일단 거기에 도달하면 dtime 필드를 읽습니다. 마지막으로 삭제 된 시간을 알려줍니다. 그것이> 0이면 삭제되었음을 의미합니다.
그래서 내가 가진 또 다른 혼란은 inode 테이블의 처음 11 개 항목이 예약되어 있다고합니다. 따라서 inode 테이블의 모든 inode 항목을 제대로 살펴보면 문제가되지 않습니다.
내 접근 방식이 맞습니까? 당신이 뭔가 잘못 볼 경우 올바른 방향으로 알려주세요.
추론이 맞습니다. 버그는 다른 문제로 인한 것입니다.
@Catie이 문제를 해결 한 경우 직접 답변을 추가하거나 질문을 삭제해야합니다. :-)
—
John Parker
답변을 직접 추가하십시오!
—
kalaracey 2016 년
문제가 해결 된 또 다른 문제이므로 질문에 답변했습니다. 더 이상 문제가 없으며 Catie가 돌아올 가능성이 매우 낮으므로 답이없는 목록에 대한이 질문을 받도록 도와주십시오 ...
—
Tamara Wijsman