Вопрос или проблема
HardenedArray имеет полезное руководство по установке archlinux по адресу Эффективная шифрованная установка Arch с загрузкой UEFI.
Тем не менее, я столкнулся с трудностями на раннем этапе установки — конкретно, в момент открытия моего раздела LUKS.
Команда cryptsetup -c aes-xts-plain64 -h sha512 -s 512 --use-random luksFormat /dev/sda3
выполняется без ошибок, но после ввода команды cryptsetup luksOpen /dev/sda3 tsundoku
/dev/mapper/tsundoku не становится доступным.
ls /dev/mapper
показывает только /dev/mapper/control, а не /dev/mapper/tsundoku, как я ожидал.
При выполнении cryptsetup luksOpen /dev/sda3 tsundoku --verbose --debug
появляется следующее сообщение об ошибке:
“Попытка прочитать … заголовок LUKS2 по смещению …. Чтение заголовка LUKS не удалось (-22). Команда завершилась с кодом -1 (неправильные или отсутствующие параметры).”
Может кто-нибудь подсказать возможные причины этой ошибки? Мои попытки найти информацию онлайн до этого момента не увенчались успехом.
Большое спасибо.
— РЕДАКЦИЯ —
Я задал этот вопрос с тремя целями: (1) установить arch-linux на 6-летнем x86-64 Intel Core i5 2.50GHz ASUS; (2) более конкретно, установить arch-linux с шифрованным разделом; (3) узнать, почему, несмотря на мои ожидания, cryptsetup luksOpen /dev/sda3 tsundoku
не создает запись сопоставления tsundoku в пути /dev/mapper.
Я новичок в arch-linux, так что, хотя я предпочел бы установить ОС с шифрованием, я согласен установить ее любым способом.
Раньше мне не удавалось следовать инструкциям по установке в официальной вики arch, поэтому, увидев четко изложенное руководство от HardenedArray, я решил попробовать — в худшем случае я мог бы столкнуться с проблемой, подобной описанной выше, и узнать что-то новое.
Что касается проблемы, вот еще немного деталей:
В соответствии с руководством HardenedArray: я gdisk /dev/sda
и создаю следующие разделы:
- /dev/sda1, по умолчанию, 100M, EF00
- /dev/sda2, по умолчанию, 250M, 8300
- /dev/sda3, по умолчанию, по умолчанию, 8300
Затем я выполняю следующее:
mkfs.vfat -F 32 /dev/sda1
mkfs.ext2 /dev/sda2
На этом этапе я пытаюсь инициализировать LUKS-раздел и настроить сопоставление.
> cryptsetup --verbose -c aes-xts-plain64 -h sha512 -s 512 --use-random luksFormat /dev/sda3
Команда выполнена успешно
> cryptsetup -v isLuks /dev/sda3
Команда выполнена успешно
> ls /dev/mapper
control
> cryptsetup luksOpen /dev/sda3 tsundoku --verbose --debug
cryptsetup 2.0.0. выполняет "cryptsetup luksOpen /dev/sda3 tsundoku --verbose --debug"
Запуск команды open.
Блокировка памяти.
...
Попытка загрузить любой тип шифрования с устройства /dev/sda3.
Crypto backend ... инициализирован ...
Обнаружено ядро Linux 4.14.9-1-ARCH x86_64.
...
Чтение заголовка LUKS размером 1024 с устройства /dev/sda3.
...
Активация тома tsundoku с использованием токена -1.
Запрос на ввод пароля.
Активация тома tsundoku [keyslot -1] с использованием пароля.
...
Обнаружена версия dm-ioctl 4.37.0.
Бэкэнд device-mapper работает с поддержкой UDEV.
dm status tsundoku [ opencount flush ] [...] (...)
Попытка открыть ключевой слот 0 [ACTIVE_LAST].
Чтение области ключевого слота 0.
Использование криптообертки в пространстве пользователя для доступа к области ключевого слота.
Попытка открыть ключевой слот 1 [INACTIVE].
# ключевые слоты 2-7 также [INACTIVE]
Освобождение контекста криптографического устройства /dev/sda3.
Освобождение бэкэнда device-mapper.
Разблокировка памяти.
Команда завершилась с кодом -2 (нет разрешения или неправильный пароль).
> ls /dev/mapper
control
> cryptsetup luksDump /dev/sda3
Информация заголовка LUKS для /dev/sda3
Версия: 1
Имя шифра: aes
Режим шифрования: xts-plain64
Спецификация хеширования: sha512
...
UUID: 56d8...
Ключевой слот 0: ВКЛЮЧЕН
...
Ключевой слот 1: ОТКЛЮЧЕН
# Ключевые слоты 2-7 также ОТКЛЮЧЕНЫ
Неправильны ли шаги, которые я описал выше, каким-либо образом? Возможно, были альтернативы, которые я должен был рассмотреть, или промежуточные действия, которые я пропустил?
Если нет, должна ли команда cryptsetup luksOpen /dev/sd{a} {volume}
создавать сопоставление объема в пути /dev/mapper?
Если да, позволяют ли детали, которые я добавил выше, кому-либо определить, почему путь /dev/sda3/tsundoku не появляется на моем компьютере? И если нет, есть ли какая-то дополнительная информация, которую я мог бы добавить для прояснения проблемы?
Большое спасибо.
Вы используете неправильную команду, вместо этого используйте следующую команду, пока не завершите установку и не загрузитесь в новую ОС Arch:
# cryptsetup --type luks open /dev/sdaX plain1 #измените **plain1** на ваше место отображения
После загрузки в вашу новую ОС вы можете использовать другую. Не забудьте, что DuckDuckGo, Qwant, Google и так далее — ваши друзья. Продолжайте с этого момента, удачи.
Ответ или решение
Проблема, с которой вы столкнулись при выполнении команды cryptsetup luksOpen /dev/sda3 tsundoku
, заключается в том, что вы не видите ожидаемую точку привязки /dev/mapper/tsundoku
, и вместо этого получаете сообщение об ошибке, связанное с LUKS заголовком. Давайте рассмотрим возможные причины этой проблемы и подходы к ее решению.
Основные шаги и факторы, которые следует учитывать:
-
Проверка версии
cryptsetup
и ядра: Убедитесь, что вы используете актуальную версиюcryptsetup
. В вашем выводе указана версия 2.0.0, но стоит проверить наличие доступных обновлений. Также проверьте, что ваше ядро Linux (в данном случае 4.14.9) совместимо с вашей версиейcryptsetup
. -
Заголовок LUKS: Сообщение об ошибке "LUKS header read failed (-22)" может указывать на то, что заголовок LUKS поврежден или искажен. Вы можете выполнить команду
cryptsetup luksDump /dev/sda3
, чтобы подтвердить, что заголовок корректный и что ключевые слоты активны. В вашем случае, ключевой слот 0 активен, что является положительным знаком. Если бы заголовок был поврежден, вы бы не получили вывод сluksDump
. -
Правильность команды
luksFormat
: Убедитесь, что команда для форматирования вашего раздела LUKS была выполнена правильно:cryptsetup -c aes-xts-plain64 -h sha512 -s 512 --use-random luksFormat /dev/sda3
Важно, чтобы вы следовали всем шагам установки LUKS и использовали правильные параметры.
-
Проблемы с вводом пароля: Ошибка "no permission or bad passphrase" может возникнуть, если вы вводите неправильный пароль. Убедитесь, что вы используете правильный пароль для разблокировки разделе (это пароль, который вы задаете при выполнении команды
luksFormat
). -
Права доступа: Убедитесь, что у вашего пользователя есть необходимые права на доступ к
cryptsetup
и к устройствам под/dev
. Попробуйте выполнить команды от имени суперпользователя, если вы еще этого не сделали. -
Использование другого метода: Как было предложено в вашем обсуждении, попробуйте использовать команду следующего типа, чтобы увидеть, приведет ли это к успешному созданию привязки:
cryptsetup --type luks open /dev/sda3 tsundoku
Итог:
После выполнения всех необходимых проверок и исправлений, повторите команду cryptsetup luksOpen /dev/sda3 tsundoku
. Если проблема сохраняется, попробуйте загрузиться с Live USB Arch Linux и выполните все шаги в среде Live, чтобы убедиться, что нет проблем с текущей установленной системой.
Если ни один из предложенных методов не решает вашу проблему, рассмотрите возможность создания новой LUKS файловой системы на другом разделе, чтобы исключить возможность повреждения текущего заголовка LUKS.
Рекомендации:
- Поддерживайте регулярные резервные копии важной информации.
- Прочитайте официальную документацию Arch Wiki о LUKS, чтобы получить более полные инструкции и функции, которые могут помочь в установке.
- Если у вас есть возможность, попробуйте задать вопрос на форумах сообщества Arch Linux или в других специализированных группах по Linux, где вы можете получить помощь от опытных пользователей.