Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn khắc phục sự cố Ubuntu No space left on device root chi tiết và nhanh chóng

    Nguyễn Hưng

    Ngày đăng:

    09/03/2026

    Cập nhật lần cuối:

    09/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    09/03/2026

    Cập nhật lần cuối:

    09/03/2026

    Mục lục

    Thông báo lỗi No space left on device trên Ubuntu nghĩa là phân vùng đang dùng đã hết tài nguyên khiến hệ thống không ghi thêm dữ liệu. Nguyên nhân thường gặp nhất là do đầy dung lượng ổ đĩa hoặc hết inodes do có quá nhiều file nhỏ. Trong bài viết dưới đây, mình sẽ hướng dẫn bạn các khắc phục lỗi này hiệu quả, chi tiết.

    Những điểm chính

    • Định nghĩa lỗi “no space left on device”: Hiểu rõ lỗi này xảy ra khi phân vùng root cạn kiệt tài nguyên lưu trữ, có thể do hết dung lượng vật lý hoặc hết inodes.
    • Nguyên nhân gây lỗi: Nắm được các nguyên nhân chính khiến phân vùng root bị đầy, làm cơ sở để xác định hướng khắc phục.
    • Cách khắc phục lỗi hiệu quả: Nắm vững quy trình từng bước để chẩn đoán và giải phóng dung lượng, từ việc kiểm tra bằng df -h đến dọn dẹp cache, log và các phiên bản kernel cũ.
    • Cách ngăn ngừa lỗi: Biết được các biện pháp phòng ngừa hiệu quả để tránh gặp lại lỗi này, bao gồm quy hoạch phân vùng, kiểm soát log và tự động hóa việc dọn dẹp.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như cách phân biệt giữa hết dung lượng và hết inode, cách dọn dẹp Docker và khi nào nên chỉnh lại phân vùng.

    Lỗi Ubuntu No space left on device root là gì?

    “No space left on device” (Mã lỗi hệ thống: ENOSPC) là thông báo lỗi tới hạn từ Kernel Linux cho biết phân vùng gốc đã hết tài nguyên lưu trữ và không thể thực hiện tác vụ ghi dữ liệu mới. Trong kỹ thuật hệ thống, lỗi này được định nghĩa qua hai trường hợp cụ thể:

    • Cạn kiệt khối dữ liệu: Tổng dung lượng vật lý được cấp phát cho phân vùng root đã bị chiếm dụng 100%.
    • Cạn kiệt Inode: Mặc dù dung lượng ổ cứng có thể vẫn còn trống, nhưng bảng quản lý file đã đầy.
    Lỗi ubuntu no space left on device root là thông báo cho biết phân vùng gốc đã hết tài nguyên lưu trữ
    Lỗi Ubuntu No space left on device root là thông báo cho biết phân vùng gốc đã hết tài nguyên lưu trữ

    Nguyên nhân gây lỗi No space left on device trong Linux

    Một số nguyên nhân phổ biến gồm:

    • Dung lượng ổ đĩa root quá nhỏ so với nhu cầu sử dụng ban đầu.
    • Log hệ thống tăng quá nhanh (đặc biệt trong /var/log) do dịch vụ hoặc ứng dụng ghi lỗi liên tục.
    • Cài đặt nhiều gói phần mềm, cập nhật hoặc kernel cũ nhưng chưa được dọn dẹp.
    • Thư mục cache và file tạm (như /var/cache/apt, /tmp) chiếm nhiều dung lượng.
    • Ứng dụng hoặc container (Docker, Snap, VM) lưu dữ liệu trực tiếp trên phân vùng root.
    • File lớn hoặc dữ liệu sao lưu vô tình được lưu trong / thay vì phân vùng khác.

    Khi phân vùng root bị đầy, nhiều dịch vụ có thể hoạt động không ổn định hoặc ngừng hẳn, vì vậy cần kiểm tra và giải phóng dung lượng kịp thời.

    Bước 1: Kiểm tra hiện trạng phân vùng

    Đầu tiên, bạn cần xác định dung lượng khả dụng trên hệ thống file bằng lệnh df kết hợp với tham số -h để hiển thị thông tin dễ đọc:

    df -h

    Lệnh trên sẽ hiển thị dung lượng của các phân vùng, bao gồm phân vùng root (/). Nếu cột Use% hiển thị tỷ lệ cao (ví dụ: 90% – 100%) và cột Avail (dung lượng trống) ở mức thấp, đây là nguyên nhân trực tiếp gây ra lỗi.

    Kiểm tra hiện trạng phân vùng
    Kiểm tra hiện trạng phân vùng

    Ở đây, phân vùng root (/dev/sda1) chỉ còn 3GB dung lượng trống và đang sử dụng tới 93% dung lượng. Lúc này, hệ thống sẽ không thể cài đặt thêm phần mềm hoặc ghi các file mới vào phân vùng này.

    Bước 2: Giải phóng dung lượng Root

    Để khôi phục hoạt động của hệ thống, bạn cần dọn dẹp và thu hồi không gian lưu trữ theo các bước sau:

    1. Dọn dẹp cache trình quản lý gói và Log hệ thống

    Các file tạm thời từ trình quản lý gói và nhật ký hệ thống thường chiếm dụng nhiều tài nguyên.

    • Xóa cache của APT: Bạn tiến hành xóa các gói tin đã tải về và gỡ bỏ các gói phụ thuộc không còn cần thiết bằng cách chạy lệnh sau:
    sudo apt clean
    sudo apt autoremove
    Xóa cache của APT
    Xóa cache của APT
    • Tối ưu hóa Journal Logs: Cách này sẽ giúp bạn giới hạn dung lượng lưu trữ của journal logs. Ví dụ, để giữ lại tối đa 100MB, bạn thực hiện lệnh sau đây:
    sudo journalctl --vacuum-size=100M
    Tối ưu hóa Journal Logs
    Tối ưu hóa Journal Logs

    2. Kiểm tra và xử lý thư mục /var

    Thư mục /var là nơi chứa dữ liệu biến đổi thường xuyên như log, cache ứng dụng,… Để xác định các thư mục con đang chiếm dụng nhiều dung lượng nhất, bạn sử dụng lệnh sau:

    sudo du -sh /var/*

    Bạn hãy kiểm tra các thư mục lớn có thể chưa nhiều file không cần thiết như /var/log/var/cache rồi thực hiện xóa hoặc xoay vòng các file cũ không còn giá trị sử dụng.

    Kiểm tra và xử lý thư mục /var
    Kiểm tra và xử lý thư mục /var

    3. Xóa các file không cần thiết trong /home

    Trong trường hợp thư mục /home không được phân tách thành phân vùng riêng, dữ liệu người dùng sẽ chiếm dụng không gian của root. Bạn tiến hành kiểm tra dung lượng chi tiết bằng lệnh sau:

    sudo du -sh /home/*

    Sau đó, bạn xác định các user chiếm nhiều dung lượng để xóa bỏ hoặc di chuyển dữ liệu sang phân vùng lưu trữ khác.

    Xác định các user chiếm nhiều dung lượng
    Xác định các user chiếm nhiều dung lượng

    4. Loại bỏ các phiên bản Kernel cũ

    Hệ điều hành Linux thường giữ lại các phiên bản kernel cũ sau khi cập nhật gây tiêu tốn đáng kể dung lượng phân vùng /boot hoặc root. Để xóa các kernel cũ, bạn thực hiện các bước sau:

    Bước 1: Bạn chạy lệnh sau để liệt kê các kernel đã cài đặt:

    dpkg --list | grep linux-image
    Bạn liệt kê các kernel đã cài đặt
    Bạn liệt kê các kernel đã cài đặt

    Bước 2: Tiếp theo, bạn thực hiện lệnh dưới đây để chỉ giữ lại phiên bản kernel đang hoạt động và gỡ bỏ các phiên bản cũ cụ thể:

    sudo apt-get remove --purge linux-image-<version>

    Thay thế <version> bằng phiên bản kernel cụ thể bạn cần xóa.

    5. Sử dụng Live USB

    Nếu phân vùng root đã đầy và bạn không thể thực hiện các lệnh dọn dẹp trực tiếp, bạn có thể sử dụng một Live USB của Ubuntu hoặc các bản phân phối Linux. Việc này giúp bạn truy cập vào hệ thống mà không cần phải khởi động trực tiếp từ ổ cứng đang bị đầy.

    • Bước 1: Đầu tiên, bạn khởi động hệ thống từ Live USB.
    • Bước 2: Tiếp theo, bạn mở Terminal và gắn kết (mount) phân vùng root của ổ cứng:
    sudo mount /dev/sda1 /mnt 
    # Thay sda1 bằng phân vùng root của bạn
    • Bước 3: Sau đó, bạn truy cập vào /mnt để xóa các file không cần thiết, giải phóng dung lượng tối thiểu để hệ thống có thể khởi động lại.

    Cách ngăn ngừa lỗi Ubuntu No space left on device root

    Để hạn chế và tránh gặp lỗi No space left on device, bạn có thể áp dụng các biện pháp sau:

    • Phân bổ dung lượng hợp lý ngay từ đầu: Tạo phân vùng root (/) đủ lớn hoặc tách riêng các thư mục như /home, /var, /tmp sang các phân vùng khác có dung lượng lớn hơn để giảm tải cho phân vùng gốc.
    • Theo dõi dung lượng ổ đĩa thường xuyên: Sử dụng các công cụ giám sát, tác vụ định kỳ (cron) hoặc cảnh báo email để phát hiện sớm khi dung lượng root gần đầy.
    • Dọn dẹp hệ thống định kỳ: Xóa file tạm, cache, log cũ và các gói phần mềm không còn sử dụng để giải phóng không gian.
    • Tự động hóa việc dọn dẹp: Áp dụng các công cụ như logrotate hoặc cron job để xoay vòng, xóa hoặc lưu trữ log cũ tự động.
    • Tránh lưu file lớn trong thư mục /: Các file sao lưu, dữ liệu tải về hoặc media nên được lưu trên phân vùng dữ liệu riêng hoặc ổ đĩa đã mount, không để chiếm dung lượng phân vùng gốc.
    Bạn cần phân bổ phân vùng lưu trữ phù hợp
    Bạn cần phân bổ phân vùng lưu trữ phù hợp (Nguồn: Internet)

    Câu hỏi thường gặp

    Làm sao phân biệt hết dung lượng ổ đĩa và hết inode khi lỗi ENOSPC?

    Bạn có thể dùng df -h để kiểm tra dung lượng và df -i để kiểm tra inode; nếu Use% của inode ở mức 100% trong khi dung lượng vẫn còn, nghĩa là bạn bị đầy inode chứ không phải hết dung lượng vật lý. Trong trường hợp này, cần tập trung xóa bớt số lượng file nhỏ thay vì chỉ tìm các file lớn.

    Khi dùng Docker trên Ubuntu hay bị “No space left on device”, nên dọn dẹp thế nào cho an toàn?

    Docker thường chiếm nhiều dung lượng qua image, container dừng, volume không dùng và build cache. Bạn có thể dùng docker system df để xem chi tiết, sau đó dùng docker system prune hoặc docker system prune -a --volumes và lên kế hoạch gắn thêm phân vùng/ổ đĩa riêng cho Docker nếu workload lớn.

    Có nên chỉnh lại phân vùng khi root thường xuyên đầy, hay chỉ dọn dẹp là đủ?

    Nếu lỗi chỉ xảy ra thỉnh thoảng do log tăng đột biến thì bạn dọn dẹp, tối ưu logrotate, journalctl, APT cache,… là đủ. Nhưng nếu phân vùng root quá nhỏ so với mô hình sử dụng (dịch vụ log nhiều, dùng Docker/Kubernetes, CI/CD,…) thì bạn nên quy hoạch lại bằng cách: Dùng LVM hoặc tăng dung lượng/di dời dữ liệu sang phân vùng riêng như /var, /home, /var/lib/docker để tránh tái diễn.

    Lỗi Ubuntu No space left on device root là sự cố phổ biến trong vận hành Linux, đặc biệt với các máy chủ có tài nguyên hạn chế. Việc nắm vững quy trình kiểm tra df, du và kỹ năng dọn dẹp hệ thống là yêu cầu thiết yếu để duy trì hiệu suất và tính sẵn sàng cho hệ thống của bạn.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh awk Linux để xử lý dữ liệu dạng cột tối ưu
    Cách dùng lệnh awk Linux để xử lý dữ liệu dạng cột tối ưu

    Awk Linux là lệnh được dùng để xử lý và phân tích các file văn bản. Lệnh này được thiết kế chuyên biệt để xử lý dữ liệu dạng cột, cho phép trích xuất cột, lọc theo điều kiện, tính toán và định dạng lại kết quả trên dòng lệnh với hiệu năng cao và…

    09/03/2026

    Hướng dẫn 5 bước tạo SSH Key trên Linux nhanh chóng và đơn giản
    Hướng dẫn 5 bước tạo SSH Key trên Linux nhanh chóng và đơn giản

    SSH Key trong Linux là một cặp khóa dùng để xác thực an toàn giữa người dùng và máy chủ thông qua giao thức SSH. Trong bài viết này, mình sẽ cung cấp một hướng dẫn toàn diện gồm 5 bước đơn giản về cách tạo và quản lý SSH Key Linux, giúp bạn nâng…

    09/03/2026

    Cách giám sát hiệu năng Linux chuyên sâu với vmstat và iostat
    Cách giám sát hiệu năng Linux chuyên sâu với vmstat và iostat

    vmstat và iostat là công cụ dòng lệnh trong sysstat dùng giám sát hiệu năng Linux. vmstat cho cái nhìn tổng quan về hệ thống (CPU, RAM), còn iostat tập trung phân tích sâu hiệu suất I/O của đĩa. Trong bài viết này, mình sẽ hướng dẫn bạn cách kết hợp vmstat và iostat để…

    09/03/2026

    Hướng dẫn sử dụng lệnh Eject Linux để quản lý thiết bị lưu trữ rời
    Hướng dẫn sử dụng lệnh Eject Linux để quản lý thiết bị lưu trữ rời

    Lệnh eject là công cụ dòng lệnh chuẩn giúp điều khiển phần cứng như ổ quang và ngắt kết nối an toàn các thiết bị lưu trữ di động như USB trước khi tháo ra, qua đó bảo đảm tính toàn vẹn dữ liệu. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử…

    09/03/2026

    linux

    system-linux

    text