Невозможно установить GRUB на Windows/CentOS 8 с двойной загрузкой (LVM+LUKS)

Как вы уже выяснили, имена устройств, такие как /dev/st0, не являются постоянными; они названы в порядке обнаружения. Лучший способ получить имена, которые переживут перезагрузку, — это написать правило UDEV, которое создает нужную вам символическую ссылку. У г-на Google есть много информации о том, как написать правило UDEV, но, по сути, когда устройство обнаружено, ядро ​​​​предлагает атрибуты устройства подсистеме UDEV, где применяются правила, и если все предикаты правила выполняются, то действие правила будет выполнено. создать символическую ссылку.

0
27.01.2020, 17:12
1 ответ

Я не могу объяснить, почему Boot -Repair -Disk сообщает об ошибке с таблицей разделов, а также почему Windows считает, что /dev/sda4является основным разделом. Вывод fdisk не сообщает об ошибках в таблице разделов MBR, а также может прочитать расширенную таблицу разделов в /dev/sda5.

Итак, все, что нам нужно сделать, это:

  • восстановить доступ к grub2, который был установлен первым (или установить новый)
  • установить команды загрузки цепочки, необходимые для загрузки Windows из grub .

Re -установить grub2

Grub2 был установлен в сектора после MBR (и перед сектором 2048 ). Этот grub2 на диске имеет жестко запрограммированный адрес каталога /boot/grub. К сожалению, содержимое /boot/grubнаходится внутри LVM и закодировано с помощью LUKS . Grub должен:

  • чтение внутри дисков LVM. Это делается с помощью модуля lvm.mod.
  • расшифровать диски LUKS. Это делается с помощью модуля luks.mod.

Оба модуля также находятся внутри /boot/grub. Это создает ловушку -22 ситуации, когда ключи от машины находятся внутри машины.

Решение состоит в том, чтобы записать несколько модулей в фиксированные сектора диска и загрузить их при загрузке. Затем запросите пароль LUKS, расшифруйте каталог /boot/grub, загрузите дополнительные модули и, наконец, загрузите /boot/grub/grub.cfg, чтобы узнать, какие другие модули необходимо загрузить, и предоставить пользователю список выбора ОС.

Однако модули, которые необходимо записать на диск, находятся внутри /usr/lib/grub/i386-pc/lvm.mod(, например ). Да, grub можно использовать в нескольких архитектурах. Который также зашифрован в системе, которую вы установили.

Таким образом, единственным решением является:

  1. загрузитесь с какого-нибудь живого ISO (, в котором есть все текущие файлы grub в/usr/lib)
  2. Смонтируйте все (расшифрованные и системные )диски в правильном месте.
  3. Используйте chrootдля переключения на «настоящую» систему на диске.
  4. Используйте grub-install, чтобы повторно -поместить grub на диск.

Это руководство по спасению CentOS , которому вы должны следовать. Это упрощено, за исключением, к сожалению, части расшифровки зашифрованных разделов LVM -LUKS, которая добавляет еще одну особенность.

После того, как это будет сделано, и ваша система загрузится в CentOS через grub, вам нужно включить (, если окна не были автоматически -обнаружены при установке grub -), чтобы добавить пару записей в файл grub.cfg. Использовать записи с этой страницы

Связанные:

1
28.01.2020, 02:54

Теги

Похожие вопросы