LINUX.ORG.RU

The LUKS device /dev/sda2 does not contain a LUKS header


0

1

Купил себе 4G модем.
Чтобы он заработал, пересобрал ядро на своей генте с поддержкой ppp.
После перезагрузки при запуске вываливается сие чудо.
Как это может быть связано?
конфиг grub:

set root=(hd0,1)
linux /gentoo-3.11.0-amd64 crypt_root=/dev/sda2 real_rool=/dev/mapper/root root=/dev/ram0 quiet
initrd /initramfs-genreknel-x86_64-3.11.0-gentoo
P.S. Больше ничего кроме как добавления в ядро поддержки ppp не делал.



Последнее исправление: Glaciuse (всего исправлений: 2)

real_rool=/dev/mapper/root

Сначала это проверь. real_root, а не rool. Это ты при перепечатке ошибся или у тебя так? Потом продолжим.

Zubok ★★★★★
()

crypt_root=/dev/sda2

Ты используешь шифрованный раздел? Если нет, то зачем эта опция? Вот он пытается увидеть заголовок LUKS на диске /dev/sda2 и не видит. Или у тебя диск шифрован, но заголовок LUKS ты не создавал. Либо эта опция лишняя.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

Это ты при перепечатке ошибся или у тебя так?

Опечатался тут. У меня написано real_root

Ты используешь шифрованный раздел?

Да

Или у тебя диск шифрован, но заголовок LUKS ты не создавал

Я на этой системе с зашифрованным разделом уже 2 месяца сижу и все работало, пока ядро не пересобрал с поддержкой ppp

Хорошо что конфиг старый остается в /usr/src/linux/.config.old, хоть откатить могу.

Glaciuse
() автор топика
Ответ на: комментарий от Glaciuse

Самое веселое что старое ядро теперь тоже не работает :/

Похоже, дело не в ядре. Мне кажется, что у тебя при установке нового ядра затерся заголовок LUKS у /dev/sda2. Похоже, что уже любое ядро работать не будет, так как убита информация в его слотах.

Ты, конечно, заголовок LUKS не бекапил, да? Теперь вопрос остается, можно ли восстановить. Ищи в гугле "(recover | recovering) luks"

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Glaciuse

Вероятно, что при установке нового ядра оно было не в курсе, что диск зашифрован и просто на устройство /dev/sda2 что-то записалось, затерев заголовок LUKS. А у тебя /dev/sda2 - это шифрованное устройство, а расшифрованное уже - это /dev/mapper/root. Вся работа должна осуществляться на последнем.

Zubok ★★★★★
()
Ответ на: комментарий от leave

а старый конфиг ядра, конечно, не сохранился?

сохранился, по нему я и собирал старое ядро

Мне кажется, что у тебя при установке нового ядра затерся заголовок LUKS у /dev/sda2.

Я загрузился с livecd и спокойно зашел на свой зашифрованный раздел.

Glaciuse
() автор топика
Ответ на: комментарий от Glaciuse

Я загрузился с livecd и спокойно зашел на свой зашифрованный раздел.

Это хорошо! А как ты зашел на свой раздел? Можешь с LiveCD проверить наличие заголовка LUKS? вызови cryptsetup с параметром isLuks /dev/sda2

Zubok ★★★★★
()
Ответ на: комментарий от Glaciuse

Для начала надо проверить наличие заголовка LUKS. А также убедиться, что ядро действительно шифрованный раздел пытается расшифровать. А вдруг он у тебя не /dev/sda2 на момент расшифровки, а какой-нибудь /dev/sdb2 или просто номер не 2, а 1.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Нашел источник ошибки:
Обновилось ядро с версии 3.11.0 до версии 3.11.3, при этом initrafs остался по прежнему для 3.11.0. Пересобрал initramfs:

genkernel --kernel-config=/usr/src/linux/.config --luks initramfs
Теперь при загрузке появляется надпись:
Enter passphrase for /dev/sda2:
Но после ввода пароля вываливается следующая ошибка:
dvice-mapper: reload ioctl on temporary-cryptsetup-2598 failed: invalid argument
Failed to setup dm-crypt key mapping for device /dev/sda2.
Check that kernel supports aes-cbciv:sha256 cipher (check syslog for more info).
Failed to read from key storage.

Вот luksDump:

# cryptsetup luksDump /dev/sda2
LUKS header information for /dev/sda2

Version:                 1
Cipher name:             aes
Cipher mode:             cbc-essiv:sha256
Hash spec:               sha1
Payload offset:          4096
MK bits                  256
MK digest:               <много hex>
MK salt:                 <много hex>
MK iterations:           18750

UUID: <id устройства>

Key Slot 0: ENABLED
        Iterations:           75380
        Salt:                 <много hex>
        Key material offset:  0
        AF stripes:           4000

В ядре вроде я включал sha1, sha256 и aes-cbc, сегодня днем проверю.

Glaciuse
() автор топика
Ответ на: комментарий от Glaciuse

Значит, я не угадал. Бывает. :) Сбило с толку, что и старое ядро не заработало, а до этого все было ОК. Вот и подумал, что LUKS header прибил случайно. А я не понял, а старое ядро не заработало тогда почему? Тоже initrd чужой?

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Мне кажется что да. Я мог случайно обновить исходники и перенести конфиг туда, но не заменить текущее ядро на новое. Потом заменил и оно перестало работать, будет мне урок на будущее )

Glaciuse
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.