Không thể ghi vào đĩa nhưng đĩa không đầy


36

Tôi đang sử dụng Ubuntu 12.04 và không thể ghi vào bất kỳ tệp nào, ngay cả khi đã root hoặc thực hiện bất kỳ thao tác nào khác yêu cầu ghi. Không có bất kỳ quá trình nào cần phải viết, vì vậy tất cả đều thất bại. dfnói rằng tôi có nhiều phòng:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       30G   14G   15G  48% /
udev            984M  4.0K  984M   1% /dev
tmpfs           399M  668K  399M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm

Tất cả các kết quả tôi tìm thấy cho "không thể ghi vào đĩa" là về các đĩa đầy đủ hợp pháp. Tôi thậm chí không biết bắt đầu từ đâu. Vấn đề xuất hiện từ hư không sáng nay.

Mục nhật ký cuối cùng của PHP là:

thất bại: Không còn chỗ trống trên thiết bị (28)

Vim nói:

Không thể mở (tệp) để viết

Các ứng dụng khác cho lỗi tương tự.

Sau khi xóa ~ 1gb để chắc chắn, vấn đề vẫn còn. Tôi cũng đã khởi động lại.

df -i nói

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/xvda1     1966080 1966080      0  100% /
udev            251890     378 251512    1% /dev
tmpfs           255153     296 254857    1% /run
none            255153       4 255149    1% /run/lock
none            255153       1 255152    1% /run/shm

14
Vui lòng gửi đầu ra của "df -i".
EEAA

1
@EEAA đã chỉnh sửa. Bạn nói đúng, df -i nói 100%. Điều đó có nghĩa là gì? Tại sao nó sẽ khác?
felwithe

3
IIRC, quá nhiều tệp trong một thư mục sẽ có các triệu chứng tương tự nếu không giống hệt nhau. Những gì "quá nhiều" sẽ khác nhau giữa các hệ thống tập tin.
MSalters

Câu trả lời:


59

Bạn đã ra khỏi inodes. Có khả năng bạn có một thư mục ở đâu đó với nhiều tệp rất nhỏ.


9
Chỉ muốn thêm rằng tôi thậm chí không biết rm có thể thất bại. Đây là một nền giáo dục.
felwithe

2
@felwithe, tôi có thể tưởng tượng rằng nó find . -name sess\* -exec rm {} +sẽ làm việc.
Carsten S

3
@felwithe Những gì người khác đã đề xuất. rm có lẽ đã hoạt động tốt, nhưng cái vỏ đã mở rộng toàn *cầu thành quá nhiều dữ liệu và bị chặn trước khi nó kịp đến mức gọi rm.
một CVn

8
@CarstenS: Hoặc find . -name sess\* -deletetôi thấy dễ nhớ hơn và thường hiệu quả hơn.
MSalters

2
@Kaslai giới hạn không có RAM, nhưng giới hạn hệ thống ARG_MAX. Tiêu chuẩn POSIX không xác định chính xác cách thức đối số dòng lệnh được đo với ARG_MAX không may. Một số triển khai không có giới hạn và do đó không xác định ARG_MAX, nhưng đây không phải là một tùy chọn phổ biến vì nó khiến quá nhiều chương trình không thể biên dịch.
James Youngman

7

Rõ ràng, OP có câu trả lời cho vấn đề cụ thể của họ. Tuy nhiên, để đầy đủ, các triệu chứng của OP cũng có thể xảy ra nếu hệ thống tập tin chỉ được đọc lại. Điều này đã xảy ra với tôi khi sử dụng máy ảo Linux có bộ lưu trữ trên một hệ thống đĩa bị mắc phải các lỗi không liên tục hiếm gặp. Đôi khi, các lỗi sẽ khiến (các) hệ thống tập tin chỉ được đọc lại. Triệu chứng bên ngoài cuối cùng có thể quan sát được là các dịch vụ khác nhau trở nên không phản hồi khi RAM đầy (với đĩa ghi không thể xóa được).

Vào thời điểm đó, độ phân giải duy nhất là khởi động lại hệ thống (mất bất kỳ nhật ký bất thành văn nào có). Nỗ lực để vượt qua RW thất bại. (Thật không may, tôi không nhớ lại các thông báo lỗi được trả lại khi thử các kết quả này.)

Vì vậy, ..., không phải vấn đề của OP, nhưng một người khác đến trang này có thể được hưởng lợi từ thông tin này.


5
Không thực sự; khi hệ thống tập tin đã được đọc lại chỉ đọc bạn sẽ gặp một lỗi cho biết hệ thống tập tin chỉ được đọc, không hết dung lượng.
psusi

1
@psusi: Tôi thì không. Tôi đã nhận được nhiều lỗi khác nhau, bao gồm cả "hệ thống tập tin đầy đủ". Nếu điều đó đã thay đổi trong hai hoặc ba năm qua, đó sẽ là một điều tốt.
Tháp Eric

1
Tôi đã cố gắng di chuyển một tệp vào hệ thống tệp ZFS chỉ đọc trên Linux vào ngày khác. Các lỗi khá rõ ràng nói "hệ thống tập tin chỉ đọc".
một CVn

Không; đã như vậy trong hơn 30 năm. Một ghi vào một fs chỉ đọc trả về -EROFS; một ghi vào một fs đầy đủ trả về -ENOSPC.
psusi

4
@psusi: Tôi thấy rằng bạn sống trong vũ trụ giả tưởng nơi các lập trình viên luôn làm điều đúng đắn thay vì tạo ra các thông báo lỗi của riêng họ. Tôi dường như không sống ở đó.
Tháp Eric
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.