물리 디스크 /dev/sda
│
│ ① 나누기 fdisk · gdisk · parted
▼
파티션 /dev/sda1 /dev/sda2 swap
│
│ ② 씌우기 mkfs.ext4 · mkfs.xfs
▼
파일 시스템 ext4 · XFS · FAT32
│
│ ③ 붙이기 mount → 일시적
▼ /etc/fstab → 영구적
디렉터리 트리 / /home /var
│
│ ④ 부팅 BIOS/UEFI → GRUB2 → 커널 → initramfs → systemd
▼
로그인 화면
| 왼쪽 | 오른쪽 | 비고 |
|---|
| BIOS | MBR | 부트로더가 디스크 첫 섹터에 |
| UEFI | GPT + ESP | Secure Boot 지원 |
| ext3 | 저널링 도입 | ext2에는 없다 |
| XFS | RHEL 7+ 기본 | 대용량에 강함 |
| Btrfs | SUSE 기본 | 스냅샷·압축 |
| LILO | 설정 후 재설치 필요 | 옛 부트로더 |
| GRUB2 | /etc/default/grub 편집 | grub.cfg는 자동 생성 |
| 런레벨 3 | multi-user.target | 텍스트 |
| 런레벨 5 | graphical.target | GUI |
| 숫자 | 무엇 |
|---|
| 2TB | MBR이 다룰 수 있는 최대 디스크 크기 |
| 4개 | MBR의 주 파티션 최대 개수 |
| 1개 | 디스크당 확장 파티션 개수 |
| 5번 | 논리 파티션 번호가 시작하는 숫자 |
| 4GB | FAT32의 단일 파일 크기 한계 |
| 1~2배 | 고전적인 swap 크기 기준(메모리 대비) |
| 0 / 6 | 런레벨 종료 / 재시작 |
| 1 | init(systemd)의 PID |
- 2TB와 4개는 MBR이 512바이트 한 섹터라는 데서 나온다 — 부트로더 446 + 파티션 테이블 64(16바이트 × 4칸) + 서명 2. 칸이 넷이라 주 파티션 4개, 위치를 32비트로 적어 2TB다.
"어느 파일에 적는가"는 이번 주에서 가장 자주 섞이는 부분이다. 언제 읽히는가로 가르면 정리된다.
| 파일 | 내용 | 누가 언제 읽나 |
|---|
/etc/fstab | 자동으로 마운트할 목록(필드 6개) | 부팅할 때, 그리고 mount -a |
/etc/mtab · /proc/mounts | 지금 마운트된 목록 | 시스템이 기록한다. 사람이 고치는 파일이 아니다 |
/etc/default/grub | GRUB2 기본 설정 | grub2-mkconfig가 읽어 grub.cfg를 만든다 |
grub.cfg | GRUB2가 실제로 읽는 최종 설정 | 부팅할 때 GRUB2. 직접 고치지 않는다 |
/boot/grub/grub.conf | 옛 GRUB 설정 | 부팅할 때 옛 GRUB. 직접 고친다 |
/etc/lilo.conf | LILO 설정 | lilo 명령을 다시 돌려야 반영된다 |
/etc/inittab | 기본 런레벨(id:3:initdefault:) | init 방식의 부팅 |
/boot/vmlinuz-버전 | 커널 본체 | 부트로더가 메모리에 올린다 |
/boot/initramfs-버전.img | 임시 루트 파일 시스템 | 커널과 함께 올라간다 |
/etc/fstab 한 줄의 여섯 필드는 순서째 외운다.
/dev/sdb1 /data ext4 defaults 0 2
① 장치 ② 마운트 포인트 ③ 종류 ④ 옵션 ⑤ dump ⑥ fsck 순서
| 단계 | 일반 파티션 | swap |
|---|
| 나누기 | fdisk /dev/sdb → n → w | 같다. t로 종류를 82로 |
| 초기화 | mkfs.ext4 /dev/sdb1 | mkswap /dev/sdb2 |
| 사용 시작 | mount /dev/sdb1 /data | swapon /dev/sdb2 |
| 사용 중지 | umount /data | swapoff /dev/sdb2 |
| 확인 | df -h, lsblk | free -h, swapon -s |
fdisk 내부 명령: p 보기 · n 새로 · d 삭제 · t 종류 · w 저장 후 종료 · q 저장 없이 종료.
fdisk -l의 Disklabel type이 dos면 MBR, gpt면 GPT. Id는 83 리눅스, 82 스왑, 5 확장.
- 하드 링크는
ln, 심볼릭 링크는 ln -s. inode가 같은 쪽이 하드 링크다.
| 지금만 | 다음 부팅에도 |
|---|
mount | /etc/fstab |
swapon | /etc/fstab의 swap 줄 |
systemctl isolate …target | systemctl set-default …target |
init 3 | /etc/inittab |
GRUB 메뉴에서 e로 편집 | /etc/default/grub + grub2-mkconfig |
실무에서도 시험 지문에서도, 개념은 증상의 모습으로 나타난다.
| 증상 | 원인 | 확인·해결 |
|---|
| USB에 5GB짜리 파일이 복사되지 않는다 | FAT32의 단일 파일 4GB 한계 | exFAT 등으로 다시 만든다 |
| 3TB 디스크인데 2TB까지만 잡힌다 | MBR 방식으로 나눴다 | GPT로 나눈다(gdisk, parted) |
| 용량은 남았는데 "공간 없음" 오류로 파일이 안 만들어진다 | inode가 바닥났다 | df -i |
| 새 디스크를 마운트했는데 재부팅하니 비어 있다 | /etc/fstab에 적지 않았다 | 한 줄 추가 후 mount -a로 시험 |
umount가 target is busy로 거부된다 | 그 디렉터리를 쓰는 프로세스가 있다 | 그 안에서 cd로 빠져나온다 |
/etc/default/grub을 고쳤는데 그대로다 | grub.cfg를 다시 만들지 않았다 | grub2-mkconfig -o … |
| 서버가 그래픽 화면으로 부팅돼 자원을 먹는다 | 기본 target이 graphical.target | systemctl set-default multi-user.target |
| 디스크를 추가했더니 마운트가 엉뚱한 곳에 붙는다 | sdb·sdc 순서가 밀렸다 | fstab에 장치명 대신 UUID(blkid) |
| 구분 | A | B | 가르는 기준 |
|---|
| 주 vs 확장 파티션 | 데이터를 담는다 | 껍데기, 논리를 담는다 | 직접 저장 가능한가 |
/dev/hda vs /dev/sda | 옛 IDE | SATA·SCSI·USB | 인터페이스 종류 |
| ext2 vs ext3 | 저널링 없음 | 저널링 있음 | 장애 복구 속도 |
| FAT32 vs exFAT | 4GB 제한 | 제한 없음 | 단일 파일 크기 |
mount vs /etc/fstab | 지금만 | 재부팅 후에도 | 영구성 |
mkfs vs fsck | 새로 만든다 | 검사·복구한다 | 만드나 고치나 |
| BIOS vs UEFI | MBR·2TB | GPT·Secure Boot | 펌웨어 세대 |
| init vs systemd | 런레벨 숫자 | target 이름 | 부팅 관리 방식 |
| 슈퍼블록 vs inode | 파일 시스템 전체 정보 | 파일 하나 정보 | 정보의 범위 |
| 하드 링크 vs 심볼릭 링크 | inode가 같다 | inode가 따로다 | 원본을 지워도 남는가 |
mkfs vs mkswap | 파일 시스템 생성 | 스왑 영역 생성 | 파일을 담는가 |
fstab vs mtab | 부팅 때 할 일 | 지금 상태 | 사람이 적는가 |
isolate vs set-default | 지금 즉시 | 다음 부팅부터 | 영구성 |
| DVD 이미지 vs 네트워크 설치 이미지 | 패키지를 담고 있다 | 설치 중 내려받는다 | 인터넷이 필요한가 |
| Live 이미지 vs 최소 설치 | 설치 없이 실행 | 필요한 것만 설치 | 디스크에 쓰는가 |
- "확장 파티션에 파일을 저장한다" → 아니다. 껍데기일 뿐이고 실제 저장은 논리 파티션이 한다.
- "논리 파티션은 3번부터" → 5번부터다. 주 파티션이 몇 개든 상관없다.
- "inode에 파일 이름이 있다" → 없다. 이름은 디렉터리가 관리한다.
- "ext2도 저널링을 지원한다" → 아니다. ext3부터다.
- "
grub.cfg를 직접 고친다" → 자동 생성 파일이라 덮어써진다. /etc/default/grub을 고친다.
- "런레벨 0이 재시작" → 0은 종료, 6이 재시작이다.
- "
mount만 하면 계속 유지된다" → 재부팅하면 사라진다. /etc/fstab에 적어야 한다.
| 명령 | 하는 일 |
|---|
fdisk -l | 디스크와 파티션 목록 |
lsblk | 디스크 구조를 트리로 |
mkfs.ext4 /dev/sdb1 | 파일 시스템 생성 |
mount /dev/sdb1 /data | 마운트 |
umount /data | 마운트 해제 |
df -h / df -i | 용량 / inode 사용량 |
fsck /dev/sdb1 | 파일 시스템 검사 |
systemctl get-default | 현재 기본 target |
grub2-mkconfig -o … | GRUB 설정 재생성 |
다음 주는 드디어 명령을 직접 두드린다 — 셸 첫걸음부터 파일·디렉터리·계정 명령까지 다룬다.
- 파티션 테이블 : 디스크가 어떻게 나뉘어 있는지 기록한 표. MBR과 GPT 두 방식이 있다.
- ESP : EFI 시스템 파티션. UEFI 부팅에서 부트로더를 담는 영역.
- initramfs : 루트 파일 시스템을 마운트하기 위해 먼저 올리는 임시 파일 시스템.
- 저널링 : 변경 내용을 미리 기록해 장애 복구를 빠르게 하는 기법.
- 하드 링크 : 같은 inode를 가리키는 여러 이름.
- target : systemd가 런레벨을 대신해 쓰는 시스템 상태 단위.
📝 연습 문제
선택지를 클릭하면 정답·해설이 펼쳐집니다.
다음 중 리눅스에서 새 디스크를 사용하기까지의 순서로 알맞은 것은?
다음 중 논리 파티션에 부여되는 장치 번호가 시작하는 숫자로 알맞은 것은?
다음 중 파일 시스템의 오류를 검사하고 복구하는 명령으로 알맞은 것은?
다음 중 BIOS·UEFI와 파티션 방식의 연결로 알맞은 것은?
다음 중 GRUB2에서 설정을 변경한 뒤 반드시 수행해야 하는 작업으로 알맞은 것은?
다음 중 시스템을 텍스트 모드의 다중 사용자 환경으로 부팅하도록 지정하는 systemd target으로 알맞은 것은?