- 파티션은 빈 땅이고, 파일 시스템은 그 위에 세우는 주소 체계다.
mkfs로 만든다. - 리눅스 표준 계보는 ext2 → ext3 → ext4이며, ext3부터 저널링이 들어갔다.
- 저널링은 쓰기 작업을 미리 기록해 두어, 갑자기 전원이 나가도 빠르게 복구하게 해준다.
- inode는 파일의 메타데이터(권한·소유자·크기·위치)를 담는 구조다. 파일 이름은 inode에 없다.
- 마운트 정보를 영구히 기록하는 파일은
/etc/fstab이다.
기준: 리눅스마스터 2급 출제 기준오류 제보
mkfs로 만든다./etc/fstab 이다. 디스크 → 파티션 → 파일 시스템 → 마운트 → 사용
(나누기) (mkfs) (mount)| 이름 | 저널링 | 특징 |
|---|---|---|
| ext2 | ✗ | 리눅스 표준이었던 초기 파일 시스템 |
| ext3 | ✓ | ext2에 저널링을 추가. 호환성이 좋다 |
| ext4 | ✓ | 대용량·성능 개선. 현재 가장 널리 쓰인다 |
| XFS | ✓ | 대용량 파일에 강하다. RHEL 7부터 기본 |
| Btrfs | ✓ | 스냅샷·압축 등 기능이 풍부. SUSE가 기본으로 채택 |
시험 포인트는 "저널링이 언제부터인가" 다. 답은 ext3이다. ext2에는 없다.
ext 세 세대를 숫자로 나란히 놓으면 차이가 분명해진다(용량은 블록 크기 4KB 기준).
| 구분 | ext2 | ext3 | ext4 |
|---|---|---|---|
| 등장 | 1993년 | 2001년 | 2008년 |
| 저널링 | ✗ | ✓ | ✓ |
| 최대 파일 크기 | 2TB | 2TB | 16TB |
| 최대 파일 시스템 크기 | 16TB | 16TB | 1EB |
| 한 줄 요약 | 리눅스 초기 표준 | ext2 + 저널링 | 대용량·성능 개선 |
tune2fs -j /dev/sdb1).| 묶음 | 파일 시스템 | 특징 |
|---|---|---|
| 리눅스 디스크용 | ext2, ext3, ext4, XFS, Btrfs, JFS, ReiserFS | 파티션 위에 만든다 |
| 다른 OS·이동식 매체 | FAT32(vfat), exFAT, NTFS, ISO 9660 | 리눅스에서도 마운트해 읽을 수 있다 |
| 네트워크 | NFS, SMB/CIFS | 다른 컴퓨터의 디렉터리를 내 것처럼 붙인다 |
| 가상(메모리) | proc, sysfs, tmpfs | 디스크에 없다. 커널이 메모리에서 만들어 보여준다 |
/proc이 대표적인 가상 파일 시스템이다. 지난주에 본 /proc/version은 디스크에 저장된 파일이 아니라 읽는 순간 커널이 만들어 주는 내용이다.cat /proc/filesystems로 본다. 앞에 nodev가 붙은 줄은 디스크 장치가 필요 없는 가상 파일 시스템이다.| 이름 | 쓰이는 곳 |
|---|---|
| FAT32 | USB 등 범용. 호환성 최고, 한 파일 4GB 제한 |
| exFAT | FAT32의 4GB 제한을 없앤 것. 대용량 USB |
| NTFS | 윈도우 표준 |
| ISO 9660 | CD/DVD 광학 매체 |
| swap | 스왑 영역 전용 |
| HFS+ / APFS | macOS |
"USB에 4GB 넘는 파일이 안 들어간다"는 흔한 증상의 원인이 FAT32다.
| inode에 있는 것 | inode에 없는 것 |
|---|---|
| 파일 종류, 권한 | 파일 이름 |
| 소유자·그룹 | |
| 크기 | |
| 시간 정보(수정·접근) | |
| 데이터가 있는 블록 위치 |
ls -i 파일 # inode 번호 보기
df -i # inode 사용량 확인ext 계열 파일 시스템은 파티션을 대략 네 구역으로 쓴다.
| 구역 | 담는 것 |
|---|---|
| 부트 블록 | 부팅에 쓰일 수 있는 맨 앞 영역 |
| 슈퍼블록(superblock) | 파일 시스템 전체의 정보 — 전체 크기, 블록 크기, inode 총수와 남은 수, 마운트 횟수 |
| inode 테이블 | 파일 하나하나의 정보 |
| 데이터 블록 | 파일의 실제 내용 |
mkfs 출력의 Superblock backups가 그것이다.tune2fs -l /dev/sdb1로 볼 수 있다."이름은 디렉터리에, 나머지는 inode에"라는 구조를 알면 두 링크의 차이는 외울 필요가 없다.
$ echo hello > a.txt
$ ln a.txt hard.txt # 하드 링크
$ ln -s a.txt soft.txt # 심볼릭 링크 (-s)
$ ls -li
total 8
1311 -rw-r--r-- 2 user user 6 Mar 4 10:12 a.txt
1311 -rw-r--r-- 2 user user 6 Mar 4 10:12 hard.txt
1312 lrwxrwxrwx 1 user user 5 Mar 4 10:12 soft.txt -> a.txta.txt와 hard.txt는 inode 번호(1311)가 같다. 같은 파일에 이름이 둘 붙은 것이다. 권한 뒤의 숫자 2가 그 이름의 개수(링크 수)다.soft.txt는 inode가 따로(1312) 있고, 맨 앞 글자가 l이다. 내용물은 a.txt라는 경로 글자뿐이라 크기가 5바이트다.| 구분 | 하드 링크 | 심볼릭 링크 |
|---|---|---|
| 만드는 법 | ln 원본 링크 | ln -s 원본 링크 |
| inode | 원본과 같다 | 따로 가진다 |
| 원본을 지우면 | 데이터가 남는다(이름이 하나 줄 뿐) | 끊어진 링크가 된다 |
| 다른 파티션(파일 시스템) | 불가 — inode 번호는 파일 시스템 안에서만 유효 | 가능 |
| 디렉터리 | 불가 | 가능 |
| 단계 | 명령 | 설명 |
|---|---|---|
| 만들기 | mkfs.ext4 /dev/sdb1 | 파티션에 파일 시스템 생성(= 포맷) |
| 붙이기 | mount /dev/sdb1 /data | 디렉터리에 연결 |
| 떼기 | umount /data | 연결 해제 |
| 확인 | df -h, mount, lsblk -f | 상태 보기 |
| 검사 | fsck /dev/sdb1 | 파일 시스템 오류 점검·복구 |
| 영구 등록 | /etc/fstab 편집 | 재부팅 후에도 자동 마운트 |
mount 명령만 쓰면 재부팅하면 사라진다. 계속 쓰려면 /etc/fstab에 적어야 한다.fsck는 마운트를 푼 상태에서 돌리는 것이 원칙이다. 마운트된 채 검사하면 손상될 수 있다.같은 일을 하는 표기가 여럿이라 보기에 섞여 나온다. 아래 셋은 모두 ext4를 만드는 같은 명령이다.
mkfs -t ext4 /dev/sdb1 # -t 로 종류 지정
mkfs.ext4 /dev/sdb1 # 종류가 이름에 붙은 형태
mke2fs -t ext4 /dev/sdb1 # ext 계열을 실제로 만드는 프로그램| 명령 | 만드는 것 |
|---|---|
mke2fs -j /dev/sdb1 | ext3 — -j가 저널(journal)을 뜻한다 |
mkfs.xfs /dev/sdb1 | XFS |
mkfs.vfat /dev/sdb1 | FAT |
mkswap /dev/sdb2 | 스왑 영역(파일 시스템이 아니라 명령이 따로다) |
$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 5c1e2f0a-8d3b-4e7a-9b61-2f4d7c9a1e35
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: donemkfs.ext4가 실제로는 mke2fs를 부른다는 것이 보인다.327680 inodes — inode 개수가 이 순간 정해진다. "용량이 남아도 inode가 바닥나면 파일을 못 만든다"는 말의 근거다.Creating journal — ext4라서 저널을 만든다. ext2로 만들면 이 줄이 없다.mkfs는 기존 내용을 모두 지운다. 파티션 번호를 잘못 적으면 되돌릴 수 없다.mount # 인자 없이 — 지금 마운트된 목록
mount -t ext4 /dev/sdb1 /data # -t 로 종류 지정(대개 생략해도 알아서 맞춘다)
mount -o ro /dev/sdb1 /data # -o 로 옵션 지정 — 읽기 전용
mount -o remount,rw /data # 떼지 않고 옵션만 바꿔 다시 마운트
mount -a # /etc/fstab 에 적힌 것을 한꺼번에 마운트
umount /data # 떼기 — 마운트 포인트나 장치명 어느 쪽을 적어도 된다| 옵션 | 뜻 | 반대 |
|---|---|---|
rw | 읽기·쓰기 | ro 읽기 전용 |
exec | 실행 파일 실행 허용 | noexec |
suid | SetUID 비트 허용 | nosuid |
auto | 부팅 때·mount -a 때 자동 마운트 | noauto |
nouser | root만 마운트 가능 | user 일반 사용자도 가능 |
defaults | rw, suid, dev, exec, auto, nouser, async를 한꺼번에 | — |
mkdir /data). 그 디렉터리에 원래 있던 파일은 마운트돼 있는 동안 가려져 보이지 않는다./etc/fstab을 고친 뒤에는 재부팅하기 전에 mount -a로 시험해 본다. 오타가 있는 채로 재부팅하면 부팅이 멈출 수 있다./etc/mtab(또는 /proc/mounts)에 있다. fstab은 "부팅 때 할 일", mtab은 "지금 상태" 다.⚠️ 함정: 떼는 명령은
umount다.unmount가 아니다 — n이 없다. 그리고umount가target is busy라며 거부하면 누군가 그 디렉터리를 쓰고 있다는 뜻인데, 흔한 범인은 그 안에cd로 들어가 있는 자기 자신의 셸이다.
fsck는 종류를 보고 알맞은 프로그램을 부르는 앞단이다. ext 계열은 실제로 e2fsck가 일한다.fsck가 아니라 xfs_repair 로 검사·복구한다.fsck -y를 쓴다.lost+found 디렉터리는 fsck가 주인을 찾지 못한 파일 조각을 모아 두는 곳이다. 지우지 않는다./dev/sdb1 /data ext4 defaults 0 2
│ │ │ │ │ │
│ │ │ │ │ └── fsck 검사 순서 (0=안 함, 1=루트, 2=나머지)
│ │ │ │ └────── dump 백업 여부 (보통 0)
│ │ │ └───────────── 마운트 옵션
│ │ └────────────────────── 파일 시스템 종류
│ └────────────────────────────── 마운트 포인트
└──────────────────────────────────────── 장치/)만 1, 나머지 검사할 파일 시스템은 2, 검사하지 않을 것(swap 등)은 0이다.첫 필드에는 장치명 대신 UUID를 적는 경우가 많다.
$ sudo blkid /dev/sdb1
/dev/sdb1: UUID="5c1e2f0a-8d3b-4e7a-9b61-2f4d7c9a1e35" BLOCK_SIZE="4096" TYPE="ext4"
# /etc/fstab
UUID=5c1e2f0a-8d3b-4e7a-9b61-2f4d7c9a1e35 /data ext4 defaults 0 2sd 뒤의 글자는 커널이 디스크를 발견한 순서라, 디스크를 더 달거나 USB를 꽂은 채 부팅하면 sdb가 sdc로 밀릴 수 있다.blkid나 lsblk -f로 확인한다.mkfs로 파일 시스템을 만들고 mount까지 해야 한다.df -i로 확인한다.fsck는 마운트한 채 돌려도 된다" → 떼고 돌리는 것이 원칙이다./etc/mtab에 적으면 부팅 때 자동 마운트된다" → 그 역할은 /etc/fstab이다. mtab은 현재 상태를 보여줄 뿐이다.내일은 전원을 켠 순간부터 로그인 화면이 뜨기까지 — 부팅 과정과 부트 매니저를 따라간다.
/etc/fstab : 부팅 시 자동으로 마운트할 항목을 기록하는 설정 파일.선택지를 클릭하면 정답·해설이 펼쳐집니다.
문제 1
다음 중 저널링 기능이 처음 도입된 리눅스 파일 시스템으로 알맞은 것은?
문제 2
다음 중 inode에 저장되지 않는 정보로 알맞은 것은?
문제 3
다음 중 부팅할 때 자동으로 마운트할 파일 시스템을 기록하는 설정 파일로 알맞은 것은?
문제 4
다음 중 한 개의 파일 크기가 4GB를 넘을 수 없어 대용량 파일 저장에 제약이 있는 파일 시스템으로 알맞은 것은?
문제 5
다음 중 파티션에 파일 시스템을 생성하는 명령으로 알맞은 것은?