dumpe2fs가 보고한 "첫 번째 inode"는 무엇입니까?

dumpe2fs가 보고한 "첫 번째 inode"는 무엇입니까?

일부 ext4 파티션에서 dumpe2fs를 사용하여 초기 데이터를 얻었습니다. 첫 번째 inode는 #11입니다. 그러나 ls -i이 디스크의 루트 파티션에 있는 경우 해당 inode 번호는 예상대로 #2입니다. 그렇다면... dumpe2fs가 보고한 "첫 번째 파티션"은 무엇입니까?

답변1

#11은 처음으로 정기적으로 생성된 파일이나 디렉터리에 사용할 수 있는 첫 번째 "비특수" inode입니다(일반적으로 에 사용됨 lost+found). inode의 번호는 파일 시스템의 슈퍼 블록( s_first_ino)에 저장되므로 기술적으로 #11일 필요는 없지만 mke2fs항상 그렇게 설정됩니다.

#0에서 #10까지의 대부분의 inode는 특별한 용도로 사용되지만(예: #2는 루트 디렉토리) 일부는 ext 파일 시스템 계열의 비업스트림 버전에서 예약되거나 사용됩니다. 사용법은 다음에 문서화되어 있습니다.kernel.org.

아이노드 번호 목적
0 해당 없음
1 결함이 있는 차단 목록
2 루트 디렉토리
사용자 할당량
4 그룹 할당량
5 부트로더용으로 예약됨
6 디렉터리 삭제 취소(보존)
7 "아이노드 크기 조정"
8 잡지
9 "제외" inode(예약됨)
10 inode 복사(예약됨)

답변2

Inode #1 -> #10은 "예약"되어 있습니다. 예약된 블록 #2는 파일 시스템의 "루트" 디렉터리입니다.

따라서 #11은 일반적으로 할당된 첫 번째 실제 inode입니다.lost+found

그래서:

% ls -ali / | awk '$1<=11'
 2 dr-xr-xr-x. 18 root root  4096 Jul 24  2019 ./
 2 dr-xr-xr-x. 18 root root  4096 Jul 24  2019 ../
 2 dr-xr-xr-x.  6 root root  4096 May  1 22:21 boot/
 3 drwxr-xr-x  17 root root  2980 Jun 30 20:49 dev/
11 drwx------.  2 root root 16384 Jul 24  2019 lost+found/
 1 dr-xr-xr-x  90 root root     0 Jun 30 20:49 proc/
 1 dr-xr-xr-x  13 root root     0 Jun 30 20:49 sys/

디렉터리 boot dev procsys둘 다 마운트 지점이므로 ls출력에는 이러한 파일 시스템 내의 inode 번호가 표시됩니다. .그러면 ..#2와 lost+found#11이 나옵니다.

ext2의 이전 버전에서는 이 보유 횟수가 수정되었습니다. 이후 버전에서는 슈퍼블록에서 구성할 수 있으며 이것이 dump2fs보고되는 값입니다.

관련 정보