Điểm:4

Thiếu ~900GB dung lượng ổ cứng

lá cờ ae

Tôi có một ổ WD M.2 2TB (1,8T) dường như bị thiếu vài trăm GB dung lượng lưu trữ nhưng tôi không thể tìm ra vị trí của nó hoặc thứ gì đang chiếm hết dung lượng của nó. Điều này cũng xảy ra trên ổ SSD Samsung SATA của tôi, vì vậy tôi không nghĩ nó có liên quan gì đến chính ổ đĩa. Đây là phân vùng duy nhất trên một trong hai ổ đĩa này.

df nói rằng tôi đang sử dụng 1,3T dữ liệu

trever@server:~$ df -h
Kích thước hệ thống tệp được sử dụng Sẵn có Sử dụng % Được gắn trên
udev 32G 0 32G 0%/dev
tmpfs 6.3G 5.7M 6.3G 1%/lần chạy
/dev/nvme0n1p2 1.8T 1.3T 477G 73%/

Trình phân tích sử dụng đĩa (baobab) cho biết tôi đang sử dụng ~850GB dung lượng, theo tôi, điều này có vẻ chính xác hơn những gì tôi mong đợi. Tôi đã chạy cái này với quyền root (sudo bao báp) và để nó quét ổ đĩa gốc / và đây là những gì tôi đã trở lại với

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

Và sau đó, trình giám sát hệ thống cũng cho biết tôi đang sử dụng 1.4T, điều này không sao cả. Tôi hiểu rằng có thể có một số cách làm tròn và/hoặc cách tính dung lượng ổ đĩa.

Việc sử dụng bộ nhớ 800-900GB có ý nghĩa hơn đối với tôi, tôi đã kiểm tra những thứ như dung lượng dành riêng:

trever@server:~$ sudo tune2fs -l /dev/sda1 | grep -i "đếm khối"
[sudo] mật khẩu cho trever: 
Số khối: 976754176
Số khối dành riêng: 48837708

Tôi cũng đã kiểm tra kích thước của /var/log (20GB) và /var/cache/apt/archives/ (380 MB) và tôi vẫn không biết hàng trăm GB bị thiếu ở đâu.

Có thêm đề xuất nào về những gì có thể chiếm không gian này không?

Cập nhật: Ngày càng có nhiều không gian bị thiếu theo thời gian. Đây là nơi tôi đang ở bây giờ:

trever@server:~$ df -h
Kích thước hệ thống tệp được sử dụng Sẵn có Sử dụng % Được gắn trên
udev 32G 0 32G 0%/dev
tmpfs 6.3G 5.3M 6.3G 1%/lần chạy
/dev/nvme0n1p2 1.8T 1.6T 157G 92%/

Và đây là những gì tôi có thể giải thích cho:

root@server:~# du -cha --max-depth=1 --exclude=/Volumes/* / | grep -E "M|G"
42 triệu /tập lệnh
du: không thể truy cập '/proc/44457': Không có tệp hoặc thư mục như vậy
du: không thể truy cập '/proc/44535': Không có tệp hoặc thư mục như vậy
du: không thể truy cập '/proc/44586/task/44586/fd/4': Không có tệp hoặc thư mục như vậy
du: không thể truy cập '/proc/44586/task/44586/fdinfo/4': Không có tệp hoặc thư mục như vậy
du: không thể truy cập '/proc/44586/fd/3': Không có tệp hoặc thư mục như vậy
du: không thể truy cập '/proc/44586/fdinfo/3': Không có tệp hoặc thư mục như vậy
94G /bình
du: không thể truy cập '/run/user/1000/gvfs': Quyền bị từ chối
5,3M/lần chạy
2.1G /tệp hoán đổi
183M/khởi động
14 triệu /v.v.
538G /đế
202G/nhà
8,9G /usr
6.0G / tích tắc
1,8G /gốc
852G /
tổng cộng 852G

tôi đã làm một fsck và nó có vẻ ổn. Tôi không chắc điều gì đang ăn hết không gian của mình một cách kỳ diệu nhưng nó khá đáng lo ngại.

lá cờ in
Bạn đang sử dụng hệ thống tệp nào trên ổ SSD của mình? Nếu đó là ZFS, bạn có thể có rất nhiều dung lượng bị ràng buộc trong ảnh chụp nhanh
trever avatar
lá cờ ae
Xin lỗi, đáng lẽ phải đề cập rằng, tôi đang sử dụng EXT4.
lá cờ in
Tôi tự hỏi bạn có bao nhiêu "tệp nhỏ" vì điều này có thể khiến một số lượng lớn các khối gần như trống. Sự khác biệt giữa âkích thước tệpâ và âkhông gian mà tệp sử dụngâ thường không phải là vấn đề mà mọi người thấy cho đến khi họ bắt đầu làm việc với các thiết bị lưu trữ nhiều TB
lá cờ za
Đã quá lâu để nhớ chi tiết chính xác, tôi đã gặp sự cố tương tự với các bản phát hành trước ngày 20.04, ba lần. Đã từng là một vấn đề phân vùng. Đã từng là một tập tin kỳ lạ. Một lần cũng không, và tôi không thể tìm ra giải pháp nào, không ai giúp đỡ. Tôi không còn lựa chọn nào khác ngoài việc thực hiện cài đặt thủ công, mới. Quá trình cài đặt mới cần khoảng 20 phút và đã giải quyết được mọi vấn đề. lol, kinh nghiệm có giá trị.
oldfred avatar
lá cờ cn
Bạn đã đổ rác chưa? Dọn dẹp nhà cửa? Một số công cụ hiển thị tổng số có và những công cụ khác không có. Tôi thích các công cụ dòng lệnh như df, du (hoặc ncdu) & lsblk và sau đó là gparted nếu sử dụng GUI. Làm cách nào mà /var nhận được 85GB? /var của tôi trong Kubfox 20.04 là 800MB.
lá cờ cc
Kiểm tra những gì dưới bất kỳ điểm gắn kết quá. Xem https://unix.stackexchange.com/questions/4426/access-to-original-contents-of-mount-point
nobody avatar
lá cờ gh
`tìm thấy` làm ơn.
heynnema avatar
lá cờ ru
Ổ đĩa có bảng phân vùng MBR (dos) hay GPT không? Xem `sudo fdisk -l`. Báo cáo lại. Bắt đầu nhận xét cho tôi bằng @heynnema nếu không tôi sẽ nhớ chúng.
trever avatar
lá cờ ae
@oldfred - vâng, tôi đã dọn sạch thùng rác và mọi thứ tôi có thể tìm thấy. `/var` lớn là do Docker xuất hiện.
trever avatar
lá cờ ae
@nobody - https://gist.github.com/Treverr/79cfc04baac54db0a3dd1e97b1b03fe7
trever avatar
lá cờ ae
@heynnema - GPT (https://gist.github.com/Treverr/74b0bebf551e3b0cd187823fc08a995b)
Robert Riedl avatar
lá cờ us
bạn có sử dụng tệp thưa thớt không?
Satoshi Nakamoto avatar
lá cờ lc
Tôi không nghĩ là có thiếu bất cứ thứ gì với `df -h` nó nói rằng CÓ 477G CÓ SẴN. Bạn đang đề cập đến không gian bất thường chiếm SATA, có thể đó là vấn đề giữa nhà sản xuất và khả năng xử lý trình điều khiển này của Ubuntu. Trước đây như thế nào?
trever avatar
lá cờ ae
@RobertRiedl Tôi không ở ổ đĩa này
trever avatar
lá cờ ae
@ Tyþë-à - Điều tôi thấy là dung lượng Đà SỬ DỤNG trừ đi dung lượng của ổ đĩa (1,8T) không gần với dung lượng khả dụng đang báo cáo. Nó giảm gần 500GB. Tôi thấy điều tương tự trên 2 ổ đĩa khác nhau khi tôi chuyển từ ổ đĩa SATA sang ổ đĩa NVMe M.2.
Satoshi Nakamoto avatar
lá cờ lc
Chắc chắn như vậy bạn đã làm sai. Có hai loại dữ liệu, MiB (megabibyte) và MB (megabyte), trình điều khiển của bạn sẽ không bao giờ chính xác là 1,8TB do chuyển đổi đó.
Satoshi Nakamoto avatar
lá cờ lc
Ngoài ra, tôi thấy rằng /udev và tmpfs chiếm 38 GB và tính tổng là 477 GB + 38 GB = 515 GB. Tôi tin rằng bạn đã có câu trả lời của bạn
ExploitFate avatar
lá cờ zm
Bạn có thể chạy `fsck` và thêm đầu ra cho câu hỏi không?
trever avatar
lá cờ ae
@ExploitFate Gần đây tôi đã chạy `fsck` và hệ thống tệp ở trạng thái tốt. Tôi có thể chạy nó một lần nữa. Nhưng hiện tại `df` đang hiển thị rằng tôi chỉ có 25 GB khả dụng và tôi vẫn không thể hiểu tại sao
trever avatar
lá cờ ae
Bất cứ ai có ý tưởng nào khác? Không có gì gợi ý cho đến nay đã làm được bất cứ điều gì và tôi hiện có gần 1TB dung lượng bị thiếu. Một cái gì đó là sai nghiêm trọng.
trever avatar
lá cờ ae
@SatoshiNakamoto không chắc tôi hiểu ý của bạn. Ví dụ: bây giờ `du` thêm tối đa 852G và `df` cho biết 1.6T đã được sử dụng, tức là gấp đôi nhưng tôi vẫn không thể tìm ra 800GB ở đâu.
Robert Riedl avatar
lá cờ us
Tôi vẫn nghĩ rằng điều này bằng cách nào đó có liên quan đến docker cách nó xử lý các tệp ..
trever avatar
lá cờ ae
Bất kỳ ý tưởng làm thế nào tôi có thể kiểm tra lý thuyết này/xác nhận nó? Dừng tất cả các dịch vụ docker của tôi?
Điểm:2
lá cờ in

Giả thuyết: đã xóa nhưng vẫn mở tệp

Với thông tin được cung cấp cho đến nay và gợi ý về sự hiện diện của một lượng lớn tệp liên quan đến docker, tôi nghi ngờ điều này là do các tệp đã xóa nhưng vẫn mở, đó là các tệp được tạo bởi một chương trình, sau đó là chương trình xóa đường dẫn hệ thống tệp trong khi vẫn mở bộ mô tả tệp.

Đây có thể là kết quả của hoạt động Docker trên hệ thống tệp.

nguyên tắc của giải pháp

  • Hiển thị các tệp đã xóa vẫn được các quy trình tham chiếu (xem bên dưới để biết cách thực hiện).
  • Lý tưởng nhất là tiết lộ tên và/hoặc ID quy trình để bạn có gợi ý về những gì đang xảy ra.
  • Đóng các quy trình đó, quan sát rằng không gian được giải phóng.
  • Nếu vẫn thất bại, chỉ cần khởi động lại máy. Nếu không gian được giải phóng, điều này phù hợp với giả thuyết.

Làm thế nào để tiết lộ thông tin

Các lệnh bên dưới sẽ kiểm tra giả thuyết bằng cách tìm và hiển thị không gian nào được sử dụng bởi tệp nào.

cái nhìn đầu tiên

Để có cái nhìn cơ bản, bạn có thể đưa ra điều này:

lsof -n | egrep -w "đã xóa|^LỆNH"

Nhưng điều này cũng sẽ liệt kê rất nhiều tệp giả chỉ trong bộ nhớ không chiếm bất kỳ dung lượng lưu trữ thực tế nào.

Ví dụ:

LỆNH PID TID TASKCMD NGƯỜI DÙNG LOẠI FD KÍCH THƯỚC THIẾT BỊ/TẮT TÊN NÚT
Xorg 1183 root 78u REG 0,1 4 2058 /memfd:xshmfence (đã xóa)
Xorg 1183 root 85u REG 0,1 4 7182 /memfd:xshmfence (đã xóa)
Xorg 1183 root 92u REG 0,1 4 7137 /memfd:xshmfence (đã xóa)
Xorg 1183 root 94u REG 0,1 4 7870 /memfd:xshmfence (đã xóa)

Danh sách đơn giản được lọc

Bộ lọc này và chủ yếu hiển thị các tệp thực:

lsof -F "sn" -lnPX -M | sed -n 's|^n/|/|p' | đã xóa grep | egrep -v '^/(dev/shm|memfd:|proc)' | LC_ALL=C sắp xếp -n | duy nhất

Ví dụ:

/tmp/#someinodenumber (đã xóa)

Thông tin đầy đủ, với kích thước, quy trình và tên nhiệm vụ

Điều này thú vị hơn: nó sẽ liệt kê tất cả các tệp cùng với dung lượng mà chúng chiếm theo byte và hơn thế nữa.

Đầu tiên, phần chậm, thu thập dữ liệu

# Bạn có thể muốn chạy phần này với quyền root để đảm bảo tất cả được báo cáo
lsof -F "ctsupMin" -lnPX -M >|/tmp/lfosoutput 

Sau đó xử lý và định dạng cho hiển thị đẹp, đầy đủ và sắp xếp theo kích thước tăng dần

# Có thể chạy như người dùng thông thường, không cần root
{ echo "SIZE^UID^PID^TÊN QUY TRÌNH^TÊN NHIỆM VỤ^INODE^PATH"
</tmp/lfosoutput \
python3 -c $'nhập sys; f={}
def g(c): return f.get(c,"(unknown)")
cho dòng trong sys.stdin:
 c=dòng[0] ; r=dòng[1:].rstrip() ; f[c]=r
 nếu c=="n" và f["t"]=="REG" \
    và "(đã xóa)" trong f["n"] \
    chứ không phải f["n"].startswith("/memfd:") \
    chứ không phải f["n"].startswith("/dev/shm") :
  print(f'\''{g("s")}^{g("u")}^{g("p")}^\"{g("c")}\"^\"{ g("M")}\"^{g("i")}^{g("n")}'\'')
  f={}' \
| LC_ALL=C sắp xếp -n | duy nhất
echo "KÍCH THƯỚC^UID^PID^TÊN QUY TRÌNH^TÊN NHIỆM VỤ^INODE^PATH"
} | cột -t -s '^'

Đầu ra mẫu: một tệp 36 megabyte được Firefox sử dụng

KÍCH THƯỚC TÊN QUY TRÌNH PID UID TÊN NHIỆM VỤ INODE PATH
36012032 1234 12345 "Công ty web bị cô lập" "StyleThread#2" 1234567 /tmp/mozilla-temp-12345 (đã xóa)
KÍCH THƯỚC TÊN QUY TRÌNH PID UID TÊN NHIỆM VỤ INODE PATH

(Thật ra có nhiều dòng như thế này, đây chỉ là dòng mẫu thôi.)

Kiểm tra xem tập lệnh có thực sự tiết lộ các tệp đó hay không bằng cách tạo một tệp

Trong một thiết bị đầu cuối khác, sao chép-dán cái này:

# Chạy trình thông dịch tương tác python
trăn3
# Bây giờ trong Python
n="/tmp/whatever_file_name_you_want"
f=open(n,mode='a')
nhập hệ điều hành
os.unlink(n)
f.write("một số câu")
f.flush()
# Đừng thoát ngay bây giờ nếu không tập tin sẽ thực sự biến mất

Trong thiết bị đầu cuối đầu tiên, bạn có thể chạy cả hai bước trên (lsof chậm sau đó là phần định dạng). Và miễn là quá trình python ở trên còn hoạt động, dòng này sẽ được báo cáo:

KÍCH THƯỚC TÊN QUY TRÌNH PID UID TÊN NHIỆM VỤ INODE PATH
13 1000 1387343 "python3" "gdbus" 1308894 /tmp/whatever_file_name_you_want (đã xóa)
KÍCH THƯỚC TÊN QUY TRÌNH PID UID TÊN NHIỆM VỤ INODE PATH

Sau đó, bạn có thể thoát trình thông dịch python ở trên (nhấn Kiểm soát-D hoặc gõ thoát(0)). Nếu bạn chạy cả 2 phần (phần lsof chậm thì phần định dạng) bạn sẽ thấy file test không còn xuất hiện nữa.

Tập lệnh ở trên có thể được sửa đổi để ghi lượng dữ liệu khổng lồ (như hàng trăm gigabyte) và sử dụng các công cụ thông thường của bạn, bạn sẽ thấy rằng không gian thực sự được giải phóng chỉ sau khi quá trình tạo đã đóng bộ mô tả tệp. Kết thúc quá trình là đủ để đảm bảo đóng bộ mô tả tệp.

Quay lại trường hợp của bạn

Chạy cái này, rất có thể bạn sẽ thấy tên quy trình, tên tác vụ và tệp. Một số tệp lớn như hình ảnh mà Docker đã tải xuống từ mạng hoặc một số lượng lớn các tệp nhỏ từ Docker một lần nữa.

Hoặc một cái gì đó khác.

Xin vui lòng cho biết nếu điều này giúp bạn.

Robert Riedl avatar
lá cờ us
không phải việc khởi động lại đơn giản cũng loại bỏ các tệp đang mở thực sự bị xóa sao? hoặc điều này có hành vi khác với docker không?
mike mcleod avatar
lá cờ cn
Tôi nhận được: **lsof: CẢNH BÁO: không thể stat() hệ thống tệp nsfs /run/docker/netns/f91a371e0e9d** vì vậy điều này không thực sự đưa ra câu trả lời. Nhưng có vẻ như một vấn đề về docker; thử trang web docker. Ngoài ra, tôi có các tệp ở trạng thái này.Phải có cách nào từ những người Ubuntu để xóa các tệp này?
mike mcleod avatar
lá cờ cn
Tôi đã tìm thấy **/tmp/.org.chromium.Chromium.XXXXX** nhưng khi tôi đóng chrome thì nó biến mất! Hãy coi chừng!
trever avatar
lá cờ ae
Cảm ơn vì những thông tin! Vì vậy, tôi đã chạy `lsof` và trong khi tôi nhận được một loạt hệ thống tệp `không thể stat() nsfs`, tôi chỉ nhận được 2 tệp thực tế khác: `/home/trever/.local/share/gvfs-metadata/root (đã xóa)` và `/home/trever/.local/share/gvfs-metadata/root-5f2ee275.log (deleted)` cả hai đều nhỏ. Bạn có mong đợi sẽ có nhiều hơn nữa hay bạn nghĩ rằng vấn đề docker là thủ phạm ở đây?
lá cờ in
`gvfs-metadata` không liên quan. Thông báo `không thể thống kê() hệ thống tệp nsfs` thực sự có nghĩa là bạn đang thiếu thông tin. Bạn đã thực hiện `lsof` với quyền root chưa?
trever avatar
lá cờ ae
À tôi không có. Tôi đã làm lại tất cả và đây là những gì tôi nhận được: https://Gist.github.com/Treverr/98137ab1cdc754dcef1b7d6dad6c937c
trever avatar
lá cờ ae
@StéphaneGourichon Bạn có ý tưởng nào khác không? Bây giờ tôi có gần 1TB dung lượng bị thiếu. Một cái gì đó đang ăn hết "không gian" như điên
lá cờ in
Dựa trên ý chính bạn đã xuất bản, kích thước của các tệp bị xóa khá nhỏ, vì vậy tôi có thể nói rằng giả thuyết đó chưa được xác nhận. Bạn có đủ khả năng để dừng và khởi động các dịch vụ Docker và xem liệu nó có lấy lại dung lượng không? Để khởi động lại máy và xem nó có lấy lại dung lượng không? Đây là hệ thống tập tin nào (ví dụ: cat `/proc/mounts`) -- cf. nhận xét của matigo nó có thể là một nguyên nhân khác.
trever avatar
lá cờ ae
@StéphaneGourichon- Cảm ơn bạn đã liên hệ lại với tôi! Vì vậy, tôi đã thử điều đó, tôi đã dừng và vô hiệu hóa hệ thống docker và khởi động lại và nó không trả lại cho tôi bất kỳ khoảng trống nào. Tôi thậm chí đã đi xa đến mức gỡ cài đặt hoàn toàn Docker và khởi động lại, điều tương tự. Đây là những gì tôi nhận được cho `cat /proc/mounts` Một lần nữa xin cảm ơn! https://gist.github.com/Treverr/a250ebe9041b2939c873b1c167749b4f

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.