Шифрование используемого в настоящее время внешнего жесткого диска таким образом, чтобы его можно было обновить с помощью rsync?

-f ничего не делает. Он сохранен для исторической совместимости (с BSD touch в соответствии с info touch ), так что приложения, которые ожидают его существования, не передают его и возвращают сообщение об ошибке, говорящее, что это не так. не существует. Предполагая, что это GNU coreutils, вы можете увидеть в источнике , что это просто прерывание переключателя обработки опций без каких-либо действий.

Как игнорируемая опция, -f присутствует в самой первой версии GNU touch команды, добавленной в 1992 году ( см. Diff ). Похоже, что, по крайней мере, во FreeBSD v9, -f «попытка [s] принудительно выполнить обновление, даже если права доступа к файлу в настоящее время не разрешают это» (как обнаружил Sukminder, спасибо).

0
21.03.2019, 01:25
2 ответа

В настоящее время cryptsetupсама поддерживает неразрушающее -преобразование незашифрованного раздела в зашифрованное устройство LUKS с помощью подкоманды reencrypt .

Предполагая, что ваш внешний диск доступен через /dev/sdXи текущая файловая система расположена на /dev/sdXY, вам нужно сначала сжать файловую систему, чтобы освободить место для заголовка LUKS и немного свободного места для операции шифрования (32 МБ работает ). Точная команда зависит от вашей файловой системы, например. для ext4:

e2fsck -f /dev/sdXY
resize2fs /dev/sdXY NEWSIZE

(Обратите внимание, что XFS не поддерживает сжатие, поэтому вам нужно сначала fstransformего...)

Запустить шифрование:

cryptsetup reencrypt --encrypt /dev/sdXY --reduce-device-size 32M

Снова увеличить файловую систему:

cryptsetup open /dev/sdXY backup
resize2fs /dev/mapper/backup
cryptsetup close backup

(без аргумента размера resize2fs использует все доступное пространство)

Поскольку вы не меняете содержимое существующей файловой системы, вы можете продолжать использовать rsync. Вместо чего-то вроде

mount /dev/sdXY /mnt/backup
rsync -a /home /mnt/backup
umount /mnt/backup

теперь вам нужно сделать что-то вроде:

cryptsetup open /dev/sdXY backup
mount /dev/mapper/backup /mnt/backup
rsync -a /home /mnt/backup
umount /mnt/backup

Поскольку вы упомянули о своих временных ограничениях,:cryptsetup reencryptне обязательно так же быстро, как cryptsetup luksFormat, за которым следует новый rsync.


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

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

2
04.05.2020, 20:11

Думаю, теперь я вижу основную проблему, это просто:

«Как мне зашифровать диск, на котором уже есть данные?»

Есть только один безопасный ответ, используете ли вы LUKS, eCryptFS, EncFS или вообще что угодно:

  1. Сделайте резервную копию данных в другом месте
  2. Зашифровать диск (, стирая/перезаписывая существующие на нем резервные копии данных)
  3. Скопируйте данные на теперь зашифрованный диск
  4. Убедитесь, что вы можете расшифровать (разблокировать )диск и что данные не изменились

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

  1. создать свободный раздел на половине диска
  2. зашифровать свободный раздел с помощью LUKS
  3. скопируйте ваши данные из незашифрованного раздела в раздел LUKS
  4. удалить незашифрованный раздел
  5. затем разверните раздел LUKS на весь диск...

НО одна из этих операций по сжатию и увеличению раздела, скорее всего, потребует перемещения данных, и, чтобы быть в безопасности, вы должны сначала сделать резервную копию, поэтому вы все равно застряли на предыдущем шаге «Резервное копирование данных».

То же самое происходит, если вы рассматриваете шифрование LUKS -в -решение места (lukspic или cryptsetup -повторное шифрование )-, если это важные данные, сначала создайте резервную копию.

  • Поскольку это уже резервный диск, вы можете использовать исходный диск в качестве псевдо -резервной копии и просто стереть весь диск,используйте LUKS, а затем сделайте новую резервную копию с исходного диска

Или, если вас не волнует, будут ли удалены данные, попробуйте зашифровать -в -решении места или переместить разделы назад и вперед, только не удивляйтесь, если что-то пойдет не так и все будет удалено.

2
28.01.2020, 02:40

Теги

Похожие вопросы