본문 바로가기
리눅스

inode

by Justin입니다. 2025. 1. 11.

파일의 inode에는 파일의 메타데이터가 저장되어 있다. 이 메타데이터는 파일의 구성정보를 담고 있으며, 

파일의 실제 내용은 포함되지 않는다. 파일의 내용은 데이터 블록에 저장되고, inode는 그 파일에 대한 

정보만을 저장한다. 이 inode는 디스크에 메타데이터 영역에서 관리된다. 

 

디렉토리 자체도 파일이기 때문에 inode를 갖는다. 리눅스의 파일시스템에서, 최상위 디렉토리인 / (루트 디렉토리)의 inode 번호는 시스템이 부팅될때 알고있다. 모든 파일 시스템은 / 디렉토리를 기준으로 트리 구조로 되어있기 때문에 루트 디렉토리의 inode 번호를 알면, 그 아래의 다른 디렉토리의 inode 번호를 찾을 수 있다.

 

예를들어 /home/hyukjin 디렉토리의 파일들을 조회하려면, 먼저 /home 디렉토리의 inode 번호를 찾고, 그 안에 있는

/home 디렉토리의 inode 번호를 찾고, 그 안에 있는 hyukjin 디렉토리의 inode 번호를 찾는 방식으로 진행된다.

즉, 상위 디렉토리의 inode 번호를 통해, 하위 디렉토리의 inode 번호를 찾을 수 있다. 

 

디렉토리의 inode에는 파일이름과 해당 파일의 inode 번호를 연결하는 매핑정보가 저장된다. 

즉 디렉토리의 inode는 디렉토리 내에 있는 파일들의 목록을 관리하는 역할을 한다. 

 

cat file.txt 명령어를 실행할 때 리눅스 시스템에서 파일의 내용을 출력하는 과정은 다음과 같다.

 

1. 리눅스 파일시스템은 디렉토리 파일의 inode에서 파일이름과 inode번호의 매핑정보를 검색하여 file.txt가 

어떤 inode 번호에 해당하는지 찾는다.

2. 파일의 inode 번호를 찾으면, 그 inode 번호를 사용하여 inode 테이블에서 해당 파일이 저장된 데이터 블록

위치저옵를 통해 디스크에서 읽어온다.

 

 

 

2025/04/02

하드링크

하드링크는 동일한 inode 번호를 가리키는 다른 파일을 생성하는 것이다. 즉 두개 이상의 파일이 동일한 데이터를 공유하는 방식이다.

 

하드링크(심볼릭 링크)

소프트 링크는 파일 경로만을 저장하는 링크이다. 소프트 링크 자체도 하나의 파일이며, 그 파일의 inode는 소프트 링크 자체의 inode에 대한 메타데이터를 포함한다. 메타데이터에는 원본 파일의 경로 정보가 저장된다.

예를 들어 ln -s 명령어로 생성된 소프트 링크는 원본 파일의 경로를 저장하며, 해당 경로에 접근할 수 있도록 한다. 반면, 하드 링크는 실제 파일의 inode를 참조하기 때문에 원본 파일이 삭제되어도 링크된 파일을 여전히 존재한다.

 

'리눅스' 카테고리의 다른 글

systemctl enable  (0) 2025.04.02
Redis Master/Slave + HAProxy  (0) 2025.03.18
Nginx SSL/TLS ssl_preread & stream  (1) 2025.03.17
Redis Failover  (0) 2025.03.13
Vmware 네트워크  (0) 2025.01.12