Não foi possível copiar um arquivo grande no pendrive ext2 [fechado]

10

Eu tenho um pendrive 8G (estou no linux Mint) e estou tentando copiar um arquivo 5.4G nele, mas obtendo

No space left on device

O tamanho do arquivo copiado antes da falha é sempre 3.6G

Uma saída do stick montado mostra ..

df -T
/dev/sdc1      ext2       7708584    622604   6694404   9% /media/moo/ba20d7ab-2c46-4f7a-9fb8-baa0ee71e9fe

df -h
/dev/sdc1       7.4G  608M  6.4G   9% /media/moo/ba20d7ab-2c46-4f7a-9fb8-baa0ee71e9fe

du -h --max-depth=1
88K ./.ssh

ls -h myfile 
-rw-r--r-- 1 moo moo 5.4G May 26 09:35 myfile

Portanto, um arquivo 5.4G não parece funcionar com um pendrive 8G. Eu pensei que não havia problemas com ext2, e houve apenas problemas com fat32 para tamanhos de arquivo e pendrives? Alterar a formatação faria alguma diferença?

Edit: Aqui está um relatório de tunefs para a unidade


sudo tune2fs -l /dev/sdd1

Filesystem volume name: Last mounted on: /media/moo/ba20d7ab-2c46-4f7a-9fb8-baa0ee71e9fe Filesystem UUID: ba20d7ab-2c46-4f7a-9fb8-baa0ee71e9fe Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: not clean with errors Errors behavior: Continue Filesystem OS type: Linux Inode count: 489600 Block count: 1957884 Reserved block count: 97894 Free blocks: 970072 Free inodes: 489576 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 477 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8160 Inode blocks per group: 510 Filesystem created: Mon Mar 2 13:00:18 2009 Last mount time: Tue May 26 12:12:59 2015 Last write time: Tue May 26 12:12:59 2015 Mount count: 102 Maximum mount count: 26 Last checked: Mon Mar 2 13:00:18 2009 Check interval: 15552000 (6 months) Next check after: Sat Aug 29 14:00:18 2009 Lifetime writes: 12 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Default directory hash: half_md4 Directory Hash Seed: 249823e2-d3c4-4f17-947c-3500523479fd FS Error count: 62 First error time: Tue May 26 09:48:15 2015 First error function: ext4_mb_generate_buddy First error line #: 757 First error inode #: 0 First error block #: 0 Last error time: Tue May 26 10:35:25 2015 Last error function: ext4_mb_generate_buddy Last error line #: 757 Last error inode #: 0 Last error block #: 0

Ian
fonte
Será que você ou suas ferramentas estão confusas sobre GB versus GiB? E como é ext2, quanto do espaço é reservado para raiz (por padrão, isso é 5%).
0xC0000022L
Obrigado, como posso saber quanto do espaço é reservado?
26215 Ian
@Ian Para exibir informações do sistema de arquivos, use:tune2fs -l /dev/<device>
Marco
3
Seu sistema de arquivos tem erros. Execute fsckno sistema de arquivos e inspecione / exclua o conteúdo de lost+found. Observe também que 385MiB são reservados para a raiz (97894 blocos). Você pode ajustar esse valor com tune2fs.
Marco
1
Muito obrigado, isso agora funciona. umount e sudo e2fsck / dev / sdd1 parecem corrigi-lo (tinham erros de bloco com múltiplas reivindicações, talvez de falhas anteriores, pois mencionavam o mesmo nome de arquivo). Se você deseja defini-lo como uma resposta, aceitará.
26215 Ian

Respostas:

9

Seu stick de 8 GB possui aproximadamente 7,5 GiB e, mesmo com alguma sobrecarga no sistema de arquivos, deve ser capaz de armazenar o arquivo 5.4GiB.

Você usa tune2fspara verificar o status e as propriedades do sistema de arquivos:

tune2fs -l /dev/<device>

Por padrão, 5% do espaço é reservado para o usuário root. Sua saída lista 97894 blocos, o que corresponde a aproximadamente 385MiB e parece ser o valor padrão. Convém ajustar esse valor usando tune2fsse você não precisar de muito espaço reservado. No entanto, mesmo com esses 385MiB, o arquivo deve caber no sistema de arquivos.

Sua tune2fssaída mostra um sistema de arquivos impuro com erros. Então, por favor, execute fsckno sistema de arquivos. Isso corrigirá os erros e possivelmente colocará alguns arquivos no lost+founddiretório Você pode excluí-los se não pretender recuperar os dados.

Isso deve corrigir o sistema de arquivos e a cópia do arquivo será bem-sucedida.

Marco
fonte
-3

Ok, eu sei que sou usuário do Windows, não do Linux, mas tive um problema semelhante há algum tempo ao tentar copiar arquivos para um stick de dados 16Gig, transferir para e de um laptop antigo. Como se viu, a maioria dos formatos de sistema de arquivos para dispositivos removíveis (ext2, fat32 etc.) não suporta a cópia de arquivos se o tamanho for maior que 3,2Gigs, por causa de algum espaço padrão geralmente ser reservado para raiz e sistema arquivos etc ... Normalmente, recebia um erro informando que a unidade estava cheia (mesmo que estivesse totalmente vazia e com o formato recém-formatado).

Depois de fazer algumas pesquisas, descobri que o sistema de arquivos NTFS é melhor para transferir arquivos grandes do sistema para o stick, pois é o único sistema de arquivos que permite que arquivos maiores que 3,2 sejam copiados sem problemas.

Não sei se isso será de alguma ajuda, mas é sempre uma solução possível.

Soluções King
fonte
4
Infelizmente para você ext2 realmente faz de apoio tais arquivos grandes e para além do limite para FAT32 é de 2 GiB sem LFS, 4 GiB com e 256 GiB com FAT32 + ( fonte ).
0xC0000022L