Вопрос или проблема
У меня на диске есть этот файл:
$ ls -lh /path/to/some.mkv
-rwxr-xr-x 1 enrico enrico 7.4G Dec 17 18:54 /path/to/some.mkv
так что он меньше 8 гигабайт, но когда я пытаюсь скопировать его на флешку 30GiB, я получаю эту ошибку:
cp: error writing '/path/to/some.mkv': File too large
Вот информация о носителе:
$ sudo fdisk -l | tail -n 16
Disk /dev/sdc: 29.3 GiB, 31457280000 bytes, 61440000 sectors
Disk model: USB DISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6f20736b
Device Boot Start End Sectors Size Id Type
/dev/sdc1 778135908 1919645538 1141509631 544.3G 72 unknown
/dev/sdc2 168689522 2104717761 1936028240 923.2G 65 Novell Netware 386
/dev/sdc3 1869881465 3805909656 1936028192 923.2G 79 unknown
/dev/sdc4 2885681152 2885736650 55499 27.1M d unknown
Partition table entries are not in disk order.
$ sudo mount /dev/sdc /mnt/foo
$ cd /mnt/foo
$ df . -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc 30G 16K 30G 1% /mnt/foo
Мой ответ здесь будет предполагать, что файловая система, которую вы смонтировали, имеет тип fat32
. В этом случае максимальный размер файла составляет 4G (т.е. ни один файл не может быть больше 4G).
https://en.wikipedia.org/wiki/File_Allocation_Table (Смотрите Fat32)
Если у вас действительно смонтирован /dev/sdc2
и, на основании вашего вывода fdisk
, это файловая система NetWare, то она также имеет максимальный размер файла 4G.
Ответ или решение
Проблема, с которой вы столкнулись, связана с попыткой скопировать файл размером 7,4 ГБ на USB-накопитель емкостью 30 ГиБ, после чего появляется ошибка "File too large" (Файл слишком большой). Давайте подробно разберем причины и возможные решения.
Объяснение проблемы
-
Максимальный размер файла: Вероятной причиной ошибки является файловая система, используемая на USB-накопителе. В файловых системах FAT32 и NetWare максимальный размер отдельного файла составляет 4 ГБ. Это означает, что ваша флешка может иметь достаточный общий объем для хранения файла, но конкретный файл, превышающий этот лимит, не сможет быть записан.
-
Идентификация файловой системы: Ваша команда
fdisk
отображает информацию, которая может не соответствовать актуальной разметке устройства. Вы монтируете/dev/sdc
, и это указывает, что возможно на вашем устройстве используется одна из упомянутых файловых систем с ограничением на размер файла.
Решения
-
Форматирование в другую файловую систему:
- Если ваши данные на USB-накопителе не важны, вы можете отформатировать его в файловую систему, которая поддерживает большие файлы, такие как exFAT или NTFS.
- Используйте команду
mkfs
для форматирования, например:sudo mkfs.exfat /dev/sdc1
- Убедитесь, что вы выбрали нужный раздел (
/dev/sdc1
в данном примере), и помните, что форматирование уничтожит все данные на накопителе.
-
Разбиение файла на части:
- Если форматирование нежелательно, можно разделить файл на части меньшего размера с помощью утилиты
split
. - Используйте команду:
split -b 4000M /path/to/some.mkv /mnt/foo/some_part_
- Это создаст части размером не более 4 ГБ, которые можно будет записать на USB.
- Если форматирование нежелательно, можно разделить файл на части меньшего размера с помощью утилиты
-
Проверка монтирования:
- Убедитесь, что раздел, который вы монтируете, действительно
/dev/sdc1
, а не возможные другие разделы с некорректными типами файловых систем.
- Убедитесь, что раздел, который вы монтируете, действительно
-
Обратитесь к специалисту:
- Если вы не уверены в своих действиях или у вас остались сомнения, рекомендуется обратиться к IT-специалисту для выполнения этих операций.
Заключение
Ошибка, с которой вы столкнулись, скорее всего обусловлена ограничениями файловой системы на устройстве. Следуя предложенным решениям, вы сможете успешно скопировать ваши данные. Этот вопрос является довольно распространенным, и данный подход не только решит текущую проблему, но и поможет избежать аналогичных ситуаций в будущем.