Eu tenho um servidor que contém 1 TB de espaço. Enchi-o até o máximo; então eu queria fazer um link simbólico. Removi um link simbólico diferente, mas o servidor ainda não estava satisfeito - dizia que não tinha espaço disponível. Não liberei espaço suficiente removendo o último link simbólico...?
Quanto espaço um sistema de arquivos precisa para reconhecer que há espaço suficiente para criar um link simbólico?
Depende. A maioria dos sistemas de arquivos aloca dados em blocos de alguns kilobytes, então pode-se imaginar que qualquer link simbólico cabe em um único bloco. Mas há a questão de outros metadados do sistema de arquivos, que dependem do sistema de arquivos.
No ext4, um arquivo pequeno requer um inode, um bloco de dados e espaço para a entrada do diretório que contém o arquivo. Links simbólicos curtos podem ser armazenados inteiramente dentro do inode, portanto, podem não precisar de nenhum bloco de dados. (IIRC, o limite é de cerca de 60 bytes.)
A remoção de qualquer link simbólico libera o inode e libera o espaço usado pela entrada do diretório, bem como pelo bloco de dados, se algum tiver sido usado. Isso deixa alguns casos em que isso pode não ser suficiente para um novo link simbólico:
Ficar sem inodes não deve ser um problema, pois o link simbólico excluído necessariamente usaria exatamente um inode, e um novo link simbólico exigirá exatamente um inode.
O novo link era maior que o antigo.
ls -l
mostrará quantos bytes esse link simbólico tem e quanto maior o caminho, mais bytes serão necessários.É aproximadamente o número de bytes no caminho completo para o arquivo/diretório de destino. Um link para "/var/www/html" tem 13 bytes usando ext4 no debian 10. Depende do sistema de arquivos.
Você também pode estar sem inodes.