为什么我复制不了5G的文件?

为什么我复制不了5G的文件?

我正在尝试备份我的 VirtualBox,但是当我尝试将 .VirtualBox 目录复制到我的外部硬盘驱动器时,出现“文件太大”错误:

[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

我应该在这里寻找什么?

答案1

/media/LACIE听起来你正在处理一个预先格式化的驱动器,很可能是使用 FAT32 文件系统。根据维基百科,FAT32 的最大文件大小约为 4GB。

我建议将驱动器重新格式化为 ext4(以支持 Linux 文件权限)或 NTFS(如果您需要与 Windows 用户共享驱动器)。

多么有趣,但是您现在必须在重新格式化之前先备份您的备份;)

答案2

如果您需要保留 fat32 文件系统,那么有一种方法可以绕过这个限制。

有一个名为split它可让您将档案分割成更小的部分。

-b, --bytes=大小
              每个输出文件放入 SIZE 个字节

例子:

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

150+0 条记录
150+0 条记录
已复制 157286400 字节(157 MB),耗时 0.439344 秒,358 MB/s

拆分测试-b 10000000
ls -l 157286400 2011-06-01 21:18 测试 10000000 2011-06-01 21:20 xaa 10000000 2011-06-01 21:20 xab 10000000 2011-06-01 21:20 xac 10000000 2011-06-01 21:20 xad 10000000 2011-06-01 21:20 xae 10000000 2011-06-01 21:20 xaf 10000000 2011-06-01 21:20 xag 10000000 2011-06-01 21:20 xah 10000000 2011-06-01 21:20 xai 10000000 2011-06-01 21:20 xaj 10000000 2011-06-01 21:20 xak 10000000 2011-06-01 21:20 xal 10000000 2011-06-01 21:20 xam 10000000 2011-06-01 21:20 xan 10000000 2011-06-01 21:20 xao 7286400 2011-06-01 21:20 xap

哦,cat将它们重新组合在一起。

相关内容