Difference between revisions of "Preserve Manjaro Bootloader/ru"

(Created page with "efibootmgr")
Tags: Mobile web edit Mobile edit
 
 
(26 intermediate revisions by 2 users not shown)
Line 2: Line 2:
__TOC__
__TOC__


= Introduction =
= Введение =
This is not to get back or to restore your Manjaro bootloader. To restore your Manjaro bootloader, see [https://wiki.manjaro.org/index.php?title=Restore_the_GRUB_Bootloader this].
Это не для того, чтобы вернуть или восстановить загрузчик Manjaro. Чтобы восстановить загрузчик Manjaro, смотрите [[GRUB/Restore_the_GRUB_Bootloader/ru|здесь]].


This is to prevent your working Manjaro bootloader being overridden by other OS bootloaders. This can happen when the other OS updates its grub (not update-grub). And due to Manjaro's implementation of intel-ucode, other OS bootloader cannot boot Manjaro OS, hence this tutorial.
Это необходимо для того, чтобы предотвратить переопределение рабочего загрузчика Manjaro загрузчиками других ОС. Подобное может произойти, когда другая ОС обновляет свой grub (не update-grub). А из-за реализации intel-ucode в Manjaro, загрузчик другой ОС не сможет загрузить Manjaro OS, отсюда и это руководство.


= Bios-legacy systems =
= Bios-legacy системы =
Boot up all other linux OS and at their terminals, do
Загрузите все остальные ОС linux и на их терминалах сделайте следующее


  sudo grub-install --force /dev/sdxy
  {{UserCmd|command=sudo grub-install --force /dev/sdxy}}


where /dev/sdxy is the other OS partition. Note some OS's need command 'grub2-install'. If need further elaboration, see [https://forum.manjaro.org/t/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on/21226/7?u=gohlip here].
где /dev/sdxy - другой раздел ОС. Обратите внимание, что для некоторых ОС требуется команда {{ic|grub2-install}}.  


When installing a new linux OS, at their installer, always select "installing bootloader to partition". We can also choose not to install bootloader, but selecting 'to partition' (Manjaro calls this 'to system') is good enough and is preferable to have a bootloader installed at every OS.
При установке новой ОС linux в программе установки всегда выбирайте "установка загрузчика в раздел". Мы также можем не устанавливать загрузчик, но выбор "установить в раздел" (Manjaro называет это "в систему") достаточно хорош и предпочтителен, чем установка загрузчика в каждую ОС.


If you choose to uninstall Manjaro later on, remember to make the other OS bootloader as default before uninstalling.
Если вы решите удалить Manjaro позже - не забудьте сделать загрузчик другой ОС по умолчанию перед удалением.


= UEFI systems =
= Системы UEFI =
At any linux OS terminal, see output of
В любом терминале ОС linux посмотрите вывод команды


  efibootmgr
  {{UserCmd|command=efibootmgr}}


It will give an output like this:
Это приведет к следующему результату:
{{UserCmdOutput|command=efibootmgr|result=
<pre>
  BootCurrent: 0001
  BootCurrent: 0001
  Timeout: 1 seconds
  Timeout: 1 seconds
Line 32: Line 34:
  Boot0005* Hard Drive
  Boot0005* Hard Drive
  Boot0008* Systemd Boot Manager
  Boot0008* Systemd Boot Manager
</pre>
}}


Make sure Manjaro bootorder is at the beginning as above: "BootOrder: 0001,0002,0004,0005,0008"
Убедитесь, что порядок загрузки Manjaro находится в начале - как указано выше: "BootOrder: 0001,0002,0004,0005,0008"
If it is not, reorder such that it is, like this:
Если это не так, измените порядок таким образом:


  sudo efibootmgr -o 0001,0002,0004,0005,0008
  {{UserCmd|command=sudo efibootmgr -o 0001,0002,0004,0005,0008}}


Whenever we install another OS, it will be at the top of that bootorder; and we will need to reorder such that Manjaro is again at the top. And we can do that at that install livecd media itself. If we forget, we can do it after installation at any OS. For UEFI, we can still select Manjaro to boot at boot-setup (one of F8 ~ F12).
Всякий раз при установке другой ОС, она будет находиться вверху этого порядка загрузки; и нам нужно будет изменить порядок таким образом, чтобы Manjaro снова оказалась на самом верху. И мы можем сделать это с помощью установочного носителя livecd. Если мы забудем, то сможем сделать это после установки любой ОС. Для UEFI, мы все еще можем выбрать Manjaro для загрузки в boot-setup (одно из F8 ~ F12).


That alone should be sufficient for most UEFI systems.  
Одного этого должно быть достаточно для большинства систем UEFI.  
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.
Однако в некоторых ситуациях (о чем сообщалось в некоторых темах здесь) этого не происходит (возможно, из-за проблем с прошивкой). Приведенные выше шаги не гарантируют, что загрузчик Manjaro будет загружен. В этих случаях необходимо выполнить еще одну команду.


  sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi
  {{UserCmd|command=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
Или, если это сделано в livecd (или другой ОС) и смонтирован раздел / в /mnt и раздел /boot/efi в /mnt/boot/efi


  sudo cp /mnt/boot/grub/x86_64-efi/core.efi /mnt/boot/efi/EFI/boot/bootx64.efi
  {{UserCmd|command=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
Копирование /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


So doing this is also an alternative.
Так что это тоже альтернатива.


  sudo cp /boot/efi/EFI/Manjaro/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
  {{UserCmd|command=sudo cp /boot/efi/EFI/Manjaro/grubx64.efi /boot/efi/EFI/boot/bootx64.efi}}


Doing this extra command where the extra command is not needed does not seem to harm the system.
Выполнение этой дополнительной команды там, где она не нужна, похоже, не вредит системе.


= A fallback alternative =
= Альтернативный запасной вариант =
(Both bios-legacy and uefi)
(Как bios-legacy, так и uefi)


We can despite our efforts, still use the other OS grub to boot Manjaro, and might come in useful, particularly if the above methods seems daunting. Or if we are stuck not being able to get to Manjaro bootloader.
Несмотря на наши усилия, мы все еще можем использовать другую ОС grub для загрузки Manjaro и это может оказаться полезным, особенно если вышеописанные методы кажутся сложными. Или если мы столкнулись с тем, что не можем попасть в загрузчик Manjaro.


At the other OS grub 2 system, create a custom.cfg file
В системе grub 2 другой ОС создайте файл custom.cfg


sudo touch /boot/grub/custom.cfg
{{UserCmd|command=sudo touch /boot/grub/custom.cfg}}


Some OS's like Suse, Fedora, Mageia uses directory in /boot/grub2 not /boot/grub, so do so accordingly.
Некоторые ОС, такие как Suse, Fedora, Mageia используют каталог в /boot/grub2, а не /boot/grub, поэтому учтите этот момент.
Then add the following in the newly created custom.cfg. No need to update-grub or change /etc/default/grub and will stand (persist) grub-installs or update-grubs. And of course persists to any new Manjaro kernel. Note this entry/entries will not be shown in their grub.cfg.
Затем добавьте следующее во вновь созданный custom.cfg. Не нужно обновлять grub или изменять /etc/default/grub и будет работать (сохраняться) командами типа grub-installs или update-grubs. И, конечно, сохраняется на любом новом ядре Manjaro. Обратите внимание, что эта запись/записи не будут отображаться в их grub.cfg.


  menuentry "Manjaro - configfile "  {
  {{File|file=/boot/grub/custom.cfg|content=
<pre>
menuentry "Manjaro - configfile "  {
     insmod part_gpt
     insmod part_gpt
     part part_msdos
     part part_msdos
Line 76: Line 82:
     configfile /boot/grub/grub.cfg
     configfile /boot/grub/grub.cfg
  }
  }
</pre>
}}


btrfs will need additional tweeks (rootflag=subvolume=@)
btrfs потребуются дополнительные настройки (rootflag=subvolume=@)


[[Category:Contents Page{{#translation:}}]]
[[Category:Contents Page{{#translation:}}]]

Latest revision as of 09:42, 2 February 2023

Other languages:
English • ‎Türkçe • ‎русский

Введение

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

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

Bios-legacy системы

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

user $ sudo grub-install --force /dev/sdxy COPY TO CLIPBOARD


где /dev/sdxy - другой раздел ОС. Обратите внимание, что для некоторых ОС требуется команда grub2-install.

При установке новой ОС linux в программе установки всегда выбирайте "установка загрузчика в раздел". Мы также можем не устанавливать загрузчик, но выбор "установить в раздел" (Manjaro называет это "в систему") достаточно хорош и предпочтителен, чем установка загрузчика в каждую ОС.

Если вы решите удалить Manjaro позже - не забудьте сделать загрузчик другой ОС по умолчанию перед удалением.

Системы UEFI

В любом терминале ОС linux посмотрите вывод команды

user $ efibootmgr COPY TO CLIPBOARD


Это приведет к следующему результату:


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

user $ sudo efibootmgr -o 0001,0002,0004,0005,0008 COPY TO CLIPBOARD


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

Одного этого должно быть достаточно для большинства систем UEFI. Однако в некоторых ситуациях (о чем сообщалось в некоторых темах здесь) этого не происходит (возможно, из-за проблем с прошивкой). Приведенные выше шаги не гарантируют, что загрузчик Manjaro будет загружен. В этих случаях необходимо выполнить еще одну команду.

user $ sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi COPY TO CLIPBOARD


Или, если это сделано в livecd (или другой ОС) и смонтирован раздел / в /mnt и раздел /boot/efi в /mnt/boot/efi

user $ sudo cp /mnt/boot/grub/x86_64-efi/core.efi /mnt/boot/efi/EFI/boot/bootx64.efi COPY TO CLIPBOARD


Копирование /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

Так что это тоже альтернатива.

user $ sudo cp /boot/efi/EFI/Manjaro/grubx64.efi /boot/efi/EFI/boot/bootx64.efi COPY TO CLIPBOARD


Выполнение этой дополнительной команды там, где она не нужна, похоже, не вредит системе.

Альтернативный запасной вариант

(Как bios-legacy, так и uefi)

Несмотря на наши усилия, мы все еще можем использовать другую ОС grub для загрузки Manjaro и это может оказаться полезным, особенно если вышеописанные методы кажутся сложными. Или если мы столкнулись с тем, что не можем попасть в загрузчик Manjaro.

В системе grub 2 другой ОС создайте файл custom.cfg

user $ sudo touch /boot/grub/custom.cfg COPY TO CLIPBOARD


Некоторые ОС, такие как Suse, Fedora, Mageia используют каталог в /boot/grub2, а не /boot/grub, поэтому учтите этот момент. Затем добавьте следующее во вновь созданный custom.cfg. Не нужно обновлять grub или изменять /etc/default/grub и будет работать (сохраняться) командами типа grub-installs или update-grubs. И, конечно, сохраняется на любом новом ядре Manjaro. Обратите внимание, что эта запись/записи не будут отображаться в их grub.cfg.

/boot/grub/custom.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=@)