ディスクがいっぱいですが、使用済み領域がどこにあるのかわかりません (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

これを計算すると、使用済みディスク容量は約 14 GB になります。

ランニング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 になります。

つまり、基本的に、システムがドライブのどこかにあると報告している不足している約 16 GB がどこにあるのかを調べる方法がわかりません。

レポートは実際にはそのように動作し、実行されています

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

よろしくお願いします。どんなアイデアでも良いのですが、基本的に、現時点では使用できないデバイスがあり、選択肢がほとんどありません (基本的に、クリーン再インストール/20 GB 以上使用しないデバイス用のより大きな SSD を購入する)

答え1

「/」パーティションを埋めているものを見つけるためのいくつかの可能性:

  • lsof -nP +L1 # 削除された(リンク解除された)が、プロセスによってまだ開かれているため、dist を占有しているすべてのファイルをリストする必要があります。
  • 次の回答も参照してください:https://unix.stackexchange.com/a/68532/27616いくつかの追加情報と試してみるべきことが記載されています
  • 別の可能性: df -ih /そのファイルシステムに「数百万」の小さなファイルがないかどうか ( )を確認してください/。各ファイルは少なくとも「少量」のディスク容量を占有します (通常、少なくとも 1 つの inode を占有するためで、そのサイズはファイル サイズとファイルシステムによって異なります)。これは積み重なる可能性があります... 占有される最小ディスク容量が 512 バイトの場合、1 バイトのファイルが 100 万個あると、100 万バイトではなく 512 百万バイトを占有することになります。 は占有されdfているディスク容量 (完全な inode 容量がカウントされます) を表示しますが、duは追加されたファイル サイズ (つまり、それらのファイルの内容のみで、この内容を含む inode が占有する容量ではありません) を表示します。
  • もう一つの可能​​性は、マウントされたファイルシステムに隠された大きなファイルが存在する可能性があるということです。つまり、マウントされたファイルシステムの「下」にいくつかのファイルが存在する可能性があります(おそらく、マウントされたファイルシステムに大量の大きなファイルを置いたのでしょう)。/tmp ディレクトリ(ファイルシステム内にあり//tmpファイルシステムをマウントするためのマウント ポイントとして使用されるもの) ですか? これは/tmp、ファイルシステムがマウントされていないときにそこに何かを置いた場合に発生する可能性があります。 これを確認するには、Linux で、/(空きループ デバイスを使用して) 読み取り専用としてどこかに再マウントし (マウント ポイントの下にマウントするなど/mnt/readonlyroot/)、 を使用してそれを参照し、#du -hs /mnt/readonlyrootと比較します。これにより、du が の下にマウントされた別のファイルシステム (たとえば、ファイルシステム)に降りるのを防ぐことができます。 du -hxs /-x//tmp
    • あるマウント ポイントの下に読み取り専用としてマウントする (2 回目) コマンド/: 次のように実行できます (記憶が正しければ... 現時点では Linux で確認できません):
      • mkdir -p /mnt/rootreadonly/ディレクトリのマウント ポイントを作成します (皮肉なことに、これは "/" ファイルシステム内にあります...)
      • mount -o loop -o ro /dev/sda2 /mnt/rootreadonly(「/」ファイルシステムを読み取り専用として表示するためです。質問では「/」ファイルシステムが「/dev/sda2」にあると示されているため、ここでは sda2 を指定しています。この回答を読んでいる他の人は、まず の出力をチェックして、ファイルシステムmountがどこから来ているのかを確認する必要があります/...)

関連情報