디스크를 추가하고 마운트하는 작업은 서버 운영의 기본기입니다. 명령어부터 부팅 시 자동 마운트, 그리고 실수했을 때 복구까지 정리합니다.
디스크·파티션 확인
lsblk # 블록 장치 상태 (-f 파일시스템 정보)
blkid # 파티션의 UUID와 파일시스템 타입
df -h # 디스크 사용량과 마운트 상태
du -ah -d 1 [경로] # 경로별 용량 (1뎁스)
파티션 생성과 파일시스템
새 디스크를 붙였다면 파티션을 만들고 파일시스템을 올립니다.
fdisk /dev/sdb
# n(새 파티션) → p(primary) → 크기 지정 → w(저장)
mkfs.ext4 /dev/sdb1 # ext4 파일시스템 생성
⚠️
mkfs는 기존 데이터를 지웁니다. 장치명을 반드시 두 번 확인하세요. 엉뚱한 디스크에 실행하면 복구가 매우 어렵습니다.
마운트
mount /dev/sdb1 /test # 기본 마운트
mount -t ext4 /dev/sdb1 /test # 파일시스템 지정
mount -o ro /dev/sdb1 /test # 읽기 전용
mount -t nfs 172.26.12.250:/k8s /test # NFS 마운트
umount /test # 해제
부팅 시 자동 마운트 (fstab)
/etc/fstab 에 등록하면 재부팅 때 자동으로 마운트됩니다. 형식은 이렇습니다.
[장치명] [마운트포인트] [파일시스템] [옵션] [dump] [fsck]
/dev/sdb1 /docker-data ext4 defaults 1 1
주요 옵션은 defaults(일반적 조합), auto/noauto(자동 마운트 여부), ro/rw, nofail(장치 없어도 부팅 계속) 등이 있고, 여러 개는 쉼표로 붙입니다(defaults,nofail).
장치명 대신 UUID를 쓰자
VMware 등에서 재부팅 시 디스크 순서가 바뀌어 /dev/sda 와 /dev/sdb 가 뒤집히면, fstab의 마운트가 통째로 엉킵니다. 그래서 장치명 대신 UUID로 지정하는 게 안전합니다.
blkid # UUID 확인
# fstab에서 /dev/sdb1 대신
# UUID=xxxx-xxxx /docker-data ext4 defaults,nofail 0 2
이러면 장치명이 바뀌어도 마운트가 유지됩니다.
fstab 잘못 건드려 부팅 실패했을 때
fstab은 잘못 건드리면 부팅이 아예 안 되거나 SSH가 죽을 수 있는, 꽤 위험한 파일입니다. 만약 부팅이 막혔다면:
[FAILED] Failed to mount ...
root 암호를 입력해 recovery mode로 들어간 뒤 /etc/fstab 을 고치고 재부팅합니다. 루트 파티션이 읽기 전용으로 잡혀 수정이 안 되면 재마운트합니다.
mount -o rw,remount /
수정 전에 fstab을 백업해두고, 새 항목엔 nofail 을 붙여두면 이런 사고를 크게 줄일 수 있어요.