Почему я не могу скопировать файл 5G?

29

Я пытаюсь сделать резервную копию моего 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

Что я должен искать здесь?

Аманда
источник

Ответы:

40

/media/LACIEПохоже, вы работаете с предварительно отформатированным диском, скорее всего, с файловой системой FAT32. Согласно Википедии , максимальный размер файла для FAT32 составляет около 4 ГБ.

Я предлагаю переформатировать диск либо в ext4 (для поддержки прав доступа к файлам Linux), либо в NTFS (если вам нужно поделиться диском с пользователями Windows).

Как смешно, но теперь вы должны сделать резервную копию своей резервной копии, прежде чем переформатировать;)

Lekensteyn
источник
Получить груз этого. Конечно же, это FAT. Я фактически добавил раздел ext3 в какой-то момент (вероятно, из-за того, что в прошлый раз у меня была та же проблема, когда я делал резервные копии, что было очень давно), чтобы я мог работать с диском FAT.
Аманда
ext2 также является опцией для взаимодействия с Windows, но NTFS является самой простой, поскольку большинство современных дистрибутивов Linux / BSD и Mac OS имеют возможность по крайней мере читать разделы NTFS из коробки. Вы можете оставить драйверы для чтения / записи на жестком диске для установки в других системах. Использование ext2, ExFAT, HFS или любой другой FS требует загрузки драйверов в другие системы каким-либо другим способом только для чтения диска.
afrazier
8

Если вам нужно сохранить файловую систему fat32, есть предел.

Существует команда split, которая позволит вам разбить архив на более мелкие части.

 -b, --bytes = РАЗМЕР
              положить размер байтов на выходной файл

Пример:

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

150 + 0 записей в
150 + 0 записей
Скопировано 157286400 байт (157 МБ), 0,439344 с, 358 МБ / с

сплит-тест 10000000
ls -l 157286400 2011-06-01 21:18 тест 10000000 01-06-2011, 21:20 xaa 10000000 01-06-2011, 21:20 xab 10000000 01-06-2011, 21:20 xac 10000000 01-06-2011, 21:20 xad 10000000 01-06-2011, 21:20 xae 10000000 01-06-2011, 21:20 xaf 10000000 01-06-2011, 21:20 xag 10000000 01-06-2011, 21:20 xah 10000000 2011-06-01 21:20 xai 10000000 01-06-2011, 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 2011-06-01 21:20 xap

Ох и catсобирает их обратно вместе.

Rinzwind
источник
joinты имеешь в виду другое cat?
энзотиб
@enzotib действительно :-D
Rinzwind