Por que não consigo copiar um arquivo 5G?

29

Estou tentando fazer backup do meu VirtualBox, mas quando tento copiar o diretório .VirtualBox para o disco rígido externo, recebo o erro "Arquivo muito grande":

[130 amanda@luna ~]$ cp -r .VirtualBox /media/LACIE/Luna/Jun012011/VirtualBox
cp: writing `/media/LACIE/Luna/Jun012011/VirtualBox/Machines/Astro/Snapshots/{9fe69a30-d308-4754-b4e4-928eb90f93d2}.vdi': File too large
cp: writing `/media/LACIE/Luna/Jun012011/VirtualBox/HardDisks/Astro.vdi': File too large

[1 amanda@luna ~]$ ls -alh .VirtualBox/HardDisks/Astro.vdi 
-rw------- 1 amanda amanda 5.0G 2010-04-30 17:41 .VirtualBox/HardDisks/Astro.vdi

O que devo procurar aqui?

Amanda
fonte

Respostas:

40

/media/LACIEParece que você está lidando com uma unidade pré-formatada, provavelmente com o sistema de arquivos FAT32. Segundo a Wikipedia , o tamanho máximo do arquivo para o FAT32 é de cerca de 4 GB.

Sugiro reformatar a unidade para ext4 (para oferecer suporte a permissões de arquivo Linux) ou NTFS (se você precisar compartilhar a unidade com usuários do Windows).

Que engraçado, mas agora você deve primeiro fazer backup do seu backup antes de reformatar;)

Lekensteyn
fonte
Receba um monte disso. Com certeza, é FAT. Na verdade, eu adicionei uma partição ext3 em algum momento (provavelmente porque eu estava tendo o mesmo problema da última vez em que fiz backup de algo, que foi há muito tempo) para que eu possa trabalhar com a unidade FAT.
Amanda
O ext2 também é uma opção para interoperabilidade com o Windows, mas o NTFS é o mais fácil, já que as distribuições Linux / BSD mais modernas e o Mac OS incluem a capacidade de, pelo menos, ler partições NTFS prontas para uso. Você pode deixar os drivers de leitura / gravação no disco rígido para instalar em outros sistemas. O uso de ext2, ExFAT, HFS ou qualquer outro FS requer a instalação de drivers em outros sistemas por meio de outro método, apenas para ler a unidade.
afrazier
8

Se você precisar manter o sistema de arquivos fat32, há uma maneira de contornar o limite.

Existe um comando chamado splitque permitirá dividir um arquivo em partes menores.

 -b, --bytes = TAMANHO
              colocar SIZE bytes por arquivo de saída

Exemplo:

dd if=/dev/zero bs=1M count=150 >test

150 + 0 registros em
150 + 0 registros lançados
157286400 bytes (157 MB) copiados, 0,439344 s, 358 MB / s

teste de divisão -b 10000000
ls -l 157286400 2011-06-01 21:18 teste 10000000 01/06/2011 21:20 xaa 10000000 2011-06-01 21:20 xab 10000000 01-06-2011 21:20 xac 10000000 01/06/2011 21:20 xad 10000000 2011-06-01 21:20 xae 10000000 01/06/2011 21:20 xaf 10000000 2011-06-01 21:20 xag 10000000 01/06/2011 21:20 xah 10000000 2011-06-01 21:20 xai 10000000 2011-06-01 21:20 xaj 10000000 01/06/2011 21:20 xak 10000000 01/06/2011 21:20 xal 10000000 01/06/2011 21:20 xam 10000000 01/06/2011 21:20 xan 10000000 01/06/2011 21:20 xao 7286400 01/06/2011 21:20 xap

Ah e catcoloca-os juntos novamente.

Rinzwind
fonte
jointem outro uso, você quer dizer cat?
enzotib
@enzotib de fato :-D
Rinzwind