- 1 1. 사전 지식: Linux / Ubuntu의 저장 구조와 마운트
- 2 2. 기본 명령줄 방법으로 디스크 공간 확인
- 3 3. GUI 도구를 사용한 디스크 공간 확인 (Ubuntu 데스크톱)
- 4 4. 디스크 공간이 부족할 때 조사 및 대처 방안
- 5 5. 고급 팁 (유용한 기법 및 주의사항)
- 5.1 5.1 정기 디스크 점검 자동화
- 5.2 5.2 One-Liners to Find Large Files
- 5.3 5.3 Creating Aliases for Frequently Used Commands
- 5.4 5.4 Continuously Monitoring Disk Usage Changes
- 5.5 5.5 Be Aware of Permission Barriers
- 5.6 5.6 Considerations for SSD and HDD Environments
- 5.7 5.7 Turning Disk Management into a Preventive System
- 5.8 Summary
- 6 6. FAQ (자주 묻는 질문)
- 6.1 Q1. Ubuntu에서 현재 디스크 공간을 확인하는 가장 쉬운 방법은 무엇인가요?
- 6.2 Q2. 디렉터리별 디스크 사용량을 어떻게 확인할 수 있나요?
- 6.3 Q3. df와 du의 차이점은 무엇인가요?
- 6.4 Q4. GUI 도구를 사용해 디스크 공간을 확인하려면 어떻게 해야 하나요?
- 6.5 Q5. “디스크가 가득 찼다”는 경고가 뜨면 먼저 무엇을 삭제해야 하나요?
- 6.6 Q6. Snap 애플리케이션이 많은 디스크 공간을 차지하나요?
- 6.7 Q7. /var 또는 /home이 너무 큰 경우는 어떻게 해야 하나요?
- 6.8 Q8. du 명령이 너무 오래 걸립니다. 어떻게 속도를 높일 수 있나요?
- 6.9 Q9. 디스크 공간 문제를 재발하지 않게 하려면 어떻게 해야 하나요?
- 6.10 Q10. 디스크 공간을 확장할 수 있는 옵션은 무엇인가요?
- 6.11 Q11. 루트 권한 없이 디스크 사용량을 확인할 수 있나요?
- 6.12 Q12. GUI 없이 서버에서 디스크 공간을 확인하려면 어떻게 해야 하나요?
- 6.13 Q13. 디스크 사용량을 확인하는 데 위험 요소가 있나요?
- 6.14 Q14. 디스크 공간을 절약할 수 있는 요령이 있나요?
- 6.15 Q15. 추천하는 디스크 모니터링 도구는 무엇인가요?
- 6.16 최종 요약
1. 사전 지식: Linux / Ubuntu의 저장 구조와 마운트
Ubuntu(및 대부분의 Linux 기반 운영체제)에서 디스크 용량을 확인할 때, 올바르게 이해해야 할 기본적인 구조 개념이 여러 가지 있습니다. 이 섹션에서는 혼동을 일으키기 쉬운 다음 개념들을 정리합니다:
- 장치와 파티션의 의미
- 마운트와 마운트 포인트
- LVM(Logical Volume Management)의 기본
- Ubuntu의 전형적인 저장 구성
각 항목을 단계별로 설명하겠습니다.
1.1 장치와 파티션의 기본
장치(물리 및 논리 디스크)
Linux에서는 각 저장 장치를 장치 파일로 취급합니다. 예를 들어 HDD, SSD, USB 드라이브는 /dev/sda, /dev/sdb, /dev/nvme0n1과 같은 이름으로 표시됩니다.
알파벳 접미사(a, b, c 등)는 시스템이 장치를 감지한 순서를 나타냅니다.
파티션
하나의 물리 장치를 그대로 사용할 수도 있지만, 대부분의 경우 여러 개의 논리 영역인 파티션으로 나눕니다. 파티션을 사용하면 운영체제, 사용자 데이터, 로그 등을 별도로 관리할 수 있습니다.
예를 들어 /dev/sda1과 /dev/sda2는 각각 파티션 1, 파티션 2를 의미합니다. 각 파티션에 파일 시스템이 생성되고 실제 데이터가 그곳에 저장됩니다.
(Linux 파티션에 대한 예시 설명: Engineer’s Entrance)
파티션은 MBR(구형) 또는 GPT(신형)와 같은 포맷을 사용하며, 각각 제한 사항과 장점이 다릅니다.
1.2 마운트와 마운트 포인트
마운트
파일 시스템을 사용하려면 마운트라는 과정이 필요합니다. 이 작업은 파티션(또는 논리 볼륨)을 특정 디렉터리(마운트 포인트)와 연결합니다.
마운트하지 않으면 파티션에 있는 데이터를 접근할 수 없습니다.
예를 들어 /dev/sda1에 ext4 파일 시스템이 존재하더라도 mount /dev/sda1 /mnt/data와 같은 명령을 실행하지 않으면 /mnt/data 아래에서 내용을 확인할 수 없습니다.
마운트 포인트
파일 시스템이 연결되는 디렉터리를 마운트 포인트라고 합니다. 일반적인 예시는 다음과 같습니다:
/(슬래시) : 루트 디렉터리(시스템 전체의 시작점)/home: 사용자 홈 디렉터리 위치/var: 로그, 캐시, 가변 데이터 위치/boot: 부팅 관련 파일 위치
Ubuntu 및 많은 Linux 배포판에서는 /etc/fstab 파일에 부팅 시 어떤 장치 또는 UUID가 어느 위치에 마운트될지 정의합니다.
1.3 LVM(Logical Volume Management) 개요
전통적인 파티션만으로는 나중에 디스크 레이아웃을 유연하게 변경하기 어려울 수 있습니다. 이를 해결하기 위해 Linux는 LVM(Logical Volume Manager)을 제공합니다.
LVM의 기본 구성 요소
- Physical Volume (PV) – 물리 디스크 또는 파티션
- Volume Group (VG) – 여러 PV를 하나의 큰 가상 저장 풀로 결합하는 계층
- Logical Volume (LV) – VG에서 생성된 논리적으로 할당된 영역. 파일 시스템은 LV 위에 생성됩니다.
이와 같은 계층 구조 덕분에 논리 볼륨을 나중에 확장·축소하거나, 추가 물리 디스크를 손쉽게 통합할 수 있습니다.
LVM의 장점과 고려 사항
장점
- 저장 용량을 유연하게 조절 가능
- 여러 디스크를 하나로 결합 가능
- 백업용 스냅샷 생성이 쉬움
고려 사항
- 구성 및 운영이 다소 복잡함
- 잘못 설정하면 데이터 손실 위험
- 비 LVM 환경과는 다른 확장 절차 필요
Ubuntu 설치 프로그램에서는 LVM 사용 옵션을 제공하지만, 필수는 아니며 사용 목적과 관리 정책에 따라 선택하면 됩니다.
1.4 Ubuntu의 전형적인 저장 구성
단일 파티션 구성(간단한 설정)
가장 단순한 구성에서는 모든 것이 루트 디렉터리(/) 아래에 배치됩니다. 초기 관리가 쉽지만, 이후에 용량을 확장하거나 데이터를 분리하기가 어려울 수 있습니다.
일반적인 다중 파티션 구성
일반적으로 사용되는 레이아웃은 스토리지를 여러 파티션으로 나눕니다. 예를 들어:
/(루트): 핵심 시스템 파일/home: 사용자 데이터/var: 로그 및 가변 데이터/boot: 부팅 파일- 스왑 영역 (파티션 또는 스왑 파일)
이 구조는 로그나 캐시가 전체 시스템을 압도하는 것을 방지하는 데 도움이 됩니다.
LVM 기반 논리 볼륨 구성
더 고급 구성은 LVM을 다음과 같이 사용합니다:
- 물리적 디스크 → PV들
- 여러 PV를 VG로 결합
/,/home,/var등에 대한 논리 볼륨 생성- 미래 확장 또는 새로운 LV 추가 가능
이 접근 방식은 디스크 추가나 스토리지 확장 시 높은 유연성을 제공합니다.
2. 기본 명령줄 방법으로 디스크 공간 확인
Ubuntu에서 명령줄 도구를 사용하는 것은 디스크 사용량을 확인하는 가장 신뢰할 수 있고 유연한 방법입니다.
명령은 GUI가 없는 서버 환경에서도 정확한 분석을 허용합니다.
이 섹션은 기본 df 및 du 명령과 지원 도구에 중점을 둡니다.
2.1 df 명령으로 파일 시스템 사용량 확인
df 개요
df (disk free)는 파일 시스템에 대한 전체 디스크 사용량 및 사용 가능한 공간을 표시합니다.
Ubuntu를 포함한 Linux 시스템에서 디스크 용량을 확인하는 가장 일반적인 방법입니다.
기본 사용법
df -h
이 명령은 인간이 읽을 수 있는 단위(K, M, G)를 사용하여 모든 파일 시스템을 나열합니다.
주요 열은 다음과 같은 의미입니다:
주요 열 설명
| Column | Description |
|---|---|
| Filesystem | Target device name (e.g., /dev/sda1) |
| Size | Total filesystem size |
| Used | Used disk space |
| Avail | Remaining available space |
| Use% | Usage percentage |
| Mounted on | Mount point (e.g., /, /home) |
자주 사용되는 옵션
| Option | Description |
|---|---|
-h | Display sizes in MB / GB (essential for readability) |
-T | Also display filesystem type (ext4, xfs, etc.) |
--total | Add a total summary line at the end |
df -h /home | Display only the filesystem containing a specific directory |
실행 예시
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 100G 55G 40G 59% /
/dev/sda1 512M 120M 392M 24% /boot
tmpfs 16G 32M 16G 1% /run
이 출력은 디스크 공간이 어떻게 할당되고 사용되는지 빠르게 이해할 수 있게 합니다.
중요 참고 사항
- 마운트되지 않은 파티션은
df에 표시되지 않습니다. - 스냅 패키지(예:
/var/lib/snapd/snaps)는 상당한 디스크 공간을 소비할 수 있으며 별도로 확인해야 합니다. - 일부 마운트 포인트는 루트 권한으로 실행할 때만 보입니다.
2.2 du 명령으로 디렉토리 사용량 확인
du 개요
du (disk usage)는 디렉토리와 파일에 의한 디스크 공간 사용량을 측정합니다.
df가 고급 개요를 제공하는 반면, du는 디스크 공간이 실제로 어디에서 소비되는지 식별하는 데 이상적입니다.
기본 사용법
du -sh /home
이 명령은 /home 디렉토리의 총 디스크 사용량을 인간이 읽을 수 있는 형식으로 표시합니다.
자주 사용되는 옵션
| Option | Description |
|---|---|
-s | Show only the summary total |
-h | Automatically convert units for readability |
--max-depth=1 | List usage of directories directly under the specified path |
-c | Display a grand total at the end |
--exclude=PATTERN | Exclude specific directories (e.g., caches) |
예시: 디렉토리 크기 비교
sudo du -h --max-depth=1 /var
예시 출력:
1.2G /var/log
2.5G /var/lib
800M /var/cache
4.5G /var
이것은 가장 많은 공간을 소비하는 디렉토리를 쉽게 식별할 수 있게 합니다.
고급 사용법: 크기로 정렬
du와 sort를 결합하여 큰 디렉토리를 빠르게 식별할 수 있습니다.
sudo du -hsx /* | sort -rh | head -10
이 명령은 루트 디렉토리 바로 아래의 디렉토리에 대한 디스크 사용량을 계산하고 가장 큰 상위 10개를 표시합니다.
중요 참고 사항
- 깊은 디렉토리 계층에 대한 실행은 시간이 걸릴 수 있습니다.
- 루트 권한 없이 일부 디렉토리의 디스크 사용량이 올바르게 표시되지 않을 수 있습니다.
- 빠른 SSD에서도 수십 기가바이트를 스캔하는 데 몇 분이 걸릴 수 있습니다.
2.3 다른 유용한 지원 명령 및 도구
lsblk: 블록 장치 구조 보기
lsblk
lsblk는 디스크 장치와 그 파티션 레이아웃을 트리 형식으로 표시합니다.
장치, 파티션, 마운트 포인트가 서로 어떻게 관련되는지 시각적으로 이해하는 데 유용합니다.
예시:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 512M 0 part /boot
└─sda2 8:2 0 99.5G 0 part /
ncdu: 대화형 디스크 사용량 분석기
du의 더 직관적인 대안을 원한다면, ncdu (NCurses Disk Usage)가 강력히 추천됩니다.
설치:
sudo apt install ncdu
실행:
sudo ncdu /
화살표 키를 사용하여 디렉토리를 탐색하고 디스크 사용량 핫스팟을 상호작용적으로 식별할 수 있습니다.
이 도구는 서버 환경에서 시스템 관리자들 사이에서 특히 인기 있습니다.
find 명령어와 결합하기
큰 개별 파일을 찾기 위해 find를 사용하세요:
sudo find / -type f -size +1G
이 명령어는 1GB보다 큰 모든 파일을 검색하며, 큰 로그나 디스크 이미지를 식별하는 데 유용합니다.
2.4 적절한 방법 선택 (비교 요약)
| Purpose | Command Example | Characteristics |
|---|---|---|
| Check overall free disk space | df -h | Filesystem-level overview |
| Check a specific directory | du -sh /path | Detailed size measurement |
| Find disk usage hotspots | du -hsx /* | sort -rh | Quick identification of large directories |
| View device and partition layout | lsblk | Visual representation of structure |
| Find large files | find / -type f -size +1G | Filter by file size |
3. GUI 도구를 사용한 디스크 공간 확인 (Ubuntu 데스크톱)
Ubuntu는 터미널을 사용하지 않고 디스크 공간을 확인할 수 있는 편리한 그래픽 도구 (GUI)를 제공합니다.
이 섹션에서는 다음 두 가지 주요 방법을 소개합니다:
- 기본 파일 관리자 (Nautilus) 사용
- 디스크 사용량 분석기 (Baobab) 사용
3.1 파일 관리자 (Nautilus)를 사용한 사용 가능 공간 확인
Ubuntu의 표준 방법
Ubuntu 데스크톱에서 디스크 공간을 확인하는 가장 쉬운 방법은 파일 관리자 (Nautilus)를 여는 것입니다.
- 왼쪽 도크 (애플리케이션 런처)에서 “Files” 아이콘 클릭
- 오른쪽 상단 또는 왼쪽 하단에 표시된 상태 표시줄 확인
- 남은 디스크 공간이 “XX GB free” 또는 “YY GB 중 XX GB 사용됨”으로 표시됩니다.
이렇게 하면 시스템 드라이브의 사용 가능 공간을 빠르게 확인할 수 있습니다.
속성을 통한 세부 정보 보기
폴더나 드라이브 아이콘을 오른쪽 클릭하고 [Properties]을 선택하여 해당 폴더나 볼륨의 상세 사용 정보를 확인하세요.
이것은 /home이나 /Downloads와 같은 디렉토리의 크기를 시각적으로 확인하는 데 특히 유용합니다.
장점과 제한 사항
| Advantages | Limitations |
|---|---|
| Simple, click-based operation | Difficult to analyze system-wide or hidden areas |
| Beginner-friendly | Hard to detect growth in /var/log or system directories |
빠른 개요를 위해 유용하지만, 더 깊은 분석은 다음에 설명된 Baobab 도구로 더 잘 처리됩니다.
3.2 디스크 사용량 분석기 (Baobab)
Baobab이란?
Baobab (공식적으로 Disk Usage Analyzer라고 함)은 Ubuntu에 포함된 그래픽 도구로, 파이 차트와 트리 맵을 사용하여 디스크 사용량을 시각적으로 표시합니다.
기본적으로 설치되어 있는 경우가 많지만, 설치되지 않았다면 다음 명령어로 설치할 수 있습니다:
sudo apt install baobab
Baobab 실행 방법
- Activities (왼쪽 상단 검색)에서 “Disk Usage” 검색
- “Disk Usage Analyzer (Baobab)” 클릭하여 실행
- 시작 후 “Scan Folder” 또는 “Scan Filesystem” 선택
스캔이 완료되면 디스크 사용량이 파이 차트나 트리 뷰를 사용하여 시각적으로 표시됩니다.
예시 표시 (개념적)
- 외부 링은 더 깊은 디렉토리 수준을 나타냄
- 영역 크기는 디스크 사용량에 해당
이렇게 하면 가장 많은 공간을 소비하는 폴더를 즉시 식별하기 쉽습니다.
주요 기능
| Feature | Description |
|---|---|
| Target Selection | Scan specific directories such as /home |
| Tree View | View folder hierarchy and sizes in a list format |
| Identifying Unnecessary Files | Quickly spot large directories at a glance |
| Right-click → Open | Open the corresponding directory directly in the file manager |
장점과 주의사항
장점
- 초보자에게 적합한 직관적인 그래픽 시각화
- 정리 및 파일 구성에 대한 더 쉬운 의사 결정
- 루트 권한으로 실행하면 시스템 디렉토리를 분석할 수 있음
주의사항
- 전체 파일 시스템 스캔은 시간이 걸릴 수 있음
- 권한 제한으로 인해 일부 폴더의 정확한 측정이 불가능할 수 있음
- 대형 디스크는 분석 중 상당한 메모리를 요구할 수 있음
3.3 GNOME Disks를 사용한 디스크 정보 확인
Ubuntu에는 GNOME Disks (Disk Utility)라는 표준 애플리케이션이 포함되어 있습니다.
이 도구는 사용 가능 공간뿐만 아니라 디스크 구조 자체를 검사하는 데 사용됩니다.
다음 정보를 확인할 수 있습니다:
- 장치 이름 (예: /dev/sda)
- 파일 시스템 유형 (ext4, NTFS 등)
- 마운트 포인트
- 사용량 및 사용 가능 공간 그래프
실행 방법:
- Activities에서 “Disks” 검색
- GNOME Disks 열기
- 왼쪽 목록에서 디스크 선택
디스크 사용량은 시각적 게이지로 표시되며, df 명령어와 동등한 정보를 그래픽 형태로 제공합니다.
.
3.4 GUI와 명령줄 도구 중 선택하기
Ubuntu Desktop에서는 기본적인 디스크 공간 관리를 위해 GUI 도구만으로 충분합니다.
하지만 정밀한 문제 해결 및 서버 관리를 위해서는 df와 du 같은 명령줄 도구가 필수적입니다.
| Scenario | Recommended Tool |
|---|---|
| Quickly check available space | File Manager (Nautilus) |
| Analyze which folders are large | Baobab (Disk Usage Analyzer) |
| Inspect disk and partition layout | GNOME Disks |
| Server or remote environments | df, du, lsblk, ncdu |
3.5 GUI가 없는 환경 (서버 사용자용)
Ubuntu Server 또는 기타 GUI가 없는 환경을 사용하고 있다면,
Baobab이나 파일 관리자는 사용할 수 없습니다.
이러한 경우, 앞서 소개한 df, du, ncdu 명령을 사용하면 터미널만으로도 충분히 상세한 디스크 분석이 가능합니다.
요약
GUI 도구를 사용하면 디스크 사용량 확인 및 정리 분석을 클릭만으로 완료할 수 있습니다.
특히 Baobab은 초보자와 고급 사용자 모두에게 적합한 널리 쓰이는 표준 도구입니다.
이 섹션에서 소개한 방법들을 결합하면 일상적인 저장소 모니터링이 크게 쉬워집니다.
4. 디스크 공간이 부족할 때 조사 및 대처 방안
Ubuntu를 장기간 사용하면 누적된 업데이트와 데이터 때문에 디스크 공간이 점차 부족해질 수 있습니다.
시스템을 저용량 상태로 두면 업데이트 실패, 로그 기록 문제, 전반적인 불안정성을 초래할 수 있습니다.
이 섹션에서는 디스크 공간 문제를 식별하고 효과적인 해결책을 적용하는 단계별 절차를 설명합니다.
4.1 디스크 공간 고갈 징후 파악
먼저 디스크 공간이 부족함을 나타내는 증상을 확인합니다.
다음 중 하나라도 나타난다면 저장소 사용량을 조사할 시점입니다:
apt upgrade실행 시 “insufficient disk space” 오류 발생- “Low disk space”와 같은 GUI 경고 표시
- 일부 애플리케이션이 설정 저장이나 로그 기록에 실패
/var또는/tmp같은 디렉터리가 가득 차서 시스템이 느려짐
이러한 상황에서는 단순히 공간을 확보하는 것만으로는 부족합니다—어디서 디스크 공간이 소비되고 있는지를 찾아야 합니다.

4.2 단계 1: 전체 디스크 사용량 확인 (df)
df -h 명령을 사용해 전체 디스크 상황을 먼저 확인합니다.
df -h
예시 출력:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 48G 1.2G 98% /
/dev/sda1 512M 120M 392M 24% /boot
Use% 값이 90%를 초과하는 파일시스템은 즉시 조치가 필요합니다.
특히 /(루트), /var, /home 등 중요한 디렉터리가 거의 가득 차 있다면 다음 단계로 진행합니다.
4.3 단계 2: 어느 디렉터리가 공간을 차지하고 있는지 확인 (du)
문제가 되는 파티션을 파악했으면, du 명령으로 내용물을 분석합니다.
예시: 상위 10개 대용량 디렉터리 표시
sudo du -hsx /* | sort -rh | head -10
예시 출력:
15G /var
10G /home
5.2G /usr
3.1G /snap
/var가 큰 경우 로그나 캐시가 원인인 경우가 많고, /home이 큰 경우 사용자 데이터가 주된 원인입니다.
/var 내부를 더 깊게 파고들기
sudo du -hsx /var/* | sort -rh | head -10
이와 같이 디렉터리 계층을 순차적으로 탐색하면 디스크 공간을 차지하는 정확한 디렉터리를 pinpoint 할 수 있습니다.
4.4 단계 3: 불필요한 파일 및 캐시 제거
소스가 확인되면 안전하게 삭제해도 되는 불필요한 파일부터 정리합니다.
(1) APT 캐시 제거
Ubuntu는 업데이트 중에 /var/cache/apt/archives에 임시 패키지 파일을 저장합니다.
이를 삭제하면 몇 기가바이트에 달하는 디스크 공간을 회복할 수 있습니다.
sudo apt clean
sudo apt autoremove
apt clean: 모든 캐시된 패키지 파일 삭제apt autoremove: 사용되지 않는 의존성 패키지 삭제
(2) 오래된 로그 파일 삭제
/var/log는 디스크 공간을 많이 차지하는 가장 흔한 원인 중 하나입니다.
sudo journalctl --vacuum-time=7d
이 명령은 7일 이상 된 시스템 로그를 삭제합니다.
불필요한 압축 로그 파일(.gz)도 수동으로 삭제할 수 있습니다.
sudo rm -f /var/log/*.gz
(3) 오래된 Snap 패키지 리비전 제거
.Ubuntu에서는 Snap 애플리케이션이 기본적으로 여러 버전을 보관합니다.
사용되지 않는 이전 리비전을 제거하려면 다음 명령을 사용합니다.
sudo snap list --all | grep disabled | awk '{print $1, $3}' | \
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
또는 전용 “Snap Cleaner” 유틸리티를 사용할 수 있습니다.
(4) 썸네일 캐시 제거
이미지나 비디오를 자주 다루는 경우 ~/.cache/thumbnails에 대량의 캐시가 쌓일 수 있습니다.
rm -rf ~/.cache/thumbnails/*
(5) 휴지통 비우기
GUI를 통해 삭제한 파일은 종종 ~/.local/share/Trash/files에 남아 있습니다.
rm -rf ~/.local/share/Trash/*
4.5 단계 4: 애플리케이션 및 로그 관련 디스크 증가 해결
(1) Docker 환경
Docker를 사용 중이라면 사용되지 않는 이미지와 컨테이너가 상당한 디스크 공간을 차지할 수 있습니다.
docker system df
docker system prune -a
docker system df: Docker 관련 디스크 사용량 확인docker system prune -a: 사용되지 않는 이미지와 컨테이너 제거
(2) Flatpak 또는 Snap 과다 사용
많은 GUI 애플리케이션을 설치한 데스크톱 환경에서는 오래된 버전의 잔여 데이터가 쌓이기 쉽습니다.
flatpak uninstall --unused와 같은 명령을 사용해 정리합니다.
(3) 로그 회전 설정 검토
/etc/logrotate.conf와 /etc/logrotate.d/ 아래 파일들을 확인하여 로그 보존 기간 및 크기 제한이 적절히 설정되어 있는지 점검합니다.
이를 통해 향후 디스크 공간 부족을 예방할 수 있습니다.
4.6 단계 5: 리사이징 또는 디스크 확장으로 근본 원인 해결
정리만으로 충분하지 않을 경우 다음과 같은 구조적 변경을 고려합니다.
(1) LVM을 이용한 논리 볼륨 확장
LVM(Logical Volume Manager)을 사용하는 환경에서는 논리 볼륨을 손쉽게 확장할 수 있습니다.
sudo lvextend -L +20G /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
이렇게 하면 루트 파일시스템의 사용 가능한 공간이 늘어납니다.
(2) 새 디스크 추가 및 마운트
새 저장 장치를 /mnt/data와 같은 디렉터리에 마운트하고,
/var/lib/docker 또는 /home과 같은 대용량 디렉터리를 새 디스크로 옮길 수 있습니다.
(3) 클라우드 스토리지 활용
또 다른 방법은 로그나 백업을 Google Drive, Dropbox, Nextcloud와 같은 클라우드 스토리지 서비스로 이동하는 것입니다.
4.7 정기 모니터링으로 재발 방지
디스크 공간 부족은 정기적인 모니터링으로 예방할 수 있습니다.
다음과 같은 운영 방안이 효과적입니다:
df -h와du -sh /var를 정기적으로 확인- 대용량 디렉터리를 자동으로 탐지하는 스크립트 작성
- 디스크 사용량이 정의된 임계값을 초과하면 이메일 알림 전송(
cron과mailutils활용)
간단한 예시:
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Disk usage on / has exceeded ${THRESHOLD}%!" | mail -s "Disk Alert" admin@example.com
fi
4.8 요약: 디스크 공간 대책 우선순위
| Priority | Countermeasure | Notes |
|---|---|---|
| ★★★★★ | Remove APT cache (sudo apt clean) | Immediate effect |
| ★★★★☆ | Log cleanup (sudo journalctl --vacuum-time=7d) | Safe and reliable |
| ★★★★☆ | Remove unused Snap / Flatpak versions | Effective on desktop systems |
| ★★★☆☆ | Remove unused Docker data | Effective for server use |
| ★★☆☆☆ | Disk expansion or additional mounts | Effective as a fundamental solution |
| ★☆☆☆☆ | Introduce monitoring scripts | Most effective for long-term operations |
Ubuntu에서 디스크 공간이 부족해지면
“과다 사용 파악 → 불필요한 데이터 안전하게 삭제 → 시스템 구조 검토”
라는 3단계 접근법을 따르면 대부분의 문제가 해결됩니다.
5. 고급 팁 (유용한 기법 및 주의사항)
기본적인 디스크 공간 점검 및 정리 방법을 숙달한 뒤에도 장기 운영 중에 디스크 사용량이 서서히 증가할 수 있습니다.
이 섹션에서는 Ubuntu 시스템을 원활하게 유지하기 위한 고급 기법을 소개합니다.
5.1 정기 디스크 점검 자동화
df와 du를 수동으로 실행하는 것은 번거로울 수 있지만 자동화 스크립트를 사용하면 훨씬 수월합니다.
간단한 모니터링 스크립트를 cron에 등록하면 디스크 사용량이 일정 수준을 초과했을 때 알림을 받을 수 있습니다.
예시: 남은 공간이 10% 이하로 떨어질 때 이메일 알림
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Warning: Root disk usage has reached ${USAGE}%." | \
mail -s "Ubuntu Disk Warning" user@example.com
fi
Save this as /usr/local/bin/check_disk.sh and grant execute permission with chmod +x.
Then register it using crontab -e:
0 8 * * * /usr/local/bin/check_disk.sh
→ This runs the check automatically every morning at 8:00.
Helpful Enhancements
- Notifications can be sent not only by email but also via Slack webhooks or LINE Notify
- The script can be extended to monitor multiple mount points simultaneously
5.2 One-Liners to Find Large Files
Disk space shortages are often caused by a single large file.
The following one-liner lists all files larger than 1GB:
sudo find / -type f -size +1G -exec ls -lh {} \; | awk '{print $9 ": " $5}'
Example output:
/var/log/syslog.1: 1.5G
/var/lib/docker/overlay2/.../diff/usr/lib/libchrome.so: 2.3G
/home/user/Downloads/video.mp4: 4.1G
This allows you to quickly identify files that should be deleted or moved.
Variation: Search Only a Specific Directory
sudo find /var -type f -size +500M
This is useful when investigating large files under /var.
5.3 Creating Aliases for Frequently Used Commands
Typing long commands repeatedly is inefficient, so setting up aliases improves productivity.
Example: Add to ~/.bashrc
alias dfh='df -h --total'
alias duh='sudo du -hsx /* | sort -rh | head -10'
alias logs='sudo du -hs /var/log/* | sort -rh | head -10'
Apply the changes:
source ~/.bashrc
After this, you can quickly run:
dfh: Check total disk usageduh: Show top 10 largest directorieslogs: Analyze log directory usage
5.4 Continuously Monitoring Disk Usage Changes
During long-term Ubuntu operation, disk usage can grow unnoticed.
Keeping a history of disk usage is an effective countermeasure.
Example: Log Disk Usage to a File
#!/bin/bash
df -h / | awk 'NR==2 {print strftime("%Y-%m-%d %H:%M:%S"), $3, $4, $5}' >> /var/log/disk_usage.log
Running this daily via cron allows you to track growth trends over time.
More Advanced Approaches
- Visualize usage with
collectdornetdata - Use Prometheus + Grafana for enterprise monitoring
- Integrate with AWS CloudWatch or GCP Ops Agent in cloud environments
5.5 Be Aware of Permission Barriers
Accurate disk analysis may require root privileges.
Example:
du -sh /var
Without sufficient permissions, some directories may be skipped with “Permission denied,”
resulting in smaller reported sizes than actual usage.
→ Use sudo or administrative privileges when performing system-wide analysis.
5.6 Considerations for SSD and HDD Environments
SSD Environments
- Enable regular TRIM operations to avoid unnecessary writes:
sudo systemctl enable fstrim.timerThis allows SSDs to optimize deleted blocks automatically.
HDD Environments
- Log and cache fragmentation may occur more easily, so rebooting after cleanup can be effective
- Run I/O-intensive commands such as
duduring low-load periods (e.g., late at night)
5.7 Turning Disk Management into a Preventive System
The optimal approach to disk management is habitual and systematic prevention.
Practical Checklist
- Regularly check
df -h - Review
/var/loggrowth monthly - Run
apt autoremoveweekly - Clean up unused Snap and Docker data regularly
- Enable automated alert scripts
By following these practices, most disk space issues can be prevented in advance.
Summary
This section introduced advanced techniques for efficient disk management on Ubuntu.
The key points are:
.
- 자동화 및 알림을 통한 조기 감지
- 별칭 및 원라인 명령을 사용한 효율성 향상
- 권한 및 저장소 특성을 인식한 안전한 관리
이러한 접근 방식을 결합하면 디스크 관리가 번거로운 작업에서 시스템 운영의 핵심 부분으로 상승합니다.
6. FAQ (자주 묻는 질문)
Q1. Ubuntu에서 현재 디스크 공간을 확인하는 가장 쉬운 방법은 무엇인가요?
가장 간단한 방법은 터미널에서 다음 명령을 실행하는 것입니다.
df -h
이 명령은 각 파일 시스템에 대한 전체 크기, 사용된 공간 및 사용 가능한 공간을 표시합니다.
-h 옵션은 값을 사람이 읽기 쉬운 형식(GB / MB)으로 포맷합니다.
Q2. 디렉터리별 디스크 사용량을 어떻게 확인할 수 있나요?
du 명령을 사용합니다.
특정 디렉터리를 확인하려면:
du -sh /home
옵션 의미:
-s: 총합만 표시-h: 사람이 읽기 쉬운 형식으로 크기 표시
보다 자세한 분석을 원한다면:
sudo du -h --max-depth=1 /var
Q3. df와 du의 차이점은 무엇인가요?
요약하면, 두 명령은 측정 대상이 다릅니다.
| Command | Target | Main Purpose |
|---|---|---|
df | Entire filesystem | Check available space |
du | Files and directories | Identify disk usage sources |
Q4. GUI 도구를 사용해 디스크 공간을 확인하려면 어떻게 해야 하나요?
Ubuntu Desktop에서는 파일 관리자(Nautilus) 또는 디스크 사용량 분석기(Baobab) 를 사용할 수 있습니다.
- 파일 관리자: 상태 표시줄에 남은 공간을 표시
- Baobab: 차트와 트리맵으로 디스크 사용량을 시각화
Q5. “디스크가 가득 찼다”는 경고가 뜨면 먼저 무엇을 삭제해야 하나요?
다음 순서대로 안전한 항목을 삭제합니다.
- APT 캐시 :
sudo apt clean - 사용하지 않는 패키지 :
sudo apt autoremove - 오래된 로그 :
sudo journalctl --vacuum-time=7d - 휴지통 및 썸네일 캐시 :
rm -rf ~/.cache/thumbnails/* ~/.local/share/Trash/*
Q6. Snap 애플리케이션이 많은 디스크 공간을 차지하나요?
네. Snap은 설계상 여러 버전을 유지합니다.
사용하지 않는 버전을 제거하려면:
sudo snap list --all | grep disabled | awk '{print $1, $3}' | \
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
Q7. /var 또는 /home이 너무 큰 경우는 어떻게 해야 하나요?
/var: 로그(/var/log)와 캐시(/var/cache)를 정리/home: 큰 사용자 파일을 외부 저장소로 압축하거나 이동
필요하다면 LVM을 사용해 저장소를 확장하거나 추가 디스크를 마운트하는 것을 고려하세요.
Q8. du 명령이 너무 오래 걸립니다. 어떻게 속도를 높일 수 있나요?
--max-depth=1로 깊이를 제한- 불필요한 디렉터리 제외 (예:
--exclude=/proc) - 인터랙티브 분석을 위해
ncdu사용
Q9. 디스크 공간 문제를 재발하지 않게 하려면 어떻게 해야 하나요?
sudo apt autoremove를 주간 실행/var/log와/home을 월간 점검df -h출력 로그를 남겨 추세 파악- Snap 및 Docker 데이터 정기적으로 정리
- SSD 시스템에서는 TRIM 활성화
Q10. 디스크 공간을 확장할 수 있는 옵션은 무엇인가요?
- LVM 볼륨 확장
sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv - 새 디스크 추가 및 마운트 – 예:
/mnt/data디렉터리 아래 - 클라우드 스토리지 활용 – 대용량 파일 및 백업용
Q11. 루트 권한 없이 디스크 사용량을 확인할 수 있나요?
df -h 는 실행할 수 있지만, du 는 일부 디렉터리에 접근 권한이 필요합니다.
루트 없이 분석하려면 홈 디렉터리만 제한해서 사용하세요:
du -sh ~/*
Q12. GUI 없이 서버에서 디스크 공간을 확인하려면 어떻게 해야 하나요?
다음 명령 세트를 사용합니다:
| Purpose | Command |
|---|---|
| Check overall usage | df -h |
| Directory-level analysis | sudo du -hsx /* |
| Find large files | sudo find / -type f -size +1G |
| Interactive analysis | sudo ncdu / |
Q13. 디스크 사용량을 확인하는 데 위험 요소가 있나요?
단순히 사용량을 확인하는 것은 안전합니다.
하지만 삭제나 파티션 크기 조정 작업은 주의가 필요합니다.
sudo rm -rf사용 시 경로를 반드시 재확인/bin,/lib,/etc와 같은 시스템 디렉터리는 절대 삭제하지 말 것- 확신이 서지 않을 경우 백업을 먼저 수행
Q14. 디스크 공간을 절약할 수 있는 요령이 있나요?
/etc/logrotate.conf에서 로그 보관 기간을 단축- 사용하지 않는 언어 팩 제거 (
sudo apt install localepurge) - 오래된 커널 자동 삭제 (
sudo apt autoremove --purge)
Q15. 추천하는 디스크 모니터링 도구는 무엇인가요?
| Tool | Features |
|---|---|
| ncdu | Lightweight and fast CLI tool |
| Baobab | GUI-based visual analysis |
| duf | Enhanced df with readable tables |
| Netdata / Prometheus / Grafana | Advanced server monitoring and visualization |
최종 요약
이 FAQ를 통해 Ubuntu의 디스크 관리의 주요 포인트는 다음과 같이 요약할 수 있습니다:
df(개요)와du(상세)를 모두 사용하세요- 불필요한 데이터를 안전한 순서로 제거하세요 (APT → 로그 → 캐시)
- 자동화와 모니터링을 통해 재발을 방지하세요
이러한 관행을 일상화함으로써 디스크 공간 문제가 드물어집니다.
디스크 관리는 매력적이지 않을 수 있지만, 안정적인 Ubuntu 운영을 위한 가장 중요한 유지보수 작업 중 하나입니다.


