Я разобрал свой компьютер и снова собрал его, после чего GRUB исчез.
У меня два диска: SSD (sdb, GPT) и жесткий диск (sda, MBR):
sda4: arch linux /
sdb1: восстановление windows (ntfs)
Я обычно загружался на своем SSD, и у меня был загрузчик окон и arch_grub
Теперь у меня только загрузчик Windows, но файлы grub все еще есть, есть grubx64.efi
in /boot/efi/EFI/arch_grub
, и grubenv
, grub.cfg
, x86_64-efi
in /boot
(Я установил окна в режиме UEFI, и, я думаю, я также установил арку в режиме UEFI, я использовал архитектуру)
Так что в основном grub находится в /boot
который находится на моем жестком диске (и /boot/efi
на моем SSD), все работало нормально до сих пор. Я попытался использовать boot-repair
на ubuntu live usb, но у меня была ошибка: « grub-amd64-efi-signed
не имеет установленного пакета grub-amd64-efi-signed
»
Я думаю, что я все еще могу загрузиться с аркой с командной строкой grub, но что мне тогда делать? У меня уже есть все необходимые файлы, поэтому grub-install будет бесполезен
Загрузите диск восстановления Linux / live CD, а затем установите / dev / sda4 в / mnt и / dev / sdb2 в / mnt / boot. chroot / mnt, а затем запустить grub-install / dev / sdb.
Спасибо Raman Sailopal и за помощь, но это не соответствовало моему делу.
Ниже приведены точные шаги, предполагающие, что / dev / sda4 – это linux root, / dev / sdb2 – это ваш раздел EFI (расположенный в / boot / efi), а ваши файлы linux / initrd – /boot/vmlinuz-linux
& /boot/initramfs.img
Запишите живое usb ubuntu (16.04?) С архитектурой amd64, загрузите его и вставьте следующие команды:
sudo os-prober efibootmgr
Установите os-prober или efibootmgr, если он еще не установлен:
sudo apt-get install os-prober sudo apt-get install efibootmgr
Grub в режиме efi, вероятно, не установлен, установите его тоже
sudo apt-get install grub-efi-amd64-signed
Затем установите grub:
sudo mount -t ext4 /dev/sda4 /mnt sudo mount -t vfat /dev/sdb2 /mnt/boot/efi grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot --bootloader-id=grub
Не пытайтесь использовать grub-mkconfig
, это не сработает.
Вместо этого, загрузившись с вашего нового загрузчика загрузчика grub, у вас будет оболочка grub, вставьте следующие команды :
set root=(hd0,4) linux /boot/vmlinuz-linux root=/dev/sda4 initrd /boot/initramfs.img boot
После этого вы должны быть в linux, смонтируйте свой efi-раздел, если он еще не установлен, установите grub / os-prober / efibootmgr и выполните следующие действия:
sudo os-prober grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub grub-mkconfig -o /boot/grub/grub.cfg
Перезагрузитесь, и grub вернулся.