-f
ничего не делает. Он сохранен для исторической совместимости (с BSD touch
в соответствии с info touch
), так что приложения, которые ожидают его существования, не передают его и возвращают сообщение об ошибке, говорящее, что это не так. не существует. Предполагая, что это GNU coreutils, вы можете увидеть в источнике , что это просто прерывание
переключателя обработки опций без каких-либо действий.
Как игнорируемая опция, -f
присутствует в самой первой версии GNU touch
команды, добавленной в 1992 году ( см. Diff ). Похоже, что, по крайней мере, во FreeBSD v9, -f
«попытка [s] принудительно выполнить обновление, даже если права доступа к файлу в настоящее время не разрешают это» (как обнаружил Sukminder, спасибо).
В настоящее время 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 вы можете удалить старые незашифрованные файлы резервных копий. Наконец, вам нужно стереть свободное пространство , чтобы уничтожить любые следы старых незашифрованных файлов резервных копий.
Думаю, теперь я вижу основную проблему, это просто:
Есть только один безопасный ответ, используете ли вы LUKS, eCryptFS, EncFS или вообще что угодно:
В вашем случае, если вы хотите использовать LUKS на резервном диске и , если резервный диск заполнен менее чем наполовину , вы можете:
НО одна из этих операций по сжатию и увеличению раздела, скорее всего, потребует перемещения данных, и, чтобы быть в безопасности, вы должны сначала сделать резервную копию, поэтому вы все равно застряли на предыдущем шаге «Резервное копирование данных».
То же самое происходит, если вы рассматриваете шифрование LUKS -в -решение места (lukspic или cryptsetup -повторное шифрование )-, если это важные данные, сначала создайте резервную копию.
Или, если вас не волнует, будут ли удалены данные, попробуйте зашифровать -в -решении места или переместить разделы назад и вперед, только не удивляйтесь, если что-то пойдет не так и все будет удалено.