리눅스 디스크 관리 — df·du·lsblk로 용량 찾기
"디스크 공간이 부족합니다" 알림이 떴을 때, 뭐가 다 잡아먹었는지 찾아 비우는 법. 그리고 USB·외장하드를 안전하게 다루기.
5편에서 "리눅스엔 C: 드라이브가 없고 모든 게 / 아래 매달린다"고 했죠. USB를 꽂으면 /media/이름/USB 같은 폴더로 나타난다고도 했고요. 이번 편은 그 디스크들을 들여다보고·재고 관리하는 법입니다 — 특히 "공간 부족" 경고가 떴을 때 범인을 찾아 비우는 것.
핵심 도구 셋 — lsblk(디스크·파티션이 어떻게 생겼나), df(파일시스템별로 얼마나 찼나), du(어느 폴더가 얼마나 먹나). 윈도우에서 "내 PC 우클릭 → 속성"으로 보던 걸, 그리고 "디스크 정리"로 비우던 걸 명령어로 합니다. 26편 입문 시리즈 15편, "중급" 묶음. 보는 명령은 다 안전하고, 비우는 건 신중히 짚어드릴게요.
디스크가 어떻게 보이나 — lsblk와 마운트
먼저 "이 컴퓨터에 어떤 저장장치가, 어떻게 쪼개져, 어디에 연결돼 있나"를 봅니다.
읽는 법: 디스크(sda·sdb… — 물리적 저장장치 하나) → 그 안의 파티션(sda1·sda2… — 디스크를 쪼갠 칸) → 각 파티션이 어느 폴더에 마운트됐는지(MOUNTPOINT). "마운트(mount)"는 "이 파티션의 내용을 이 폴더에서 보이게 한다"는 뜻이에요 — 그래서 /에 마운트된 파티션 안에 우리 시스템 전체가 들어 있고, USB는 /media/...에서 보이는 거죠. (요즘 우분투는 NVMe SSD면 nvme0n1·nvme0n1p2 식 이름이 나오기도 — 원리는 같음.) findmnt를 치면 마운트 관계만 트리로 깔끔하게 보입니다.
공간이 얼마나 — df와 du
"용량이 부족하다"는 이 두 명령으로 추적합니다. 둘의 차이가 중요해요.
df = "디스크(파티션) 단위로 얼마나 찼나" — 큰 그림. du = "이 폴더가 얼마나 먹나" — 범인 추적. 순서: 먼저 df -h로 어느 파일시스템이 꽉 찼는지 보고 → 그 안에서 du -sh 경로/* | sort -h로 점점 좁혀 들어가 범인 폴더를 찾는다. sudo apt install ncdu 후 ncdu /를 쓰면 — 화살표로 폴더를 파고들며 시각적으로 볼 수 있어 훨씬 편합니다(나가기 q)."용량 부족" 잡기 — 흔한 범인과 청소
du로 범인을 찾았으면 비웁니다. 입문자에게 흔한 범인 셋 + 안전한 청소법:
- apt 캐시 (
/var/cache/apt): 설치한 패키지 파일이 쌓임.sudo apt clean(전부 비움) 또는sudo apt autoremove --purge(11편 — 안 쓰는 패키지+의존성 제거). 안전. - 저널 로그 (
/var/log/journal): systemd 로그가 쌓임.sudo journalctl --vacuum-time=7d(7일치만 남김) 또는--vacuum-size=200M. 안전 (오래된 로그만 지움). - 내 캐시/휴지통 (
~/.cache,~/.local/share/Trash): 브라우저·앱 캐시, 휴지통. 휴지통 비우기는 파일 매니저에서, 캐시는 앱 닫고~/.cache안의 큰 폴더를 골라 삭제(앱이 다시 만듦 — 보통 안전하지만 앱별로 다름). - 스냅 옛 버전:
sudo snap set system refresh.retain=2후sudo snap list --all로disabled표시된 옛 리비전을sudo snap remove 이름 --revision=N으로. 스냅 앱을 많이 깔았다면 의외로 큼.
du로 큰 폴더를 찾았다고 무작정 rm -rf 하지 마세요(6편의 그 경고). /var·/usr·/boot 같은 시스템 폴더의 내용은 함부로 지우면 시스템이 망가집니다. "지워도 되는 것"은 캐시·로그·휴지통·다운로드 폴더의 안 쓰는 파일 정도로 한정하고, 시스템 영역은 위에 적은 전용 명령(apt clean·journalctl --vacuum-*)으로만 정리하세요. 의심스러우면 그 경로를 검색하고 — "이거 지워도 되나요"는 누군가 이미 물어봤습니다.USB·외장하드 다루기 — 마운트와 안전하게 빼기
요즘 우분투는 USB를 꽂으면 데스크탑에 알아서 자동 마운트됩니다(/media/사용자/...). 명령어로 확인·관리하려면:
umount(또는 파일매니저 ⏏): 그냥 USB를 뽑으면 미처 다 기록 안 된 데이터가 날아갈 수 있습니다(윈도우의 "USB 안전하게 제거"와 같은 이유). 그리고 파티션 만들기·포맷(fdisk·mkfs·디스크 앱의 "포맷")은 대상을 잘못 고르면 그 디스크 내용이 통째로 사라집니다 — 입문 단계에선 손대지 마세요. /etc/fstab(부팅 시 자동 마운트 설정 파일)도 잘못 고치면 부팅이 안 될 수 있으니, 건드릴 땐 8편처럼 백업 먼저(sudo cp /etc/fstab /etc/fstab.bak).lsblk(디스크·파티션·마운트 트리)·findmnt(마운트만). df -h(파일시스템별 사용량 — 큰 그림). du -sh 경로·du -sh 경로/* | sort -h(폴더별 — 범인 추적). ncdu /(시각적 탐색). 청소: sudo apt clean·apt autoremove --purge·journalctl --vacuum-time=7d·~/.cache 정리. USB: lsblk로 확인 → 빼기 전 sudo umount. 포맷·fdisk·/etc/fstab은 신중히(백업 먼저).시리즈 흐름
- 1~13편 입문·기초·vim ✔ 14편 프로세스 관리 ✔
- 15편 — 디스크 관리 (이 글) ✔
- 16편 — 네트워크 명령어 (
ip·ping·curl·ss— "인터넷 안 돼요" 진단) - 17편~ — ufw 방화벽 / SSH 키 / systemd 서비스 / cron / 셸 스크립트 …
오늘 할 일: lsblk·df -h를 한 번씩 쳐서 내 디스크가 어떻게 생겼고 얼마나 찼는지 보고, du -sh ~/* 2>/dev/null | sort -h로 홈에서 뭐가 제일 큰지 확인해보세요. (놀랄걸요 — 대개 .cache나 Downloads입니다.) 그리고 sudo apt clean 한 번 — 안전한 청소입니다. 16편에서 만나요. (디스크 명령 전체는 man df·man du·man lsblk, 또는 우분투 서버 문서.)