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のスペースがありました。
したがって、基本的に、システムがドライブをいっぱいにするどこかで欠落していると報告する〜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
- 特定のマウントポイントから読み取り専用でマウントするコマンド(2番目)
/
:mkdir -p /mnt/rootreadonly/
ディレクトリマウントポイントの作成mount -o loop -o ro /dev/sda2 /mnt/rootreadonly
("/" ファイルシステムを読み取り専用として表示するには、質問に "/" ファイルシステムが "/dev/sda2" にあることを示したので、ここで sda2 を指定しています。確認する必要がありますmount
。/
- 特定のマウントポイントから読み取り専用でマウントするコマンド(2番目)