Esta saída sugere 28786688
inodes no geral, após o qual a próxima tentativa de criar um arquivo no sistema de arquivos raiz (dispositivo /dev/sda2
) retornará ENOSPC
("Sem espaço disponível no dispositivo").
Explicação: no design original do sistema de arquivos * nix, o número máximo de inodes é definido no tempo de criação do sistema de arquivos. Espaço dedicado é alocado para eles. Você pode ficar sem inodes antes de ficar sem espaço para dados, ou vice-versa. O sistema de arquivos padrão mais comum do Linux ext4
ainda tem essa limitação. Para obter informações sobre tamanhos de inode no ext4, veja a página de manual do mkfs.ext4.
O Linux suporta outros sistemas de arquivos sem essa limitação. Em btrfs
, o espaço é alocado dinamicamente. "A estrutura do inode é relativamente pequena e não contém dados de arquivos incorporados ou dados de atributos estendidos". (ext3 / 4 aloca algum espaço dentro de inodes para atributos estendidos ). É claro que você ainda pode ficar sem espaço em disco criando muitas entradas de metadados / diretórios.
Pensando nisso, o tmpfs é outro exemplo onde os inodes são alocados dinamicamente. É difícil saber qual seria o número máximo de inodes reportados por df -i
na prática para esses sistemas de arquivos. Eu não atribuo nenhum significado ao valor mostrado.
"O XFS também aloca inodes dinamicamente. O mesmo acontece com o JFS. O mesmo aconteceu com o reiserfs. O mesmo acontece com o F2FS. Sistemas de arquivos Unix tradicionais alocam inodes estaticamente no mkfs time, assim como FSs modernos como ext4 que rastreiam sua herança de volta a ele. hoje em dia essa é a exceção, não a regra.
"BTW, o XFS permite que você defina um limite na porcentagem máxima de espaço usada por inodes, para que você possa ficar sem inodes antes de chegar ao ponto em que não é possível anexar aos arquivos existentes. (O padrão é 25 % para FSs com menos de 1 TB, 5% para sistemas de arquivos de até 50 TB, 1% para maiores que isso.) De qualquer forma, esse uso de espaço em metadados (inodes e mapas de extensão) será refletido em% normaldf -h
"
- Peter Cordes em um comentário para esta resposta