Disk-Usage

儘管有可用空間,但設備上沒有剩餘空間

  • November 25, 2020

我無法創建目錄,

$ mkdir 2groups2
mkdir: cannot create directory ‘2groups2’: No space left on device

我什至無法更改目錄

cd <TAB>

導致這個

$ cd -bash: cannot create temp file for here-document: No space left on device

同時,df報告超過 9Gb:

$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
udev            31428656        0  31428656   0% /dev
tmpfs            6288016     9080   6278936   1% /run
/dev/xvda1      60923900 51409376   9498140  85% /
tmpfs           31440072   276252  31163820   1% /dev/shm
tmpfs               5120        0      5120   0% /run/lock
tmpfs           31440072        0  31440072   0% /sys/fs/cgroup
tmpfs            6288016        0   6288016   0% /run/user/1000

如何解釋?怎麼辦?

df -i顯示為零:

$ df -i
Filesystem      Inodes   IUsed   IFree IUse% Mounted on
udev           7857164     397 7856767    1% /dev
tmpfs          7860018     488 7859530    1% /run
/dev/xvda1     7680000 7680000       0  100% /
tmpfs          7860018       1 7860017    1% /dev/shm
tmpfs          7860018       3 7860015    1% /run/lock
tmpfs          7860018      16 7860002    1% /sys/fs/cgroup
tmpfs          7860018       4 7860014    1% /run/user/1000

這是什麼意思?

索引節點是對磁碟內文件內容的引用。我喜歡把它們想像成文件頭——它們告訴作業系統文件的一些元數據以及文件包含的實際數據的位置。

在經典的 Unix 文件系統設計中,每個文件系統除了具有固定數量的數據空間外,還具有固定數量的 inode 空間。如果其中任何一個已滿,則將無法在該分區上創建新文件。這是一個非常好的頁面,它解釋了更多關於 inode 以及它們如何有用的資訊:http: //www.grymoire.com/Unix/Inodes.html

使用 inode 的一個範例是將兩個不同的文件指向相同的數據,也稱為硬連結。這以 inode 空間為代價節省了分區中的數據空間。

在 Linux 的ext2//文件系統系列中,ext3單位磁碟空間的 inode 比率可以在文件系統創建時指定,然後在該文件系統的剩餘生命週期內固定。如果 inode 用完了,可以通過擴展文件系統的總大小來獲得更多,但這可能效率低下。ext4

更現代的文件系統設計(如 XFS)將能夠按需動態創建新的 inode。這種機制的延伸範圍可能有也可能沒有一些限制,因此您應該確保了解您正在使用的文件系統類型的限制。

引用自:https://unix.stackexchange.com/questions/383681