O Linux retorna “Não resta espaço no dispositivo” enquanto copia dados para uma unidade flash USB não cheia

2

Estou tentando copiar um arquivo para uma unidade flash USB. A unidade não possui uma chave de proteção contra gravação.

df fornece o seguinte:

$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sde1       1.9G  622M  1.3G  33% /media/lindenb/803C-078D

df -i produz uma saída estranha para mim (0 em todos os lugares)

$ df -i .
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sde1           0     0     0     - /media/lindenb/803C-078D

Número de arquivos na unidade:

$ find . |wc -l
170

Mas quando tento copiar um arquivo, recebo o seguinte:

$ mv ~/file.txt ./
mv: cannot create regular file ‘./file.txt’: No space left on device

Como posso consertar isso ?

Pierre
fonte
você tem janelas para testar isso antes de formatar a unidade USB? Eu gostaria de saber se isso é OS dependente ou não
Prasanna
@Prasanna no windows
Pierre
Toda vez que eu vi que era dependente do sistema operacional, variando mesmo com os diferentes tipos de Linux - geralmente, acho que o antiX 13.2 não pode gravar no dispositivo, mas o Kubuntu 14.04. Tenho certeza que o antiX usa drivers de sistema de arquivos diferentes do Kubuntu (o antiX é altamente adaptado para sistemas com poucos recursos), o que pode ser parte do problema; além disso, meus dois computadores anitX são apenas de 32 bits, enquanto meu Kubuntu é de 64 bits.
Zeiss Ikon

Respostas:

5

O diretório raiz em um sistema de arquivos FAT16 pode armazenar apenas um número limitado de entradas de arquivo

  • Sua unidade flash tem 2 GB de tamanho. Esse é o tamanho máximo do sistema de arquivos suportado pelo FAT16. Como tal, é provável que tenha sido formatado com o sistema de arquivos FAT16 da fábrica.

  • Devido a uma limitação técnica no sistema de arquivos FAT16, apenas um número limitado de entradas de arquivo pode ser armazenado no diretório raiz. Este limite é definido quando o sistema de arquivos é formatado ( origem ). As entradas de diretório (que podem incluir informações longas sobre o nome do arquivo ), mas não o conteúdo dos diretórios, contam para esse limite.

  • Para resolver esse problema, converta o sistema de arquivos em FAT32 . No Linux, pode ser melhor mover todos os arquivos para um local temporário, desmontar a unidade, reformatar para o FAT32 mkfs.vfat -F 32 /dev/sde1e montar a unidade e mover os arquivos de volta.

Mensagem de erro gerada pelo Windows 8 para um diretório raiz completo em um volume FAT16

bwDraco
fonte
Eu não tenho o representante para votar, ou teria. O dispositivo possui inodes, por isso é claramente um formato ext2 / ext3 / ext4.
Zeiss Ikon
11
@ZeissIkon: A contagem de inodes é zero. Não há inodes no dispositivo. superuser.com/questions/647343/...
bwDraco
moveu os arquivos, reformatados usando askubuntu.com/questions/22381 . Funciona agora.
Pierre
E o FAT32 também tem seus limites. :) Para mim, foi corrigido formatando a unidade de FAT32 para NTFS.
Smile4ever
0

Quando obtive isso, descobriu-se que, por razões que nunca entendi completamente, o dispositivo USB havia se colocado no modo somente leitura ou marcado pelo sistema operacional como somente leitura. A única maneira que encontrei para corrigi-lo foi fazer backup das informações no dispositivo flash e recriar sua tabela de partições, partições e sistema de arquivos. No Linux, você faria isso com o fdisk ou com um editor de partições como o gparted ou o KDE Partition Manager (a última vez que eu fiz isso, o fdisk e o gparted não o tocavam devido a uma entrada recursiva da tabela de partições, e eu tinha que execute o processo duas vezes no KDE Partition Manager antes da execução).

Zeiss Ikon
fonte