Сохранение загрузчика Manjaro

Revision as of 09:26, 2 February 2023 by Krotesk (talk | contribs) (Created page with "Всякий раз при установке другой ОС, она будет находиться вверху этого порядка загрузки; и нам ну...")
Other languages:
English • ‎Türkçe • ‎русский

Введение

Это не для того, чтобы вернуть или восстановить загрузчик Manjaro. Чтобы восстановить загрузчик Manjaro, смотрите здесь.

Это необходимо для того, чтобы предотвратить переопределение рабочего загрузчика Manjaro загрузчиками других ОС. Подобное может произойти, когда другая ОС обновляет свой grub (не update-grub). А из-за реализации intel-ucode в Manjaro, загрузчик другой ОС не сможет загрузить Manjaro OS, отсюда и это руководство.

Bios-legacy системы

Загрузите все остальные ОС linux и на их терминалах сделайте следующее

sudo grub-install --force /dev/sdxy

где /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" Если это не так, измените порядок таким образом:

sudo efibootmgr -o 0001,0002,0004,0005,0008

Всякий раз при установке другой ОС, она будет находиться вверху этого порядка загрузки; и нам нужно будет изменить порядок таким образом, чтобы Manjaro снова оказалась на самом верху. И мы можем сделать это с помощью установочного носителя livecd. Если мы забудем, то сможем сделать это после установки любой ОС. Для UEFI, мы все еще можем выбрать Manjaro для загрузки в boot-setup (одно из F8 ~ F12).

That alone should be sufficient for most UEFI systems. However in some situations (and reported in some topics here), it is not (possibly due to firmware issues). The above steps do not ensure that Manjaro bootorder will be booted up. In these cases, one extra command is required.

sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi

Or, if done at livecd (or another OS) and mounted / partition to /mnt and /boot/efi partition to /mnt/boot/efi

sudo cp /mnt/boot/grub/x86_64-efi/core.efi /mnt/boot/efi/EFI/boot/bootx64.efi

Copying /boot/efi/EFI/Manjaro/grubx64.efi instead of /boot/grub/x86_64-efi/core.efi can also accomplish the same thing because /boot/efi/EFI/Manjaro/grubx64.efi is itself a copy of /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=@)