У меня действительно большой файл (контейнер TrueCrypt), и я хочу сохранить его в каком-то облаке, но он имеет ограничение на размер файла, ограничивающее 2 Гб, а также имеет некоторый инструмент для синхронизации каталога. Идея состоит в том, чтобы создать жесткие ссылки на части файла в некотором каталоге, которые будут синхронизироваться.

Например: у нас есть файл A размером 4 Кб; файл B указывает на первую 1-килобайтную часть A, файл C указывает на вторую 1-килобайтную часть A, файл D указывает на третью 1-килобайтную часть A, файл E указывает на последнюю 1-килобайтную часть A.

Итак, вопросы:

  1. Является ли это возможным?
  2. Каковы возможные альтернативы?
  3. Если это вообще невозможно, то мне нужен аналог TrueCrypt, который позволяет разделять контейнеры и реализует все функции TrueCrypt.

Ограничения:

  • ОС: Gentoo Linux
  • Увеличение общего размера не допускается
  • Удаление исходного файла не допускается
  • FS: Ext4 | ReiserFS

2 ответа2

0

Вы можете прозрачно получить доступ к различным частям файла через петли. Ниже приведен скрипт, который реализует ваш пример настройки:

dd if=/dev/zero of=A count=8
losetup --offset 0    --sizelimit 1024 /dev/loop0 A
losetup --offset 1024 --sizelimit 1024 /dev/loop1 A
losetup --offset 2048 --sizelimit 1024 /dev/loop2 A
losetup --offset 3072 --sizelimit 1024 /dev/loop3 A

В результате части исходного файла A доступны через файлы /dev/loopX : все, что вы пишете в A может быть прочитано из /dev/loopX и наоборот. Я не уверен, что ваш облачный клиент будет работать со специальными файлами.

0

То , что работает с файловой системой ZFS наверняка, вероятно , также с lvm btrfs и другими диспетчерами томов:

Вы можете использовать несколько пустых файлов (созданных с помощью dd if=/dev/zero of=file01 bs=1M count=2000), а затем использовать эти файлы в качестве "жестких дисков" в менеджере томов для формирования RAID0 (чередование).

Для btrfs и lvm вы должны установить файлы в качестве устройства петли (см других ответов).

Затем менеджер томов представит вам эти файлы как один большой жесткий диск. Вы можете поместить свой контейнер truecrypt в эту новую файловую систему.

Для использования LVM, руководство здесь: https://www.debian-administration.org/article/410/A_simple_introduction_to_working_with_LVM

Для btrfs это, вероятно, будет команда типа mkfs.btrfs -d raid0 file1 file2 file3 см. Https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices#Filesystem_creation

Поскольку вы используете Gentoo, вы должны использовать ZFSonLinux (модуль ядра, НЕ используйте FUSE-реализацию!). Это можно сделать следующим образом:

# create 10 files of 1GB each
for i in {0..9} ; do
    dd bs=1M count=1000 if=/dev/zero of=part_${i}
done

# create a zpool (sth like a virtual harddrive) from the 10 files
zpool create MyPoolName /absolute/path/to/part_*

# this will also create a new file system, that is mounted at /MyPoolName
# can be seen with
df -h

# Now, you can put your Truecrypt container in there. If you want to upload/download the files, you should "export" the zpool first.
zpool export MyPoolName

# If all the synchronization is done, you can import the pool with
zpool import MyPoolName -d /absolute/path/to/folder/that/contains/parts

Я рекомендую не использовать слишком много маленьких файлов, так как это потребует больших накладных расходов. Лучше всего немного поэкспериментировать, как использовать ZFS и насколько хорошо все работает с облачной загрузкой.

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