Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách khắc phục lỗi "No space left on device" trên Linux

Hầu hết thời gian, Linux khá specific với error message. "Điều này không work – thử cài package này". Tuy nhiên, có một error đặc biệt không giúp ích nhiều: "No space left on device". Nguyên nhân gì? Tưởng có 2 TB storage, sao full? Bắt đầu tìm ở đâu? Hôm nay, chúng tôi walk you through tất cả trong hướng dẫn fix lỗi "No space left on device" trên Linux.

Kiểm tra dung lượng trống trên thiết bị

Trước khi đi xa, kiểm tra thực sự còn space trên disk. Tool desktop environment tốt, nhưng command line direct nhanh hơn.

Nếu muốn dùng tool desktop environment, chúng give easy-to-read representation của info tìm được với tool CLI. Tác giả dùng Fedora GNOME, GNOME Disk Usage Analyzer show:

Bắt đầu với du. Trỏ vào base directory trên drive gặp vấn đề. Giả sử partition với /.

sudo du -sh /

Sẽ mất thời gian duyệt hết. Thử với df.

sudo df -h

Cộng / và filesystem mount dưới nó. Ví dụ: /home trên ổ riêng, cộng reading của /home với reading của /. Tổng nên ra gần du. Nếu không, có thể trỏ về deleted file đang bị process dùng.

Chủ yếu quan tâm: kết quả lệnh có dưới size ổ không. Nếu dưới, rõ ràng có vấn đề.

Nguyên nhân có thể của "No space on device"

Có vài nguyên nhân chính. Nếu thấy discrepancy giữa du và df, nhảy xuống option 1. Ngược lại, bắt đầu từ option 2.

File đã xóa nhưng bị process giữ (reserved)

Thỉnh thoảng file bị xóa, nhưng process vẫn dùng nó. Linux không release storage gắn với file khi process còn chạy, nhưng bạn có thể tìm process và restart nó.

Tìm process:

sudo lsof / | grep deleted

Process gây sự cố sẽ liệt kê. Chỉ restart nó.

sudo systemctl restart service_name

Nếu không ngay lập tức rõ ràng, làm full daemon reload.

sudo systemctl daemon-reload

Không đủ Inodes

Có metadata trên filesystem gọi "inodes". Inodes track thông tin file. Nhiều filesystem có inodes fixed amount, nên rất có thể fill max allocation inodes mà không fill filesystem. Dùng df check.

sudo df -i /

So sánh inodes used với total inodes. Nếu không còn available,不幸的是, không thể lấy thêm. Xóa file vô dụng/out-of-date để clear inodes.

Bad Blocks (Block xấu)

Vấn đề phổ biến cuối: bad filesystem block. Filesystem corrupt theo thời gian, ổ cứng die. OS likely thấy block đó usable trừ khi marked khác. Cách tốt nhất tìm và mark block: dùng fsck với flag -cc. Nhớ không dùng fsck từ cùng filesystem đang test, nên cần live CD.

sudo fsck -vcck /dev/sda2

Thay thế drive location bằng drive muốn check. Tìm location bằng df trước. Cũng nhớ: sẽ mất thời gian lâu, chuẩn bị cà phê.

Hy vọng một giải pháp trên giải quyết vấn đề. Issue này không dễ diagnose mọi trường hợp. Với chút may mắn, bạn clear được và hệ thống hoạt động bình thường trở lại.

Cần thêm con trỏ Linux? Xem hướng dẫn setup Bluetooth trên Linux. Hoặc cái khác: cài Safari Mac trên Linux. Enjoy!