Những lỗi không có nguyên nhân rõ ràng là những vấn đề khó giải quyết nhất. Và mặc dù Linux thường đưa ra các thông báo lỗi cụ thể, nhưng đây là một trong số ít trường hợp nó thất bại.
Việc xảy ra lỗi “Không còn chỗ trống trên thiết bị” giải thích rất ít, đặc biệt nếu ổ đĩa của bạn chưa đầy. Tại sao thông báo lỗi này hiển thị? Tại sao bạn không thể tạo tệp mới mặc dù có đủ dung lượng trên đĩa? Và quan trọng nhất là bạn khắc phục nó như thế nào?
Hãy cùng tìm hiểu.
Ổ cứng của bạn thực sự có đủ dung lượng không?
Trước khi vội vàng tìm cách khắc phục, hãy đảm bảo rằng ngay từ đầu đã có vấn đề. Rốt cuộc, nếu dung lượng ổ đĩa thực sự đã hết trên hệ thống của bạn, bạn không cần phải hoảng sợ. Bạn chỉ có thể xóa dữ liệu không cần thiết để giải phóng thêm dung lượng.
Có hai lệnh hệ thống Linux để lấy thông tin về dung lượng ổ đĩa – du và df. Lệnh du ước tính mức sử dụng dung lượng ổ đĩa, trong khi lệnh df phân tích dung lượng trống hiện có trên đĩa. Việc sử dụng chúng kết hợp với sudo sẽ cung cấp cho bạn báo cáo chính xác về dung lượng thực sự có sẵn trên đĩa.
Bây giờ chúng ta sẽ sử dụng df để xem dung lượng trống còn trống là bao nhiêu. Lệnh df sử dụng đơn giản hơn nhiều vì nó chỉ hiển thị các hệ thống tệp được gắn và số liệu thống kê sử dụng của chúng. Một lần nữa, chúng ta sẽ sử dụng cờ -h để làm cho kết quả đầu ra có thể đọc được.
sudo df -h .
Ý tưởng là kiểm đếm kết quả của lệnh du và df. Mọi sự khác biệt đều cho thấy dung lượng ổ đĩa không có sẵn miễn phí mặc dù không được bất kỳ tệp hoặc thư mục nào sử dụng.
Tại sao Linux hiển thị "Không còn chỗ trống trên thiết bị"?
Nếu bạn thấy thông báo lỗi “Không còn dung lượng trên thiết bị” mặc dù có đủ dung lượng trống trên đĩa thì nguyên nhân không phải do phần cứng. Việc tìm ra nguyên nhân chính xác gây ra lỗi có thể mất một chút thời gian để khắc phục sự cố.
Khắc phục 1: Khởi động lại quy trình bằng tệp đã xóa
Nguyên nhân có thể xảy ra nhất gây ra lỗi “Không còn dung lượng trên thiết bị” là do quá trình vẫn sử dụng tệp đã bị xóa. Rất may, việc sửa lỗi này rất dễ dàng. Bạn chỉ cần khởi động lại quá trình để giải phóng bộ nhớ dự trữ.
Sau đó, không gian lưu trữ bị quá trình chiếm giữ sẽ sẵn sàng trở lại, cho phép bạn ghi tệp mà không gặp phải bất kỳ lỗi nào.
Cách khắc phục 2: Kiểm tra Inode
Mặc dù mỗi ổ đĩa có số lượng nút lớn nhưng số lượng này là hữu hạn. Và nếu hệ thống của bạn chứa quá nhiều tệp, bạn có thể đạt đến giới hạn này trước khi cạn kiệt dung lượng lưu trữ của ổ đĩa. Đây là lý do tại sao nên có tệp lớn thay vì có quá nhiều tệp nhỏ.
Bạn có thể dễ dàng kiểm tra tính khả dụng của inode bằng cách sử dụng cờ -i với lệnh df. Như thế này:
sudo df -i
Điều này sẽ cho biết rõ ràng tổng số nút có trong hệ thống tệp, cùng với số lượng hiện đang được sử dụng. Nếu không còn nút trống nào trên hệ thống của bạn thì đây là nguyên nhân gây ra lỗi “Không còn chỗ trống trên thiết bị”.
Vì các nút chỉ được tạo khi định dạng ổ đĩa lần đầu nên không có cách nào để tạo thêm các nút. Tất cả những gì bạn có thể làm là xóa mọi tệp không cần thiết để giải phóng inode cho các tệp trong tương lai.
Cách khắc phục 3: Đánh dấu các khối xấu
Hỏng dữ liệu là số phận tất yếu của bất kỳ ổ cứng nào. Mặc dù ổ đĩa mới sẽ không gặp phải vấn đề này nhưng các ổ đĩa cứng cũ hơn sẽ dần dần bắt đầu bị “xấu”.
Điều này có nghĩa là các phần của ổ cứng không thể sử dụng được, mặc dù hệ thống tập tin vẫn coi chúng vẫn hoạt động. Các khối xấu này làm tăng sai dung lượng trống rõ ràng trên ổ đĩa, trong khi thực tế là không có tệp nào có thể được ghi vào chúng. Điều này dẫn đến lỗi “Không còn dung lượng trên thiết bị” do hệ điều hành cố gắng lưu trữ bất kỳ dữ liệu nào trên các vị trí này nhưng không thành công.
Không có cách nào thực sự để khắc phục vấn đề này vì các thành phần xấu là kết quả của sự hao mòn vật lý của ổ cứng. Điều duy nhất bạn có thể làm là đánh dấu các thành phần xấu để chúng không còn được hệ thống tệp tham chiếu nữa..
Việc thực hiện việc này yêu cầu bạn phải khởi động từ CD trực tiếp vì bạn không thể thực hiện Kiểm tra hệ thống tệp trong ổ đĩa đang chạy. Khi bạn làm điều đó, chỉ cần sử dụng lệnh sau:
sudo fsck -vcck /dev/sda
Điều này thay thế /dev/sda bằng đường dẫn của ổ đĩa bạn muốn sửa chữa. Điều này sẽ tự động phát hiện tất cả các khối xấu trên ổ đĩa và đánh dấu chúng là không sử dụng được. Tuy nhiên, nó sẽ không cung cấp thêm dung lượng lưu trữ cho bạn, vì vậy hãy chuẩn bị dọn sạch một số tệp vô dụng để giải phóng dung lượng trên ổ đĩa.
Cách tốt nhất để khắc phục lỗi “Không còn dung lượng trên thiết bị” là gì?
Lý do thông thường khiến bạn gặp lỗi “Không còn dung lượng trên thiết bị” trên Ubuntu hoặc bất kỳ bản phân phối Linux nào khác là một tệp đã xóa vẫn đang được sử dụng bởi một quy trình đang chạy. Thao tác này sẽ dự trữ dung lượng lưu trữ đã bị tệp chiếm giữ, ngăn các hoạt động khác ghi dữ liệu vào không gian đó.
Khắc phục sự cố này cũng là cách dễ nhất vì tất cả những gì bạn cần làm là khởi động lại quy trình được đề cập. Tuy nhiên, các nguyên nhân khác gây ra lỗi không dễ giải quyết.
Cho dù ổ đĩa của bạn bị cản trở bởi các khối dữ liệu xấu hay đã hết inode, không có cách nào trực tiếp để khắc phục những sự cố này. Bạn phải xóa các tệp hiện có để nhường chỗ cho dữ liệu mới được ghi.
.