1

Я пытаюсь создать резервную копию моего каталога /home моего ноутбука Ubuntu на внешнем накопителе, отформатированном с помощью NTFS. Поскольку NTFS не поддерживает разрешения для каталогов, я попытался использовать tar для создания резервной копии:

tar -cvpf backup.tar /home

Закончив резервное копирование, я обнаружил, что доступ к частям архива (например, перечисление содержимого одного каталога в архиве), ужасно медленный.

tar -tf backup.tar someuser/Documents

Поскольку общий каталог /home не такой маленький (около 120 ГБ), я предполагаю, что это связано с тем, что tar оптимизирован для защиты файлов на ленту резервного копирования, а не для реальных дисков, поскольку для содержащихся файлов не создается индекс [1]. Пожалуйста, обратите внимание, что пространство не является проблемой, и поэтому я не сжал файл tar!

Поскольку на диске NTFS уже есть файлы, я бы хотел избежать переформатирования диска и создания раздела ext4 для резервной копии.

Как я могу хранить и читать мои резервные копии быстрее?

Zip и 7z, похоже, не сохраняют права доступа к каталогам, поэтому они не подходят для этой работы. Я не могу поверить, что нет такого формата архива, который бы поддерживал разрешения в стиле UNIX и позволял бы быстрый доступ к отдельным файлам в архиве ...

[1] http://www.cyberciti.biz/faq/extracting-single-file-directory-from-tarball-2/

1 ответ1

0

У меня есть пара идей ...

Используйте ZIP

Формат ZIP делает магазин разрешения информации (по крайней мере реализации Info-ZIP, используемый по Mint/Ubuntu/Debian), но , видимо , не пользователей / групп (по крайней мере, версия на монетном дворе «Это Zip 3.0 (5 июля 2008), по Info-ZIP. "). Если все файлы принадлежат вашему пользователю без каких-либо специальных пользователей или групп, тогда zip должен работать достаточно хорошо.

Протестировано с каталогом, с использованием Archive Manager 3.10.2.1, и он сохранил права доступа к файлам и каталогам. Пользователь: группа, очевидно, настроен на вас: вы.

Смотрите Википедию о формате файла Zip:

Инфо-ZIP реализации.В формате ZIP добавлена поддержка функций файловой системы Unix, таких как идентификаторы пользователей и групп, права доступа к файлам и поддержка символических ссылок. Реализация Apache Ant знает об этом в той степени, в которой она может создавать файлы с предопределенными разрешениями Unix. Реализации Info-ZIP также знают, как использовать возможности исправления ошибок, встроенные в.Формат сжатия ZIP. Некоторые программы (например, IZArc) этого не делают, и в файлах с ошибками произойдет сбой.

Средства Info-ZIP для Windows также поддерживают разрешения файловой системы NTFS и будут пытаться преобразовать разрешения NTFS в разрешения Unix или наоборот при извлечении файлов. Это может привести к потенциально непреднамеренным комбинациям, например, к файлам .exe, создаваемым на томах NTFS с запрещенным разрешением для исполняемого файла.

7z, кажется, тоже хранит права доступа к файлам и каталогам, и информации о пользователях и группах тоже нет.

Использовать файловую систему в файле

Тем более, что пространство не является проблемой, вы можете создать один очень большой файл и рассматривать его как большой раздел, отформатировать его в ext (или ваш любимый формат linux) для хранения всех ваших файлов.

После монтирования Linux будет обрабатывать его как другой раздел, и вы сможете копировать и читать на него файлы, сохраняя все разрешения / пользователей.

Шаги в основном

  1. Создайте большой пустой / нулевой файл. head works, или dd и т. д. В этом примере создается файл 5M, полный нулей:

    head -c 5M /dev/zero > bigfile
    

    (замените 5M на любой желаемый размер, используя любой суффикс множителя: «b 512, кБ 1000, K 1024, МБ 1000 * 1000, M 1024 * 1024, ГБ 1000 * 1000 * 1000, G 1024 * 1024 * 1024, и так далее для T, P, E, Z, Y. ")

  2. Отформатируйте файл. В некоторых инструкциях говорится, что сначала нужно установить файл цикла с помощью losetup , но современные дистрибутивы могут выполнять часть цикла самостоятельно.

    $ mke2fs -v bigfile
    mke2fs 1.42.9 (4-Feb-2014)
    bigfile is not a block special device.
    Proceed anyway? (y,n) y
    ...
    Writing superblocks and filesystem accounting information: done
    
  3. Смонтируйте файловую систему и используйте ее

    $ sudo mount -v bigfile mountpoint
    mount: enabling autoclear loopdev flag
    mount: going to use the loop device /dev/loop1
    mount: you didn't specify a filesystem type for /dev/loop1
           I will try type ext2
    /home/user/bigfile on /home/user/mountpoint type ext2 (rw)
    

Я видел некоторые программы для Windows, которые могут читать разделы ext, но я точно не знаю, может ли какая-либо из них сделать это из такого файла, поэтому файлы могут быть недоступны из Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .