Я перенес все экстенты LV с одного PV на новый PV. И старые, и новые PV были зашифрованными устройствами LUKS. корень является одним из мигрированных LV.
Это не сработало, так как после миграции boot даже не пытался разблокировать новый LUKS PV. Он запрашивал пароль для старых LUKS, которых больше нет, эти диски уже переназначены и перезаписаны.
Однако, если я использую параметры ядра rd.auto = 1 и удаляю старые параметры ядра, которые определяют UUID старого PV, я могу получить linux для загрузки и запросить правильный пароль. Тем не менее, это все еще не работает.
Прежде чем дать пароль, он говорит
dracut-initqueue /usr/bin/crypt-run-generator: line 14: cryptsetup: command not found
Unnecessary job for dev-mapper-luks-<UUID of new PV LUKS> was removed
Итак, он автоматически находит новый раздел LUKS, и позвольте мне разблокировать его, но это все, после того как он разочаровался в поиске на нем пригодных для использования файловых систем. Зачем это делать?
На этом этапе процесс загрузки останавливается, ожидая, пока не завершатся требуемые задания. Я забыл все их имена, но одно - cryptsetup.target, и я думаю, что один монтировал root. Итак, это имеет смысл.
Но я не знаю, как настроить grub и dracut, чтобы это работало. Похоже, что у initrd есть конфигурация, говорящая только о запуске LVM на старом PV. Когда я загружаю изображение в реальном времени, все LV там и данные выглядят великолепно.
Какая конфигурация grub2 (efi mode) и dracut мне нужна, чтобы это исправить?
РЕДАКТИРОВАТЬ После публикации я пробовал много вещей. Я нашел параметры кереля, которые я считаю правильными, но они, кажется, не имеют никакого значения. Я создал новый образ initrd с dracut, к которому я принудительно добавил cryptsetup и новый исправленный файл /etc /crypttab. Это, похоже, помогло, и все ошибки теперь ушли ... но все равно не загрузится! Используя последние опции и initrd, которые я пробовал, процесс загрузки не запрашивает парольную фразу. Он говорит: "Отправка в Plymoth для запроса пароля", но это просто останавливает.
Теперь я попробовал один из вариантов ядра - rd.shell. Это дало мне скорлупу после истечения времени ожидания, не в состоянии найти root. Из оболочки dracut я могу запустить RAID PV mdadm с помощью --assemble --scan, luks. Откройте его с помощью ключевой фразы, и все логические тома будут прямо здесь. Так что я до сих пор не понимаю, чего он хочет.