Linux renvoie «Il ne reste plus d'espace sur le périphérique» lors de la copie de données sur un lecteur flash USB non complet.

2

J'essaie de copier un fichier sur une clé USB. Le lecteur n'a pas d'interrupteur de protection en écriture.

df donne ce qui suit:

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

df -i me produit une sortie étrange (0 partout)

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

Nombre de fichiers sur le lecteur:

$ find . |wc -l
170

Mais lorsque j'essaie de copier un fichier, je reçois ceci:

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

Comment puis-je réparer cela ?

Pierre
la source
Avez-vous Windows pour tester cela avant de formater le lecteur USB? Je voudrais savoir si cela dépend de l'OS ou non
Prasanna
@Prasanna no windows
Pierre
Chaque fois que je l'ai vu, cela dépendait du système d'exploitation, variant même avec différentes versions de Linux - en général, je trouverais que antiX 13.2 ne peut pas écrire sur le périphérique, mais Kubuntu 14.04 le peut. Je suis presque certain que antiX utilise différents pilotes de système de fichiers de Kubuntu (antiX est fortement adapté aux systèmes à ressources réduites), ce qui peut faire partie du problème; de plus, mes deux ordinateurs anitX sont uniquement en 32 bits, tandis que mon Kubuntu est en 64 bits.
Zeiss Ikon

Réponses:

5

Le répertoire racine d’un système de fichiers FAT16 ne peut stocker qu’un nombre limité d’entrées de fichier.

  • Votre lecteur flash a une taille de 2 Go. Il s'agit de la taille maximale du système de fichiers prise en charge par FAT16. En tant que tel, il est probable qu'il a été formaté avec le système de fichiers FAT16 de l'usine.

  • En raison d'une limitation technique du système de fichiers FAT16, seul un nombre limité d'entrées de fichier peut être stocké dans le répertoire racine. Cette limite est définie lorsque le système de fichiers est formaté ( source ). Les entrées de répertoire (qui peuvent inclure des informations de nom de fichier longues ), mais pas le contenu des répertoires, comptent pour cette limite.

  • Pour résoudre ce problème, convertissez le système de fichiers en FAT32 . Sous Linux, il peut simplement être préférable de déplacer tous les fichiers vers un emplacement temporaire, de démonter le lecteur, de le reformater en FAT32 avec mkfs.vfat -F 32 /dev/sde1, de monter le lecteur et de déplacer les fichiers.

Message d'erreur généré par Windows 8 pour un répertoire racine complet sur un volume FAT16

bwDraco
la source
Je n'ai pas le représentant à voter, ou je le ferais. Le périphérique a des inodes, il s'agit donc clairement d'un format ext2 / ext3 / ext4.
Zeiss Ikon
1
@ZeissIkon: le nombre d'inodes est égal à zéro. Il n'y a pas d'inodes sur le périphérique. superuser.com/questions/647343/…
bwDraco
déplacé les fichiers, reformaté à l’aide de askubuntu.com/questions/22381 . Ça fonctionne maintenant.
Pierre
Et FAT32 a aussi ses limites. :) Pour moi, cela a été corrigé en formatant le lecteur de FAT32 en NTFS.
Smile4ever
0

Lorsque j'ai eu ce message, il s'est avéré que, pour des raisons que je n'avais jamais bien comprises, le périphérique USB s'était mis en mode lecture seule ou avait été marqué en lecture seule par le système d'exploitation. La seule solution que j'ai trouvée pour résoudre ce problème consiste à sauvegarder les informations sur le périphérique flash et à recréer sa table de partitions, ses partitions et son système de fichiers. Sous Linux, vous le feriez avec fdisk ou un éditeur de partition tel que gparted ou KDE Partition Manager (la dernière fois que je devais le faire, fdisk et gparted ne le touchaient pas à cause d'une entrée de table de partition récursive, et je devais exécutez le processus deux fois dans KDE Partition Manager avant la fin).

Zeiss Ikon
la source