
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 /varcho 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 -hhiể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 -ihiể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-usagebá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=100Mxó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 --cleanxó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ắcd /tmp 1777 root root 10dsẽ 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 autoremovegỡ 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 autocleanchỉ 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 allxóa toàn bộ bộ nhớ đệm, bao gồm siêu dữ liệu và các gói đã tải.dnf autoremovegỡ bỏ các gói phụ thuộc không còn gói nào yêu cầu.
- Arch Linux (pacman):
pacman -Scxóa bộ nhớ đệm của những gói đã được gỡ cài đặt.pacman -Qtdqliệ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ằngpacman -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 dfhiể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 prunedọ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--volumesnếu bạn cũng muốn xóa các volume ẩn danh.docker image prune -axó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 +L1hiể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) trimmedcho biết có bao nhiêu byte được thả bỏ. - Kiểm tra sức khỏe ổ đĩa:
smartctl -H /dev/sdatrả về trạng thái sức khỏe. Nếu thông báoreports 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-101500xó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 listhiển thị thông tin về container của hệ thống tệp APFS.
Dọn dẹp trên Windows
cleanmgr /sagerun:nchạ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 /LOWDISKchạ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 /Vchạ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 /rsửa lỗi hệ thống tệp và tìm các sector xấu, cònchkdsk /scanthực hiện quét trực tuyến để sửa lỗi.
Liên kết tham khảo
- du(1): trang hướng dẫn lệnh du trong Linux
- df(1): trang hướng dẫn lệnh df trong Linux
- journalctl(1): trang hướng dẫn lệnh journalctl


