Dọn dẹp ổ đĩa: lệnh và công cụ giải phóng dung lượng ổ cứng

Dọn dẹp ổ đĩa: lệnh và công cụ giải phóng dung lượng ổ cứng

Trong quá trình sử dụng, ổ đĩa máy tính tích tụ dần các file tạm, bản sao cache, nhật ký hệ thống và dữ liệu không còn cần thiết, khiến dung lượng trống bị thu hẹp dần. Khi ổ đĩa đầy, hệ thống có thể chậm lại, không thể cài đặt bản cập nhật, thậm chí gặp lỗi khi ghi dữ liệu mới. Bài viết này hướng dẫn cách dọn dẹp ổ đĩa an toàn trên Linux, macOS và Windows bằng các lệnh dòng lệnh và công cụ có sẵn trên hệ thống.

Kiểm tra mức sử dụng ổ đĩa trước khi dọn

Trước khi xóa bất cứ thứ gì, điều quan trọng nhất là biết chính xác dữ liệu đang nằm ở đâu và chiếm bao nhiêu dung lượng. Dưới đây là hai lệnh nền tảng nhất trên Linux.

  • Lệnh du (disk usage) dùng để ước lượng dung lượng của một thư mục hoặc một tệp tin:
    • du -sh /var cho biết tổng kích thước của thư mục /var, ví dụ kết quả là 32G /var.
    • du -h --max-depth=1 / liệt kê dung lượng của từng thư mục cấp cao nhất, giúp bạn thấy ngay thư mục nào đang nuốt không gian, ví dụ 8.5G /usr.
  • Lệnh df (disk filesystem) cho biết mức dùng theo từng phân vùng:
    • df -h hiển thị dạng dễ đọc, ví dụ /dev/vda1 50G 42G 5.3G 89% / nghĩa là phân vùng gốc đã dùng 89%.
    • df -i hiển thị thông tin về inode, ví dụ cột IUse% báo 37% trên /dev/vda1, cho biết đã dùng bao nhiêu phần trăm số tệp tin.

Lưu ý rằng hết inode cũng gây ra lỗi không ghi được tệp mới, ngay cả khi ổ đĩa vẫn còn nhiều dung lượng trống. Vì vậy, lệnh df -i là kiểm tra bắt buộc khi hệ thống báo lỗi tạo tệp dù vẫn còn trống không gian.

Dọn nhật ký hệ thống và file tạm

systemd-journald

Nhật ký hệ thống có thể chiếm nhiều gigabyte nếu không được quay vòng hoặc dọn dẹp định kỳ. Hai lệnh sau giúp kiểm tra và thu gọn nhật ký:

  • journalctl --disk-usage báo cáo tổng dung lượng mà các tệp nhật ký đang chiếm, ví dụ: Archived and active journals take up 1.7G in the file system.
  • journalctl --vacuum-size=100M xóa các tệp nhật ký đã lưu trữ cũ nhất cho đến khi dung lượng của chúng nhỏ hơn ngưỡng đã đặt, ví dụ 100 MB.

systemd-tmpfiles và logrotate

  • systemd-tmpfiles --clean xóa các tệp và thư mục tạm cũ dựa trên quy tắc khai báo trong /etc/tmpfiles.d/*. Ví dụ một dòng quy tắc d /tmp 1777 root root 10d sẽ dọn mọi tệp trong /tmp cũ hơn mười ngày.
  • Logrotate quay vòng và nén nhật ký ứng dụng theo cấu hình, thường được hệ thống gọi tự động. Bạn có thể chạy thủ công logrotate -f /etc/logrotate.conf để áp dụng ngay.

Dọn cache của trình quản lý gói

Các trình quản lý gói thường giữ lại bản sao cache của những gói đã tải về, có thể chiếm vài gigabyte nếu không được dọn.

  • Debian và Ubuntu (apt):
    • apt-get autoremove gỡ bỏ các gói đã được tự động cài đặt để thỏa mãn sự phụ thuộc nhưng không còn cần thiết.
    • apt-get autoclean chỉ xóa các tệp tin gói đã tải xuống mà không còn thể tải lại được.
  • Fedora và Rocky Linux (dnf):
    • dnf clean all xóa toàn bộ bộ nhớ đệm, bao gồm siêu dữ liệu và các gói đã tải.
    • dnf autoremove gỡ bỏ các gói phụ thuộc không còn gói nào yêu cầu.
  • Arch Linux (pacman):
    • pacman -Sc xóa bộ nhớ đệm của những gói đã được gỡ cài đặt.
    • pacman -Qtdq liệt kê các gói được cài với tư cách phụ thuộc mà nay không còn gói nào cần, và có thể xóa bằng pacman -Rns $(pacman -Qtdq).

Dọn dung lượng Docker

Docker lưu trữ ảnh, container, volume và build cache, tất cả đều có thể tích tụ nhanh chóng trên ổ đĩa.

  • docker system df hiển thị mức sử dụng đĩa theo từng loại cùng phần có thể thu hồi, ví dụ: Images 22 7 8.538GB 3.691GB (43%).
  • docker system prune dọn các container, network, ảnh không dùng đến và build cache không được sử dụng. Thêm tùy chọn --volumes nếu bạn cũng muốn xóa các volume ẩn danh.
  • docker image prune -a xóa mọi ảnh không liên kết với bất kỳ container nào, không chỉ những ảnh mồ côi.

Các phương pháp tìm và kiểm tra khác

  • Tìm tệp lớn: find / -type f -size +100M -exec ls -lh {} \; liệt kê mọi tệp nặng hơn 100 MB kèm kích thước, giúp bạn xác định ứng dụng nào đang nuốt không gian.
  • Tệp đã xóa nhưng vẫn còn mở: lsof +L1 hiển thị các tệp đã bị xóa nhưng vẫn còn tiến trình giữ mở. Dung lượng của những tệp này chưa được giải phóng cho đến khi tiến trình kết thúc, nên đây là một trong những nguyên nhân gây ổ đĩa đầy mà không xóa gì được.
  • TRIM trên ổ SSD: fstrim -v / báo cho ổ biết những khối nào đã không dùng, kết quả ví dụ /: 0 B (dry run) trimmed cho biết có bao nhiêu byte được thả bỏ.
  • Kiểm tra sức khỏe ổ đĩa: smartctl -H /dev/sda trả về trạng thái sức khỏe. Nếu thông báo reports failing health status, ổ đĩa có thể đã hỏng hoặc sắp hỏng, cần sao lưu dữ liệu ngay.

Dọn dẹp trên macOS

  • tmutil listlocalsnapshots / liệt kê các ảnh chụp cục bộ của Time Machine theo định dạng năm-tháng-ngày và giờ.
  • tmutil deletelocalsnapshots 2026-01-15-101500 xóa một ảnh chụp cục bộ cụ thể theo định dạng trên.
  • purge đẩy cache đĩa để mô phỏng điều kiện khởi động lạnh, hữu ích khi phân tích hiệu suất.
  • diskutil info / hiển thị tổng dung lượng và dung lượng đã dùng của ổ.
  • diskutil apfs list hiển thị thông tin về container của hệ thống tệp APFS.

Dọn dẹp trên Windows

  • cleanmgr /sagerun:n chạy dọn dẹp đĩa với bộ cài đặt đã lưu từ trước, trong đó n là số thứ tự từ 0 đến 9999 được lưu trong sổ đăng ký.
  • cleanmgr /LOWDISK chạy với cài đặt mặc định và không hiện lời nhắc cho người dùng.
  • defrag C: /U /V chạy chống phân mảnh ổ C với tiến trình hiển thị và đầu ra chi tiết.
  • chkdsk /f /r sửa lỗi hệ thống tệp và tìm các sector xấu, còn chkdsk /scan thực hiện quét trực tuyến để sửa lỗi.

Liên kết tham khảo

Giao diện Disk Usage Analyzer hiển thị cây thư mục và dung lượng chiếm của từng mục
Sơ đồ minh họa dữ liệu bị phân tán thành các khối rời rạc nằm rải rác trên nhiều vùng của ổ đĩa

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Cách thay ổ cứng HDD bằng SSD: hướng dẫn cài đặt chi tiết

Cách thay ổ cứng HDD bằng SSD: hướng dẫn cài đặt chi tiết Thay ổ cứng HDD bằng SSD là cách nâng cấp máy tính hiệu quả nhất, giúp thời…

Xem thêm

Nmap là gì: hướng dẫn quét mạng và phát hiện lỗ hổng bảo mật

Nmap là gì: quét mạng từ dòng lệnh Nmap (Network Mapper) là công cụ quét mạng mã nguồn mở dùng để phát hiện thiết bị, dịch vụ và lỗ hổng…

Xem thêm

KiCad là gì: bộ công cụ thiết kế mạch in mã nguồn mở miễn phí

KiCad là gì: bộ công cụ thiết kế mạch in mã nguồn mở miễn phí KiCad là gì? Đây là một bộ công cụ phần mềm mã nguồn mở dành…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất