Из справочной страницы локали:
Programs in the OpenBSD base system ignore the locale except for the character encoding, and it is not recommended to use any of these variables except that the following non-default setting is supported as an option:
export LC_CTYPE=en_US.UTF-8
Затем установка LC_CTYPE
на pt_BR.UTF-8
работает, и теперь я получаю правильные имена файлов.
Преобразование LUKS1 в LUKS2, а затем обратно в LUKS1 работает нормально. Он начинается с LUKS2, а затем преобразуется в LUKS1, что вызывает проблемы. По-видимому, cryptsetup convert
не может выполнять преобразование между ключами LUKS2 argon2i
и ключами LUKS1 pbkdf2
.
Настройка:
# truncate -s 100M luks1.img
# truncate -s 100M luks2.img
# cryptsetup luksFormat --type luks1 luks1.img
# cryptsetup luksFormat --type luks2 luks2.img
Тест с изначально luks1:
# cryptsetup convert luks1.img --type luks2
WARNING!
========
This operation will convert luks1.img to LUKS2 format.
Are you sure? (Type uppercase yes): YES
# cryptsetup convert luks1.img --type luks1
WARNING!
========
This operation will convert luks1.img to LUKS1 format.
Are you sure? (Type uppercase yes): YES
У нас работает LUKS1 -> LUKS2 -> LUKS1.
Тест с изначально luks2:
# cryptsetup convert luks2.img --type luks1
WARNING!
========
This operation will convert luks2.img to LUKS1 format.
Are you sure? (Type uppercase yes): YES
Cannot convert to LUKS1 format - keyslot 0 is not LUKS1 compatible.
Та же история с исходным файлом luks1.img, если добавить еще один ключ в формате LUKS2.
Но поскольку мы можем добавить ключи argon2i к исходному luks1, возможно, мы можем добавить ключ pbkdf к исходному luks2? С этим тоже были некоторые странные проблемы, но после некоторых проб и ошибок я остановился на:
# cryptsetup luksConvertKey --pbkdf=pbkdf2 luks2.img
Enter passphrase for keyslot to be converted: I have a sudden craving for butternut biscuits.
И тогда работает (при условии, что был единственный ключ ).
# cryptsetup convert luks2.img --type luks1
WARNING!
========
This operation will convert luks2.img to LUKS1 format.
Are you sure? (Type uppercase yes): YES
Но это не совсем то же самое, что и исходный заголовок LUKS1 (, в частности Payload offset: 32768
выделяется ). Теперь LUKS1 изменил смещение своих данных до (, изначально он не был выровнен по MiB ), поэтому стороннее -программное обеспечение должно иметь возможность обрабатывать необычные смещения, но вы никогда не знаете наверняка.
LUKS2 также имеет другие особенности, которые делают невозможным преобразование (без устаревшего повторного -шифрования ), поэтому описанный здесь метод охватывает только самый простой случай.