# [0단계] 디스크 인식 확인fdisk -l # 전체 디스크·파티션 목록lsblk # 블록 장치를 트리로 보기# [1단계] 파티션 생성 (fdisk 또는 parted)fdisk /dev/sdb# 대화형: n(새 파티션) → p(주 파티션) → 번호 → 크기 → w(저장)# [2단계] 파일시스템 생성(포맷)mkfs -t ext4 /dev/sdb1 # ext4로 포맷mkfs.ext4 /dev/sdb1 # 위와 동일mkfs -t xfs /dev/sdb1 # xfs로 포맷mkfs.xfs /dev/sdb1 # 위와 동일# [3단계] 마운트 지점 만들고 마운트mkdir /datamount /dev/sdb1 /data # 임시 마운트(재부팅 시 사라짐)mount -t ext4 /dev/sdb1 /data # 타입 명시# [4단계] fstab 등록(영구 마운트)# /etc/fstab에 추가:# /dev/sdb1 /data ext4 defaults 0 2mount -a # fstab 전체 다시 마운트(문법 검증 겸용)df -h # 마운트 결과 확인
단계
명령
목적
1 파티션
fdisk /dev/sdb
디스크를 파티션으로 분할
2 포맷
mkfs -t ext4 /dev/sdb1
파일시스템 생성
3 마운트
mount /dev/sdb1 /data
디렉터리에 연결
4 영구화
/etc/fstab 등록 + mount -a
부팅 시 자동 마운트
"디스크를 추가해 마운트" 작업은 항상 파티션 → 포맷(mkfs) → 마운트(mount) → fstab 등록의 순서다. 이 4단계 중 하나라도 빠지면 작업이 완성되지 않는다. 특히 "부팅 후에도 유지"라는 조건이 있으면 반드시 fstab 등록까지 해야 한다.
⚠️ 함정: 포맷은 파티션(/dev/sdb1)에 하는 것이지 디스크 전체(/dev/sdb)에 하는 게 아니다. 또 mount만 하면 재부팅 시 사라진다 — 영구 마운트는 /etc/fstab 등록이 필수다. mount -a는 fstab의 모든 항목을 다시 마운트하므로 fstab 작성 후 검증용으로 쓴다.
마운트 정보 확인은 mount(현재 마운트 목록), df -h(용량·사용률), lsblk(장치 트리), blkid(UUID·타입)로 한다. UUID로 마운트하려면 blkid로 UUID를 알아내 fstab에 UUID=... 형태로 적는다. 장치명(/dev/sdb1)은 디스크 추가 시 바뀔 수 있어 UUID가 더 안전하다.
# [1단계] 물리 볼륨(PV) 생성 — 디스크/파티션을 LVM용으로 초기화pvcreate /dev/sdb /dev/sdcpvscan # PV 목록pvdisplay # PV 상세 정보# [2단계] 볼륨 그룹(VG) 생성 — PV들을 하나로 묶음vgcreate vg_data /dev/sdb /dev/sdcvgscanvgdisplay # VG 상세(여유 공간 확인)# [3단계] 논리 볼륨(LV) 생성 — VG에서 잘라냄lvcreate -L 10G -n lv_app vg_data # 10GB짜리 lv_app 생성lvcreate -l 100%FREE -n lv_all vg_data # 남은 공간 전부lvscanlvdisplay # LV 상세, 경로는 /dev/vg_data/lv_app# [4단계] 파일시스템 생성 + 마운트mkfs -t ext4 /dev/vg_data/lv_appmkdir /appmount /dev/vg_data/lv_app /app# fstab: /dev/vg_data/lv_app /app ext4 defaults 0 2
계층
생성 명령
표시 명령
의미
PV
pvcreate
pvdisplay
디스크를 LVM용으로 초기화
VG
vgcreate
vgdisplay
PV들을 묶은 저장 풀
LV
lvcreate
lvdisplay
VG에서 잘라낸 논리 디스크
LVM 생성 순서는 pvcreate → vgcreate → lvcreate다. 명령 접두어가 pv, vg, lv로 계층을 나타낸다. 만들 때는 위에서 아래로(PV→VG→LV), 지울 때는 반대로(LV→VG→PV) 진행한다.
LVM의 강점은 무중단 확장이다.
# VG에 새 디스크(PV) 추가pvcreate /dev/sddvgextend vg_data /dev/sdd # VG에 PV 추가(용량 확장)# LV 크기 늘리기lvextend -L +5G /dev/vg_data/lv_app # 5GB 추가lvextend -L 20G /dev/vg_data/lv_app # 총 20GB로lvextend -l +100%FREE /dev/vg_data/lv_app # 남은 공간 전부# ★ LV를 늘린 뒤 파일시스템도 확장해야 실제 용량 증가resize2fs /dev/vg_data/lv_app # ext2/3/4용xfs_growfs /app # xfs용 (마운트 지점 지정)# 한 번에: lvextend -r 옵션 (resize 자동)lvextend -L +5G -r /dev/vg_data/lv_app
LV를 확장하는 명령은 lvextend다. 그런데 LV만 늘리면 파일시스템은 그대로이므로, ext 계열은 resize2fs, xfs는 xfs_growfs로 파일시스템까지 늘려야 실제 용량이 반영된다. 이 "두 단계"를 빠뜨리는 게 대표적 실수다. lvextend -r을 쓰면 resize까지 자동으로 처리한다.
⚠️ 함정: VG 확장은 vgextend(PV 추가), LV 확장은 lvextend다. 이름이 비슷해 헷갈린다. vgextend는 풀을 키우고, lvextend는 논리 디스크를 키운다. xfs는 줄일 수 없고(축소 불가) 늘리기만 가능하다는 것도 함정 포인트다.
umask # 현재 umask 출력 (예: 0022)umask 022 # umask 설정umask 027 # 더 엄격하게# 계산: 파일 기본 666, 디렉터리 기본 777에서 umask를 뺌# umask 022 → 파일 644(rw-r--r--), 디렉터리 755(rwxr-xr-x)# umask 077 → 파일 600(rw-------), 디렉터리 700(rwx------)
umask
새 파일 권한
새 디렉터리 권한
022
644
755
027
640
750
077
600
700
002
664
775
umask는 "기본 권한에서 빼는 마스크"다. 파일은 666에서, 디렉터리는 777에서 umask 값을 뺀다. umask 022면 파일은 666-022=644, 디렉터리는 777-022=755가 된다. 파일에 실행 비트(x)가 기본으로 안 붙는 이유는 시작값이 666이기 때문이다.
# SetUID (4000) — 실행 시 파일 소유자 권한으로 동작chmod 4755 /path/program # rwsr-xr-xchmod u+s /path/program # 기호 방식# 예: /usr/bin/passwd (일반 사용자가 shadow를 고칠 수 있게)# SetGID (2000) — 실행 시 그룹 권한 / 디렉터리는 그룹 상속chmod 2755 /path/program # rwxr-sr-xchmod g+s /shared_dir # 디렉터리: 새 파일이 그룹을 상속# 예: 공유 디렉터리에서 팀 그룹 유지# Sticky bit (1000) — 디렉터리: 소유자만 자기 파일 삭제 가능chmod 1777 /tmp # rwxrwxrwtchmod +t /shared_dir # 기호 방식# 예: /tmp (누구나 쓰지만 남의 파일은 못 지움)
특수 권한
8진수
기호
표시 위치
효과
SetUID
4000
u+s
소유자 x자리 s
소유자 권한으로 실행
SetGID
2000
g+s
그룹 x자리 s
그룹 권한 실행/그룹 상속
Sticky
1000
+t
기타 x자리 t
본인 파일만 삭제 가능
ls -l에서는 권한 문자로 구분한다.
-rwsr-xr-x → SetUID (소유자 x 자리에 s)
-rwxr-sr-x → SetGID (그룹 x 자리에 s)
drwxrwxrwt → Sticky bit (기타 x 자리에 t)
특수 권한 8진수는 일반 권한 앞에 한 자리 더 붙인다. chmod 4755의 맨 앞 4가 SetUID, 2가 SetGID, 1이 Sticky bit다. /tmp가 1777(Sticky), /usr/bin/passwd가 4755(SetUID)다.
대문자 S/T가 보이면(예: rwSr--r--) 그건 해당 위치에 실행 권한(x)이 없는 상태에서 특수 비트만 켜진 것으로, 보통 의도치 않은 설정이다. 소문자 s/t는 실행 권한이 함께 있는 정상 상태다.