デバイスに空き容量がないのに

デバイスに空き容量がないのに

SSH経由でアクセスした画面が壊れたラップトップ。sudo apt-get autoremoveコマンドを実行すると次のエラーが発生します。

cp: error writing ‘/tmp/mkinitramfs_zN6ZvT//lib/x86_64-linux-gnu/libpthread.so.0’: No space left on device
cp: failed to extend ‘/tmp/mkinitramfs_zN6ZvT//lib/x86_64-linux-gnu/libpthread.so.0’: No space left on device
cp: error writing ‘/tmp/mkinitramfs_zN6ZvT//sbin/modprobe’: No space left on device
cp: failed to extend ‘/tmp/mkinitramfs_zN6ZvT//sbin/modprobe’: No space left on device
cp: error writing ‘/tmp/mkinitramfs_zN6ZvT//sbin/rmmod’: No space left on device
cp: failed to extend ‘/tmp/mkinitramfs_zN6ZvT//sbin/rmmod’: No space left on device

他のさまざまなコマンドでも同様のエラーが発生しますが、gpartedラップトップの(単一の)パーティションに20GB以上の空き容量があることがわかります。以下は出力です。df

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev            502644    484  502160    1% /dev
tmpfs           505433    503  504930    1% /run
/dev/sda1      7331840 214087 7117753    3% /
none            505433      2  505431    1% /sys/fs/cgroup
none            505433      3  505430    1% /run/lock
none            505433      4  505429    1% /run/shm
none            505433     16  505417    1% /run/user
overflow        505433    401  505032    1% /tmp

そして:

$ df -k
Filesystem     1K-blocks     Used Available Use% Mounted on
udev             2010576       12   2010564   1% /dev
tmpfs             404348     1284    403064   1% /run
/dev/sda1      115247656 83994028  25809372  77% /
none                   4        0         4   0% /sys/fs/cgroup
none                5120        0      5120   0% /run/lock
none             2021732      204   2021528   1% /run/shm
none              102400       16    102384   1% /run/user
overflow            1024     1024         0 100% /tmp

を実行した後にエラーが発生しましたsudo apt-get upgrade

答え1

過去のある時点で、ルート ファイルシステムがいっぱいになり、ブートを成功させるために小さな一時的な /tmp が作成されました。この小さな /tmp は削除されなかったため、現在、/ にスペースがあるにもかかわらず、小さな /tmp がいっぱいになり、問題が発生しています。これをアンマウントするだけです。

sudo umount /tmp

そしてもちろん、 / が可能な限り清潔であるようにしてください。


通常、/tmp はルート (/) ファイルシステムの一部に過ぎず、ルート ファイルスペースが不足している (何らかのデーモンが作成する場合) などの特別な状況がない限り、別個のマウントは必要ありません。また、/ が非常に低速なメディア (USB フラッシュ スティックなど) 上にあり、限られたスペースであってもパフォーマンスのために RAM に /tmp を配置したい場合もあります。

答え2

ディスクがいっぱいではないのにいっぱいであることを示すエラーが表示されるというこの問題が発生した場合は、inode の使用率も必ず確認してください。

df -iを使用すると、各マウント ポイントの使用済み/使用可能な inode に関する簡単なレポートを取得できます。

inode が非常に少なくなっている、または不足していることがわかった場合、次のステップは、どのフォルダーが inode を最も多く保持しているかを特定することです。各ファイルとディレクトリは inode を使用するため、すべての inode を使用している数十万の小さなファイルまたは空のファイルを含むフォルダーがある可能性があります。通常、疑わしいのは、temp ディレクトリ、Web サイトのキャッシュ ディレクトリ、パッケージ キャッシュ ディレクトリなどです。

最も多くの inode が使用されているサブディレクトリの順序付きリストを取得するには、次のコマンドを使用します。

sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

これをルート フォルダーで実行し、原因が見つかるまでドリルダウンします。

答え3

あなたにはたくさんの未使用のファイル次のように削除します:

sudo apt autoremove

df次にコマンドでスペースを再確認します

答え4

フォルダーあたりの inode の数を確認するには:

du * -s --inodes

関連情報