Проблема с «grub-mkconfig» при установке Arch Linux: «grub-mkconfig» не может подключиться к lvmetad

Проблема с «grub-mkconfig» при установке Arch Linux: «grub-mkconfig» не может подключиться к lvmetad

У меня возникла проблема с переустановкойАрч Линуксна компьютере с двойной загрузкой Windows 10.

По разным не связанным между собой причинам я решил сделать резервную копию всего в моей старой установке Arch Linux и начать заново. У меня есть Arch Linux live media на USB, поэтому я пошел вперед и загрузился с него (вУЕФИ), отформатировал раздел Linux и выполнил руководство по установке Arch Linux.

Все, казалось, работало нормально, пока я не добрался до раздела «установить загрузчик». Я не был на 100% уверен, что делать здесь, так как руководство для начинающих, которым я пользовался раньше, было удалено в пользу (гораздо, гораздо более краткого) руководства по установке.

Я знаю, что мойЭФИВ разделе уже было все необходимое для GRUB, но я решил, что его придется изменить для новой установки.

  • Я удалил /boot/EFI/grub.efiзаглушку и переименовал /boot/grub/в /boot/grub.bak.
  • Я побежал
    pacman -S grub os-prober
    
    запустил grub-installкоманду из руководства по установке Arch с помощью target=x86_64-efiи directory=/boot(моя точка монтирования для моего раздела EFI), а затем запустил
    grub-mkconfig -o /boot/grub/grub.cfg
    

Вот тут-то и начались мои проблемы. Запуск grub-mkconfigкоманды выдал мне failed to connect to lvmetadошибку ' ' и сообщил, что она возвращается в резервный режим. Она успешно создала grub.cfgфайл в правильном каталоге, однако в меню не было никаких записей.

Когда я пытаюсь загрузиться, все, что я получаю, это командная строка GRUB. Возвращаясь к моему Arch Linux live media и переделывая arch-chroot, я зашел в свой /boot/grub.bakи скопировал разделы меню для Arch Linux оттуда, убедившись, что заменил старый UUID на тот, который в настоящее время отображается в моемfstabдля моего корневого каталога. Это вернуло меню GRUB при перезагрузке, но выбор Arch Linux дал мне ошибку, что /vmlinux couldn't be found.

Я вернулся в свой chrootна живом медиа и перезапустил grub-config. Все еще нет пунктов меню. Я нашелэтот вопросс похожей проблемой, в которой говорилось, что была известная проблема со grub-mkconfigскриптом-помощником. Это было в 2014 году, поэтому я подумал, что вряд ли моя проблема была такой же, но я последовал лучшему ответу там. Было предложено сделать следующее:

только что столкнулся с той же проблемой и нашел другой обходной путь. По сути, это означает сделать /runкаталог hosts доступным для гостя.

Сначала мы монтируем /runтам, где он может быть доступен гостю. Я предполагаю, что ваш установочный раздел смонтирован в /mnt.

mkdir /mnt/hostrun
mount --bind /run /mnt/hostrun

Затем переходим chrootв гостевую систему и монтируем хостовую систему /run/lvmв гостевую /run.

arch-chroot /mnt /bin/bash
mkdir /run/lvm
mount --bind /hostrun/lvm /run/lvm

Затем вы можете запустить grub-mkconfigи grub-installбез ошибок LVM. Это также заставляет команды вести себя так, как будто вы устанавливаете с LVM, если это того стоит.

После этого не забудьте размонтировать его /run/lvmперед выходом из chroot.

Это фактически избавило меня от fails to connect to lvmetadошибки, но заменило ее на /dev/sdx not initialized in UDEV. Команда по-прежнему создает , grub.cfgно без пунктов меню.

Я могу войти в Windows, выбрав диспетчер загрузки Windows в F12меню «Hammer while booting» моего ноутбука.

решение1

Проблема появляется только потому, что вы находитесь в arch-chrootи используете os-prober. Что решило мой случай, так это:

  • Сделайте резервную копию grub.cfg, если вы еще этого не сделали.
  • Удалять os-prober( pacman -R os-prober,или вы можете отключить его)
  • Бегатьgrub-mkcondig
  • Перезагрузитесь в Arch
  • Установитьos-prober
  • Беги grub-mkconfigснова

решение2

У меня была та же проблема. Это старый пост, но я опубликую свой способ решения, вдруг кому-то поможет.

Как и у вас, у меня была полная резервная копия, включая рабочий grub.cfgфайл. Я извлек необходимые пункты меню из старого grub.cfgфайла и добавил их в /etc/grub.d/40_custom. Затем я перезапустил

grub mkconfig -o /boot/grub/grub.cfg

Теперь все хорошо.

os-proberэто низкоприоритетный удобный элемент и не является действительно необходимым. Лично я бы не стал тратить много времени, пытаясь заставить его работать. Это личный выбор. Некоторые люди любят пытаться устранять неполадки такого рода, и я благодарю их за усилия, но другим нужны их системы для реальной работы, у них есть ограничения по времени и им нужно все настроить и запустить.

В конце концов эта проблема будет исправлена ​​либо через программное обеспечение, либо через документацию. Если у вас есть вопросы о том, как настроить пункты меню в файле 40_custom, вы найдете множество примеров через поиск в Интернете.

Связанный контент