디스크가 꽉 찼지만 사용된 공간을 찾을 수 없음(Ubuntu)

디스크가 꽉 찼지만 사용된 공간을 찾을 수 없음(Ubuntu)

30GB 드라이브를 갖춘 작은 Intel NUC가 있습니다. 내 문제는 드라이브가 꽉 찼는데 이유를 찾을 수 없다는 것입니다.

df다음을 신고하세요

Filesystem     1K-blocks      Used Available Use% Mounted on
udev              899412         0    899412   0% /dev
tmpfs             189284      2676    186608   2% /run
/dev/sda2       28414508  27751116         0 100% /
tmpfs             946404         0    946404   0% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
tmpfs             946404         0    946404   0% /sys/fs/cgroup
/dev/loop0           128       128         0 100% /snap/bare/5
/dev/loop1         56832     56832         0 100% /snap/core18/2128
/dev/loop2         56832     56832         0 100% /snap/core18/2246
tmpfs             946404         0    946404   0% /tmp
/dev/loop3        314880    314880         0 100% /snap/makemkv/381
/dev/loop4         66688     66688         0 100% /snap/gtk-common-themes/1515
/dev/loop5         63360     63360         0 100% /snap/core20/1169
/dev/loop6         63360     63360         0 100% /snap/core20/1081
/dev/loop7         33280     33280         0 100% /snap/snapd/13270
/dev/loop8        317184    317184         0 100% /snap/makemkv/385
/dev/loop9         33280     33280         0 100% /snap/snapd/13640
/dev/loop10        66816     66816         0 100% /snap/gtk-common-themes/1519
/dev/sda1         306584      5356    301228   2% /boot/efi
tmpfs             189280         4    189276   1% /run/user/1000

이는 약 14GB의 사용된 디스크 공간에 해당합니다.

달리기sudo lsof | grep REG | grep -v "stat: No such file or directory" | grep -v DEL | awk '{if ($NF=="(deleted)") {x=3;y=1} else {x=2;y=0}; {print $(NF-x) " " $(NF-y) } }' | sort -n -u | numfmt --field=1 --to=iec | tail -10

나는 몇 가지 중요한 프로세스가 포함된 목록을 받았습니다.

5,5M  /usr/lib/php/20190902/fileinfo.so
6,8M  /usr/lib/jellyfin/bin/libcoreclr.so
8,0M  /var/log/journal/6296b00d07874d0a9533eed0efb81840/user-1000.journal
8,2M  /usr/lib/jellyfin/bin/System.Private.Xml.dll
8,3M  /usr/lib/locale/locale-archive
8,9M  /usr/lib/jellyfin/bin/System.Private.CoreLib.dll
10M  /usr/lib/udev/hwdb.bin
24M  /snap/snapd/13640/usr/lib/snapd/snapd
27M  /usr/lib/x86_64-linux-gnu/libicudata.so.66.1
64M  /memfd:pulseaudio

실행 후 sudo du -sh / --exclude=disks --total총 13GB의 공간이 생겼습니다 .

따라서 기본적으로 시스템이 내 드라이브를 채우는 어딘가에서 누락된 것으로 보고하는 ~16GB를 파악하는 방법을 모르겠습니다.

보고서가 실제로 실행되는 방식입니다.

cd ~/ && touch example && echo "FooBar" > example
-bash: echo: write error: No space left on device

미리 감사드리며 어떤 아이디어라도 좋은 생각이 될 것입니다. 기본적으로 현재 작동하지 않는 장치가 있고 옵션이 부족합니다(기본적으로 사용해서는 안 되는 장치에 대해 완전히 다시 설치하거나 추가 구매). 더 이상 20GB 이상의 대용량 SSD)

답변1

"/" 파티션을 채우는 것을 찾으려고 시도할 수 있는 몇 가지 가능성은 다음과 같습니다.

  • lsof -nP +L1 # 삭제(링크 해제)되었지만 여전히 프로세스에 의해 열려 있어 여전히 dist를 차지하는 모든 파일을 나열해야 합니다.
  • 이 답변도 참조하십시오.https://unix.stackexchange.com/a/68532/27616몇 가지 추가 정보와 시도해 볼 사항을 제공합니다.
  • 또 다른 가능성: df -ih /이 파일 시스템에 "수백만" 개의 작은 파일이 없는지 확인(사용) /하십시오. 각 파일은 최소한 "소량"의 디스크를 차지합니다(보통 1개 이상의 inode를 차지하기 때문입니다. 파일 크기와 파일 시스템에 따라 다름). 이것은 합산될 수 있습니다... 점유된 최소 디스크 공간이 512바이트인 경우 각각 1바이트의 파일 100만 개가 있으면 여전히 100만 바이트 대신 5억 1200만 바이트를 차지하게 됩니다. df점유된 디스크 공간이 표시되고(전체 inode 공간 계산) du추가된 파일 크기가 표시됩니다(즉, 해당 파일의 내용만 표시되고 이 콘텐츠를 포함하는 inode가 차지하는 공간은 표시되지 않음).
  • 또 다른 가능성: 마운트된 파일 시스템이 일부 대용량 파일을 숨기고 있을 수 있습니다. 즉, 일부 파일은 마운트된 파일 시스템 "아래"에 있을 수 있습니다./tmp 목차/(파일 시스템을 마운트하기 위한 마운트 지점으로 사용되는 파일 시스템의 것 /tmp)? 마운트되지 않은 파일 시스템에 항목을 넣으면 /tmp이런 일이 발생할 수 있습니다 . 이를 확인하려면 /Linux에서 읽기 전용으로 다시 마운트(자유 사이클 장치 사용)한 다음(예: 마운트 지점 아래에 마운트 ) du drop을 사용하여 아래에 마운트된 다른 파일 시스템 (예: 파일 시스템) 으로 /mnt/readonlyroot/검색할 수 있습니다du -hs /mnt/readonlyroot내용을 . du -hxs /-x//tmp
    • 특정 마운트 지점에서 읽기 전용으로 마운트하는 명령(두 번째) /: 다음을 수행할 수 있습니다(제 기억으로는...지금은 Linux에서 확인할 수 없습니다).
      • mkdir -p /mnt/rootreadonly/디렉토리 마운트 지점 생성(아이러니하게도 "/" 파일 시스템 내부에 위치하게 됩니다...)
      • mount -o loop -o ro /dev/sda2 /mnt/rootreadonly("/" 파일 시스템을 읽기 전용으로 표시하려면 질문에 "/" 파일 시스템이 "/dev/sda2"에 있음을 표시했기 때문에 여기에 sda2를 지정하고 있습니다. 이 답변을 읽는 다른 사람들은 먼저 출력을 확인해야 합니다. 파일 시스템의 출처는 mount...)/

관련 정보