리눅스에서 "디스크에 파일을 저장한다"는 말은, 사실 파일시스템(filesystem)이라는 규칙에 따라 바이트들을 블록 단위로 배치하고, 그 위치를 inode라는 메타데이터 구조로 추적한다는 뜻이다. 같은 물리 디스크라도 어떤 파일시스템으로 포맷하느냐에 따라 최대 파일 크기, 복구 능력, 성능 특성이 완전히 달라진다. 그래서 리눅스마스터 1급 실기는 "ext4의 최대 파일시스템 크기는?", "저널링이 보호하는 것은 데이터인가 메타데이터인가?", "inode가 가리키는 것은?" 같은 단답을 끊임없이 던진다.
오늘의 목표는 두 축을 동시에 잡는 것이다. 첫째는 파일시스템 종류별 계보와 특성(ext2 → ext3 → ext4, 그리고 xfs와 btrfs), 둘째는 그 안에서 파일이 실제로 어떻게 표현되는가(inode, 블록, 디렉터리 엔트리, 저널). 이 둘을 연결해서 이해하면, 단순 암기가 아니라 "왜 그렇게 설계됐는가"로 답을 끌어낼 수 있다.
핵심 직관 하나를 먼저 박아두자. 파일의 이름은 파일의 일부가 아니다. 이름은 디렉터리(역시 하나의 파일)가 가진 "이름 → inode 번호" 매핑일 뿐이고, 파일의 실체(크기, 소유자, 권한, 데이터 블록 위치)는 전부 inode에 들어 있다. 이 한 문장이 하드링크, inode 고갈, rm의 동작 원리를 전부 설명한다.