
У меня возникла проблема с переустановкойАрч Линуксна компьютере с двойной загрузкой 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
, вы найдете множество примеров через поиск в Интернете.