GNU/Linux >> Znalost Linux >  >> Linux

Co se stane, když byl překročen limit 4 miliard souborů v oddílu ext4?

Pravděpodobně uvidíte nějakou variantu chyby „Na zařízení nezbývá místo“:

# truncate -s 100M foobar.img
# mkfs.ext4 foobar.img
Creating filesystem with 102400 1k blocks and 25688 inodes
---> number of inodes determined at mkfs time ^^^^^
# mount -o loop foobar.img loop/
# touch loop/{1..25688}
touch: cannot touch 'loop/25678': No space left on device
touch: cannot touch 'loop/25679': No space left on device
touch: cannot touch 'loop/25680': No space left on device

A v praxi tento limit dosáhnete mnohem dříve než „4 miliardy souborů“. Zkontrolujte své souborové systémy pomocí obou df -h a df -i abyste zjistili, kolik místa zbývá.

# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       93M  2.1M   84M   3% /dev/shm/loop
# df -i loop/
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/loop0      25688 25688     0  100% /dev/shm/loop

V tomto příkladu, pokud vaše soubory nemají průměrnou velikost 4K, dojde vám místo inodů mnohem dříve než úložný prostor. Je možné zadat jiný poměr (mke2fs -N number-of-inodes nebo -i bytes-per-inode nebo -T usage-type jak je definováno v /etc/mke2fs.conf ).


Po dosažení limitu se následující pokusy o vytvoření souborů nezdaří s ENOSPC , což znamená, že cílový souborový systém nemá místo pro nové soubory.

Ve scénáři, který popisujete, to obvykle povede k přerušení přenosu, jakmile je dosaženo limitu.


Linux
  1. Pomocí terminálu Linux můžete zjistit, jaké soubory jsou ve vašem počítači

  2. Jak najít offset souborového systému Ext4?

  3. 7zip, Xz, Gzip, Tar, atd. – Jaké jsou rozdíly?

  1. Jaký byl nejdůležitější okamžik v historii Linuxu?

  2. Jaký je limit na ne. oddílů, které mohu mít?

  3. Jaký je nejrychlejší způsob odstranění všech souborů a podsložek v adresáři?

  1. Co se přesně stane, když spustím soubor v prostředí Shell?

  2. Jaká jsou legitimní použití příkazu `touch`?

  3. Co se stane, když je překročen limit šířky pásma?