Введение
Это не для того, чтобы вернуть или восстановить загрузчик Manjaro. Чтобы восстановить загрузчик Manjaro, смотрите здесь.
Это необходимо для того, чтобы предотвратить переопределение рабочего загрузчика Manjaro загрузчиками других ОС. Подобное может произойти, когда другая ОС обновляет свой grub (не update-grub). А из-за реализации intel-ucode в Manjaro, загрузчик другой ОС не сможет загрузить Manjaro OS, отсюда и это руководство.
Bios-legacy системы
Загрузите все остальные ОС linux и на их терминалах сделайте следующее
где /dev/sdxy - другой раздел ОС. Обратите внимание, что для некоторых ОС требуется команда 'grub2-install'.
При установке новой ОС linux в программе установки всегда выбирайте "установка загрузчика в раздел". Мы также можем не устанавливать загрузчик, но выбор "установить в раздел" (Manjaro называет это "в систему") достаточно хорош и предпочтителен, чем установка загрузчика в каждую ОС.
Если вы решите удалить Manjaro позже - не забудьте сделать загрузчик другой ОС по умолчанию перед удалением.
Системы UEFI
В любом терминале ОС linux посмотрите вывод команды
Это приведет к следующему результату:
$ efibootmgr
BootCurrent: 0001 Timeout: 1 seconds BootOrder: 0001,0002,0004,0005,0008 Boot0001* manjaro Boot0002* ubuntu Boot0004* UEFI: WDC WD10PURX Boot0005* Hard Drive Boot0008* Systemd Boot Manager
Убедитесь, что порядок загрузки Manjaro находится в начале - как указано выше: "BootOrder: 0001,0002,0004,0005,0008"
Если это не так, измените порядок таким образом:
Всякий раз при установке другой ОС, она будет находиться вверху этого порядка загрузки; и нам нужно будет изменить порядок таким образом, чтобы Manjaro снова оказалась на самом верху. И мы можем сделать это с помощью установочного носителя livecd. Если мы забудем, то сможем сделать это после установки любой ОС. Для UEFI, мы все еще можем выбрать Manjaro для загрузки в boot-setup (одно из F8 ~ F12).
Одного этого должно быть достаточно для большинства систем UEFI. Однако в некоторых ситуациях (о чем сообщалось в некоторых темах здесь) этого не происходит (возможно, из-за проблем с прошивкой). Приведенные выше шаги не гарантируют, что загрузчик Manjaro будет загружен. В этих случаях необходимо выполнить еще одну команду.
sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi
Или, если это сделано в livecd (или другой ОС) и смонтирован раздел / в /mnt и раздел /boot/efi в /mnt/boot/efi
sudo cp /mnt/boot/grub/x86_64-efi/core.efi /mnt/boot/efi/EFI/boot/bootx64.efi
Копирование /boot/efi/EFI/Manjaro/grubx64.efi вместо /boot/grub/x86_64-efi/core.efi может привести к тому же результату, поскольку /boot/efi/EFI/Manjaro/grubx64.efi сам является копией /boot/grub/x86_64-efi/core.efi
Так что это тоже альтернатива.
sudo cp /boot/efi/EFI/Manjaro/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
Выполнение этой дополнительной команды там, где она не нужна, похоже, не вредит системе.
Альтернативный запасной вариант
(Как bios-legacy, так и uefi)
Несмотря на наши усилия, мы все еще можем использовать другую ОС grub для загрузки Manjaro и это может оказаться полезным, особенно если вышеописанные методы кажутся сложными. Или если мы столкнулись с тем, что не можем попасть в загрузчик Manjaro.
В системе grub 2 другой ОС создайте файл custom.cfg
sudo touch /boot/grub/custom.cfg
Некоторые ОС, такие как Suse, Fedora, Mageia используют каталог в /boot/grub2, а не /boot/grub, поэтому учтите этот момент. Затем добавьте следующее во вновь созданный custom.cfg. Не нужно обновлять grub или изменять /etc/default/grub и будет работать (сохраняться) командами типа grub-installs или update-grubs. И, конечно, сохраняется на любом новом ядре Manjaro. Обратите внимание, что эта запись/записи не будут отображаться в их grub.cfg.
menuentry "Manjaro - configfile " {
insmod part_gpt part part_msdos insmod ext2 search --no-floppy --fs-uuid --set=root xxxxxxxxxxxxxxxxxxxxxxxx configfile /boot/grub/grub.cfg }
btrfs потребуются дополнительные настройки (rootflag=subvolume=@)