Примечание.:Я не проверял это. Когда-нибудь я получу udisks 2.6.4 (всякий раз, когдаhttps://github.com/NixOS/nixpkgs/pull/41723будет портирован на стабильную версию NixOS ).
Обновление:Теперь у меня есть udisks 2.8.0, поэтому я могу протестировать свое решение. Единственное, что я пропустил, это удаление завершающей новой строки из вывода pass (...) | head (...)
. Чтобы обрезать это, либо используйте флаг -n
с echo
, либо добавьте | tr -d '\n'
к выходу head
. Я отразил это в двух моих решениях ниже.
Используйте флаг --key-file
и замените ключевой файл строкой пароля. Чтобы разблокировать /dev/sdb
с помощью пароляhunter2
:
udisksctl unlock --block-device /dev/sdb --key-file <(echo -n "hunter2")
Передача конфиденциальных данных напрямую через командную строку небезопасна, поэтому следует избегать этого метода.
pass
реализация Вместо этого извлеките строку пароля с помощью pass thumbdrive-password | head -n 1
, обрежьте завершающую новую строку и подставьте ее вместо ключевого файла:
udisksctl unlock \
--block-device /dev/sdb \
--key-file <(pass thumbdrive-password | head -n 1 | tr -d '\n')
Проблема решилась сама собой после повторной попытки кодирования.
Но у меня есть подозрение, почему это произошло. Я сравнил исходный файл и загруженную версию на моем ПК с помощью хэшей, и они определенно не были одинаковыми. Таким образом, объяснение может заключаться в том, что моя загруженная версия каким-то образом была повреждена. С тех пор я не смог воспроизвести эту проблему.
Я также внимательно изучил свою виртуальную машину Fedora CoreOS -. Кажется, что процесс загрузки выглядит примерно одинаково независимо от того, есть ли действующий ignition
конфиг или вообще нет ignition
. Я подозреваю, что недействительная -конфигурация ignition
будет просто проигнорирована, и процесс загрузки продолжится без нее.