df hiển thị tất cả không gian đã lấy, nhưng du không thêm


28

Tôi đang gặp vấn đề với Ubuntu 12.04 LTS. Đây là lần thứ hai tôi gặp phải vấn đề này trong 3 tuần qua. Lần đầu tiên được mô tả trong câu hỏi đóng này trên StackOverflow . Các TL; DR phiên bản là tôi quản lý để sử dụng tất cả các inodes trên một hệ thống ext4 450g biên soạn và xây dựng stack Android ít hơn 20 lần.

Tôi nghĩ rằng tôi đã giải quyết vấn đề bằng cách định dạng lại đĩa là XFS để bộ lưu trữ inode có thể phát triển.

Sáng nay sau khi thực hiện xây dựng qua đêm, tôi chỉ còn dưới 1GB dung lượng trống. Không có gì trên máy này ngoài những gì cần thiết để xây dựng Android. Tôi đã thực hiện tổng cộng 5 bản dựng trên các nguồn nền tảng. Bản dựng tạo ra một loạt các tệp, sau đó tôi xóa chúng ngay sau đó make clean. Tôi thực sự không dưới 1GB nhưng các công cụ đang báo cáo theo cách đó. Tôi đã xóa một loạt các tệp tạm thời và có khoảng 40 GB "giải phóng". Vài giờ sau, chỉ cần nhàn rỗi, tôi đã trở lại dưới 1GB miễn phí.

Chạy Ubuntu từ ổ đĩa flash trả về giá trị sau cho phân vùng ...

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      468521456 468255460    265996 100% /media/f71c77eb-b4cc-

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda5      1691760 624214 1067546   37% /media/f71c77eb-b4cc-

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       447G  447G  260M 100% /media/f71c77eb-b4cc-

Đây là bằng chứng cho thấy có gì đó không ổn. Khi tôi chạy du(có và không có kích thước - ứng dụng) hoặc Trình phân tích sử dụng đĩa trực quan, tôi cho thấy rằng tôi thực sự chỉ sử dụng khoảng 35 GB hoặc hơn. 98,7% không gian được sử dụng là trong /home/eric, nhưng dukhông thêm vào đó. Sự khác biệt là giữa /home/eric/home/eric/android

nhập mô tả hình ảnh ở đây

Tôi đã đọc qua các câu hỏi có liên quan ở đây và trên SO và họ thường đề xuất các tệp đã bị xóa bởi các quy trình mở. Tôi đã khởi động lại vào ổ đĩa flash để chạy thử nghiệm này, vì vậy nó không nên mở tệp. FWIW, / tmp trống.

Có công cụ nào tôi có thể cài đặt trên ổ đĩa flash để khôi phục dung lượng 'bị mất' không? Tôi có thể cố gắng giải phóng bộ nhớ trên hệ thống và chạy nó ở đó, nhưng tôi cho rằng sẽ tốt hơn nếu làm điều này từ ổ đĩa flash.

Tôi có nên cấu hình hệ thống này theo một cách khác không? Tôi thà không làm một lau và cài đặt khác, nhưng tôi cần một hệ thống xây dựng Android bền vững.

FOLLOWUP - Tôi đã phải cài đặt tuần trước và cài đặt lại 12.04 để hoàn thành công việc. Khi tôi đi qua các bản dựng Android một lần nữa trong tuần này, tôi sẽ theo dõi cẩn thận việc sử dụng đĩa và cung cấp thông tin ở đây khi tôi tìm hiểu thêm.

Cảm ơn



@jokerdino Vâng, tôi đã làm theo chỉ dẫn trong chủ đề đó và một số chủ đề tương tự khác. Tôi khởi động lại hệ thống cũng như khởi động lại từ ổ đĩa flash. Sau khi khởi động lại, hệ thống vẫn hiển thị toàn bộ đĩa. Cảm ơn.
Eric Cloninger

Dữ liệu tệp trong Linux được tính tham chiếu do đó bạn không cần phải khởi động lại thường xuyên như trong Windows. Có lẽ bạn đã giữ trình giả lập chạy trong khi ghi đè lên các tệp dữ liệu của nó dưới mặt sau của nó?
thủy thủ

@EricCloninger Tôi phải thêm chính mình vào danh sách người dùng đã xảy ra vấn đề tương tự. Đây là câu hỏi của tôi khi sử dụng 12.10 và đây là câu hỏi của người dùng 11.04.
Lucio

Ngoài ra, sao chép và dán đầu ra của ls -lah ~paste.ubfox.com và liên kết nó trong câu hỏi của bạn.
Lucio

Câu trả lời:


19

Trên Oracle Linux, điều này xảy ra khi bạn có (rất nhiều tệp / lớn) bị xóa nhưng vẫn mở bằng một quy trình đang chạy. Sau đó dừng các quá trình hoặc khởi động lại máy giúp.


Làm việc cho tôi trên một máy chủ ôm các tệp nhật ký. Cảm ơn!
miccet

12
Sử dụng lsof +L1, để kiểm tra id quá trình và giết nó.
Jeff Tian

3

Gần đây tôi đã gặp phải điều này, và trong trường hợp của tôi fsckcần phải được chạy.

Tôi đã làm touch /forcefsck && rebootvà sau vài phút, máy chủ đã hoạt động trở lại và đột nhiên 6 GB bị mất của tôi được giải phóng.


1

Trước khi bạn đi xa ..... hãy đưa hệ thống xuống chế độ một người dùng và thực hiện FULL fsck (tôi thực sự có nghĩa là đầy đủ fsck -f /dev/sda5) của hệ thống tập tin và xem những gì nó hiển thị. Bạn có thể tìm thấy không gian dưới dạng các phần của các khu vực có vấn đề trên đĩa của bạn hoặc không khớp giữa phần được phân bổ và phần hiện diện trên đĩa.


sudo fsck -f / dev / sda5 từ ổ đĩa flash không làm gì vì ổ đĩa được định dạng XFS. Nó khuyên tôi nên sử dụng xfs_check . xfs_check / dev / sda5 không trả lại kết quả. xfs_V ngoặc / dev / sda5 đã chạy qua sửa chữa nhưng không báo cáo điều gì bất thường. Sau cả hai, tôi vẫn còn đầy đủ 99%. Thx
Eric Cloninger

1

Chúng tôi có thể thực hiện kiểm tra, ducho biết bạn có df10 GB dung lượng trống, trong khi nói 300 MB, bạn có thể viết một tệp (hoặc một số tệp) với kích thước khoảng 2 GB không? Nếu bạn có thể, điều đó có nghĩa là df chỉ đơn giản là sai (và thực tế không có vấn đề gì về 'không gian bị mất'). Nếu không, thì dulà sai (sẽ rất thú vị).


1

Tôi chưa tìm thấy nguyên nhân của vấn đề này, nhưng nó là duy nhất cho Ubuntu 12.04.

Chỉ cần thiết lập một máy chủ mới, tôi bắt đầu với Ubuntu 12.04 và chạy vào đây; du cho thấy khoảng 111 GiB sử dụng, trong khi df là khoảng 170 GiB.

Khởi động bằng systemrescuecd 3.3.0 và kiểm tra lại cho thấy sự khác biệt dưới 1 GiB.

Không thay đổi phân vùng và hệ thống tệp (nó là ext4), tôi đã chuyển các thư mục ubfox ra khỏi đó và cài đặt Debian 7.0. Một lần nữa, sự khác biệt giữa du và df là <1 GiB.

Với Ubuntu 10.04, trên cùng một phân vùng và ext4 fs:

Từ df -m /,

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2              2814679    407164   2264538  16% /

và từ du -mx,

tail -1 /root/diskuse 
406920  .

đủ gần


0

Hình ảnh bạn đã đăng đang cho bạn biết không gian đang được sử dụng : /home/eric. Có vẻ như bạn có một tệp rất lớn trong đó chiếm hết không gian, hoặc có thể là một số lượng lớn các tệp nhỏ hơn. Mở thư mục chính của bạn, đảm bảo hiển thị các tệp ẩn ( Ctrl+ Htrong Nautilus) và sắp xếp theo kích thước tệp.


0

Điều này thường được gây ra bởi các tệp trong một thư mục, cũng có một hệ thống tệp khác được gắn trên đó. Một cách khắc phục điển hình là khởi động với đĩa cứu hộ, hoặc trong chế độ người dùng duy nhất và làm trống các thư mục, đã xác minh rằng chúng không được sử dụng làm điểm gắn kết ( cat /proc/mountshoặc df -h).

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.