檔案及其名稱所佔用的實體磁碟空間

檔案及其名稱所佔用的實體磁碟空間

在將大量檔案從 Linux Redhat 工作站傳輸到FAT32格式化的外部硬碟(WD 2 TB由 Mac 磁碟實用程式格式化)時,我遇到了磁碟上沒有足夠空間的錯誤。但我檢查了仍然有~700 GB剩餘的磁碟空間,所以我猜我由於檔案名稱太長而耗盡了磁碟空間(不確定?)?如何檢查?

我的外部硬碟詳細資料是

/dev/sdc1 on /media/GUDDULINUX3 type vfat (rw,nosuid,nodev,relatime,uid=988,gid=2000,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,s

目前,每個目錄中都有~545一些目錄,其中包含文件之間的任何內容~7000。每個文件都是一個大小為(用 du -sh 檢查)或(大約各一半)~11000的二進位文件,名稱類似於(字元長)。檔案大小看起來不錯,因為它們應該是帶有浮點數的二進位檔案。~32K96KXC6_9k.131_132.12.2012.210.s329800024000

有沒有可能還有其他問題?不幸的是,我無法檢查目錄消耗的確切磁碟空間,嘗試du -sh需要很長時間。

編輯1- 我使用 Mac 磁碟實用程式來驗證外部硬碟,它顯示 - 11361590 files, 1076797472 KiB free (33649921 clusters)

編輯2-

按照 Angelo 的建議,我在連接到我的筆記型電腦(mac)的外部硬碟上df -h進行了嘗試。df -i看起來我已經用完了 中的可用索引節點/Volumes/GUDDULINUX3。關於做什麼的任何建議 - 如果我將每個目錄的tar小檔案放在一個tar檔案中,我會獲得索引節點嗎?我應該移動到NTFS格式化磁碟嗎?

avinash$ df -h
Filesystem                          Size   Used  Avail Capacity  iused   ifree %iused  Mounted on
/dev/disk0s2                       233Gi  216Gi   17Gi    93% 56587186 4482254   93%   /
devfs                              187Ki  187Ki    0Bi   100%      646       0  100%   /dev
map -hosts                           0Bi    0Bi    0Bi   100%        0       0  100%   /net
map auto_home                        0Bi    0Bi    0Bi   100%        0       0  100%   /home
/dev/disk1s1                       1.8Ti  836Gi  1.0Ti    45%        0       0  100%   /Volumes/GUDDULINUX3

avinash$ df -i
Filesystem                        512-blocks       Used  Available Capacity  iused   ifree %iused  Mounted on
/dev/disk0s2                       488555536  452185504   35858032    93% 56587186 4482254   93%   /
devfs                                    373        373          0   100%      646       0  100%   /dev
map -hosts                                 0          0          0   100%        0       0  100%   /net
map auto_home                              0          0          0   100%        0       0  100%   /home
localhost:/rGEmV8JCfpffeQBEQFAlLe  488555536  488555536          0   100%        0       0  100%   /Volumes/MobileBackups
/dev/disk1s1                      3906009792 1752414720 2153595072    45%        0       0  100%   /Volumes/GUDDULINUX3

這些是磁碟連接到我的 Linux 工作站的結果,它不顯示 inode 資訊。

seismo82% df -h /media/GUDDULINUX3/ 
Filesystem Size Used Avail Use% Mounted on 
/dev/sdc1 1.9T 836G 1.1T 45% /media/GUDDULINUX3 

seismo82% df -i /media/GUDDULINUX3/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sdc1           0     0     0     - /media/GUDDULINUX3

編輯3-

似乎inode事情不適用於FAT32.我認為問題在於FAT32目錄中可以有多少文件有一個下限,低於~65k取決於文件​​名的上限。首先,我在 ext HDD 中壓縮了許多現有的文件,這應該釋放了很多inodes(或FAT32同等的)。但仍然移動大目錄(它有~23k檔案)顯示“設備上沒有空間”錯誤。然後,我沒有移動單個文件,而是製作了目錄的 tar 並將其移至外部磁碟!嘗試將其解壓縮到擴充磁碟中時再次出現錯誤。所以,我想我遇到了目錄中文件數量的限制。看w3dk對此的評論 每個目錄的最大檔案數

我檢查了在移動時報告錯誤的目錄。該限制似乎是16383檔案名稱包含29字元的檔案和21843檔案名稱包含20字元的檔案。理論上,限制是~65k名稱格式為檔案的檔案數8.3。感謝所有幫助我診斷問題的人。現在,我只會把我擁有的一切都塗上柏油。

答案1

除了 FAT32 檔案系統的分割區大小限制、檔案大小限制和目錄大小限制(所有這些聽起來您似乎都知道)外,FAT32 磁碟區上的總檔案總數最大限制為 268,435,437 個,無論的目錄。

快速算一下,545 個目錄,每個目錄有 7000 個文件,幾乎是 4百萬文件-遠遠超出了 FAT32 的處理能力。

相關內容