Wednesday, January 7th, 2026

리눅스 용량 부족 해결의 정석: 로그 정리부터 커널 삭제까지 (완벽 가이드)

어느 날 갑자기 리눅스 서버의 응답 속도가 현저히 느려지거나, 우분투(Ubuntu) 데스크탑에서 간단한 프로그램 하나 실행하는 데 한세월이 걸린 적 있으신가요? 혹은 apt upgrade 명령어를 쳤는데 “No space left on device”라는 절망적인 에러 메시지를 마주한 적은요?

리눅스 용량 부족 해결의 정석: 로그 정리부터 커널 삭제까지 (완벽 가이드)

리눅스 시스템 관리자나 개발자에게 ‘디스크 용량 부족’은 악몽과도 같습니다. 리눅스는 여유 공간이 없으면 단순히 파일 저장을 못 하는 수준을 넘어, 임시 파일(Temp)을 생성하지 못해 서비스가 셧다운(Shutdown)되거나 부팅 자체가 불가능해지는 치명적인 상태에 빠지기 때문입니다.

대부분의 사용자는 이럴 때 당황해서 중요한 파일을 무작정 지우는 실수를 범합니다. 하지만 리눅스에는 시스템을 손상시키지 않고도 ‘숨겨진 공간’을 찾아내는 강력한 도구들이 있습니다.

오늘은 리눅스 시스템이 보내는 용량 부족 신호를 포착하고, 안전하고 체계적으로 디스크 공간을 확보하는 7단계 심층 가이드를 제공합니다. 이 글을 끝까지 읽으시면, 더 이상 용량 부족 경고창을 두려워하지 않게 될 것입니다.

1. 현상 파악: 왜 내 리눅스는 느려졌는가?

용량을 비우기 전에, 용량 부족이 시스템에 미치는 영향을 이해해야 합니다. 리눅스는 윈도우보다 디스크 공간에 민감합니다.

  • 성능 저하: 시스템은 메모리(RAM)가 부족할 때 디스크의 일부를 빌려 쓰는 ‘스왑(Swap)’을 수행합니다. 디스크가 꽉 차면 이 스왑조차 제대로 작동하지 않아 시스템이 기어가게 됩니다.
  • 서비스 중단: 웹 서버(Nginx/Apache)나 데이터베이스(MySQL)는 끊임없이 로그를 기록하고 잠금(Lock) 파일을 생성합니다. 공간이 0이 되면 이 프로세스들이 즉시 멈춥니다.
  • 업데이트 불가: aptdnf 같은 패키지 매니저는 설치 전 압축 파일을 다운로드할 공간이 필요합니다. 공간이 없으면 보안 패치조차 할 수 없는 ‘좀비 PC’가 됩니다.

2. 정밀 진단: 범인은 어디에 숨어있는가?

무턱대고 지우지 마세요. 먼저 어디가 뚱뚱해졌는지 확인해야 합니다. 리눅스에는 이를 위한 두 가지 눈, dfdu가 있습니다.

① 전체 숲을 보는 df (Disk Free)

가장 먼저 터미널에 다음 명령어를 입력하세요. df -h

  • -h 옵션은 사람이 읽기 편한 단위(GB, MB)로 보여줍니다.
  • 여기서 ‘Use%’가 90% 이상인 파티션을 찾으세요. 보통 루트 파티션(/)이 범인입니다.

② 나무를 보는 du (Disk Usage)

문제가 되는 파티션을 찾았다면, 이제 어떤 디렉토리가 범인인지 색출해야 합니다. sudo du -sh /*

  • 루트(/) 하위의 모든 디렉토리 용량을 요약해서 보여줍니다.
  • 보통 /var (로그, 캐시), /usr (프로그램), /home (사용자 데이터) 중 하나가 비정상적으로 커져 있을 겁니다.

③ 전문가의 도구: ncdu (NCurses Disk Usage)

터미널 환경에서 du 명령어로 일일이 찾아다니는 건 고역입니다. 이때 **ncdu**를 설치해서 실행해 보세요. (sudo apt install ncdu)

  • 텍스트 기반이지만 그래픽 인터페이스처럼 화살표 키로 폴더를 오가며 용량을 확인하고, 그 자리에서 즉시 삭제(d 키)까지 할 수 있는 최고의 도구입니다.

GUI 사용자라면? 그놈(GNOME) 환경의 **’디스크 사용량 분석(Baobab)’**이나 KDE의 **’Filelight’**를 실행하면, 디스크 점유율을 마치 파이 차트처럼 직관적으로 보여주어 범인을 한눈에 잡을 수 있습니다.

3. 1단계 청소: 패키지 매니저의 흔적 지우기

리눅스의 가장 큰 용량 낭비는 아이러니하게도 시스템을 관리해 주는 ‘패키지 매니저’에서 발생합니다.

APT/DNF 캐시의 비밀

우분투에서 apt install로 프로그램을 설치하면, 시스템은 설치 파일(.deb)을 /var/cache/apt/archives/에 다운로드합니다. 설치가 끝나도 이 파일은 자동으로 삭제되지 않습니다. 수년간 묵혀둔 시스템은 이 캐시만 몇 기가바이트(GB)가 넘습니다.

  • 우분투/데비안: sudo apt clean (캐시 전체 삭제) sudo apt autoclean (더 이상 다운로드할 수 없는 구버전 캐시만 삭제)
  • 페도라/레드햇: sudo dnf clean all
  • 아치 리눅스: sudo pacman -Scc

이 명령어 한 줄로 아무런 리스크 없이 수 기가바이트를 확보할 수 있습니다.

4. 2단계 청소: 통제 불능의 로그 파일 길들이기

“로그는 시스템의 블랙박스다”라고 하지만, 관리가 안 된 로그는 시스템을 질식시키는 암적인 존재가 됩니다.

Systemd 저널 로그

최신 리눅스 배포판은 systemd를 사용하며, 이는 로그를 바이너리 형태로 저장합니다. 이 로그가 무제한으로 커질 수 있습니다.

  1. 용량 확인: journalctl --disk-usage
  2. 다이어트: sudo journalctl --vacuum-size=500M (로그 크기를 500MB까지만 남기고 오래된 것부터 삭제합니다.)

전통적인 텍스트 로그 (/var/log)

/var/log/syslog/var/log/kern.log 파일이 수십 기가바이트로 커진 경우가 있습니다. 이때 절대 rm 명령어로 파일을 지우지 마세요. 파일이 삭제되어도 프로세스가 파일을 잡고 있으면(File Descriptor) 용량이 확보되지 않고 에러만 발생할 수 있습니다.

[올바른 방법: Truncate] sudo truncate -s 0 /var/log/syslog 이 명령어는 파일 자체는 남겨두되, 내용만 0바이트로 비워버립니다. 시스템은 에러 없이 계속 로그를 기록할 수 있고, 용량은 즉시 확보됩니다.

BleachBit 같은 GUI 도구를 사용하면 윈도우의 ‘디스크 정리’처럼 클릭 몇 번으로 각종 로그와 임시 파일을 안전하게 청소할 수 있습니다.

5. 3단계 청소: 좀비 패키지와 현대적 블로트웨어

고아 패키지(Orphaned Packages) 삭제

어떤 프로그램을 설치할 때 같이 설치된 ‘의존성 패키지(라이브러리)’들이 있습니다. 메인 프로그램을 지웠는데, 이 라이브러리들이 찌꺼기처럼 남는 경우입니다.

  • 명령어: sudo apt autoremove --purge (더 이상 필요 없는 패키지와 그 설정 파일까지 깨끗하게 날려버립니다.)

Snap과 Flatpak의 배신

최신 리눅스(Ubuntu 등)는 편의성을 위해 Snap이나 Flatpak 같은 컨테이너형 패키지를 사용합니다. 문제는 이들이 덩치가 매우 크고, 구버전까지 보관한다는 점입니다.

  • snap list 명령어로 설치된 목록을 확인하고, 쓰지 않는 거대한 앱은 과감히 snap remove [패키지명]으로 지우세요.
  • Flatpak 역시 flatpak uninstall --unused 명령어로 사용하지 않는 런타임을 정리해 줘야 합니다.

6. 4단계 청소: 잊혀진 커널(Old Kernels)의 망령

리눅스는 커널 업데이트가 잦습니다. 안전을 위해 업데이트 후에도 구버전 커널을 지우지 않고 보관합니다. 하지만 /boot 파티션은 보통 크기가 작아서, 커널이 3~4개만 쌓여도 꽉 차버려 업데이트 에러를 유발합니다.

uname -r 명령어로 현재 내가 쓰고 있는 커널 버전을 확인한 뒤, 그 버전을 제외한 아주 오래된 커널들은 삭제해야 합니다. 최신 우분투는 apt autoremove가 이를 자동으로 처리해 주지만, 수동 관리가 필요하다면 Stacer 같은 GUI 툴을 사용하여 시각적으로 안전하게 삭제하는 것을 추천합니다. (잘못 지우면 부팅이 안 될 수 있으니 주의하세요!)

7. 최후의 수단: 대용량 파일 사냥 및 이주

위의 모든 시스템 정리를 마쳤는데도 부족하다면, 이제는 여러분의 데이터가 문제입니다.

숨겨진 대용량 파일 찾기

  • ISO 이미지: 예전에 OS 설치하려고 받아둔 4GB짜리 리눅스 ISO 파일이 ~/Downloads에 잠자고 있지 않나요?
  • VM 이미지: VirtualBox나 Docker가 만든 가상 디스크 파일은 수십 GB를 차지합니다.
  • 코어 덤프: 프로그램이 충돌할 때 생성되는 거대한 메모리 덤프 파일이 숨어있을 수 있습니다.

터미널에서 다음 명령어로 100MB가 넘는 파일을 샅샅이 뒤져보세요. find / -type f -size +100M

데이터 이주 (Migration)

지울 수 없는 데이터라면 옮겨야 합니다. /home 디렉토리의 데이터를 외장 하드나 NAS, 혹은 클라우드(Nextcloud 등)로 옮기세요. 이때 rsync 명령어를 사용하면 파일의 소유권과 권한을 그대로 유지한 채 안전하게 이동할 수 있습니다.

8. 결론: 청소는 한 번으로 끝나지 않는다

디스크 용량 확보는 다이어트와 같습니다. 한 번 굶어서 뺐다고 끝나는 게 아닙니다. 리눅스 시스템은 살아있는 유기체처럼 끊임없이 로그를 먹고 캐시를 배설합니다.

[유지보수 체크리스트]

  1. 주기적 모니터링: 데스크탑 패널에 ‘디스크 사용량 위젯’을 띄워두고 수시로 확인하세요.
  2. 자동화: cron 작업을 통해 주기적으로 apt clean이나 로그 정리를 실행하도록 설정하세요.
  3. 파티션 분리: 서버를 구축한다면 처음부터 /var/home 파티션을 별도로 분리하여, 로그가 꽉 차도 시스템 전체가 멈추는 불상사를 막으세요.

오늘 소개한 7가지 단계를 차근차근 밟아나간다면, 여러분의 리눅스는 다시 깃털처럼 가볍고 빨라질 것입니다. 지금 바로 터미널을 열고 df -h를 쳐보세요. 청소할 시간이 되었습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다