Difference between revisions of "Preserve Manjaro Bootloader"
Views
Actions
Namespaces
Variants
Tools
(Marked this version for translation) |
(Improve translation tags.) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 13: | Line 13: | ||
<!--T:4--> | <!--T:4--> | ||
sudo grub-install --force /dev/sdxy | {{UserCmd|command=sudo grub-install --force /dev/sdxy}} | ||
<!--T:5--> | <!--T:5--> | ||
where /dev/sdxy is the other OS partition. Note some OS's need command 'grub2-install' | where /dev/sdxy is the other OS partition. Note some OS's need command 'grub2-install'. | ||
<!--T:6--> | <!--T:6--> | ||
Line 28: | Line 28: | ||
<!--T:9--> | <!--T:9--> | ||
efibootmgr | {{UserCmd|command=efibootmgr}} | ||
<!--T:10--> | <!--T:10--> | ||
It will give an output like this: | It will give an output like this:</translate> | ||
{{UserCmdOutput|command=efibootmgr|result= | |||
<pre> | |||
BootCurrent: 0001 | BootCurrent: 0001 | ||
Timeout: 1 seconds | Timeout: 1 seconds | ||
Line 40: | Line 42: | ||
Boot0005* Hard Drive | Boot0005* Hard Drive | ||
Boot0008* Systemd Boot Manager | Boot0008* Systemd Boot Manager | ||
</pre> | |||
}} | |||
<translate> | |||
<!--T:11--> | <!--T:11--> | ||
Line 46: | Line 51: | ||
<!--T:12--> | <!--T:12--> | ||
sudo efibootmgr -o 0001,0002,0004,0005,0008 | {{UserCmd|command=sudo efibootmgr -o 0001,0002,0004,0005,0008}} | ||
<!--T:13--> | <!--T:13--> | ||
Line 56: | Line 61: | ||
<!--T:15--> | <!--T:15--> | ||
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}} | ||
<!--T:16--> | <!--T:16--> | ||
Line 62: | Line 67: | ||
<!--T:17--> | <!--T:17--> | ||
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}} | ||
<!--T:18--> | <!--T:18--> | ||
Line 71: | Line 76: | ||
<!--T:20--> | <!--T:20--> | ||
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}} | ||
<!--T:21--> | <!--T:21--> | ||
Line 85: | Line 90: | ||
At the other OS grub 2 system, create a custom.cfg file | At the other OS grub 2 system, create a custom.cfg file | ||
<!--T:25--> | |||
sudo touch /boot/grub/custom.cfg | {{UserCmd|command=sudo touch /boot/grub/custom.cfg}} | ||
<!--T:26--> | <!--T:26--> | ||
Line 92: | Line 97: | ||
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. | 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. | ||
</translate> | |||
<!--T:27--> | <!--T:27--> | ||
{{File|file=/boot/grub/custom.cfg|content= | |||
<pre> | |||
menuentry "Manjaro - configfile " { | menuentry "Manjaro - configfile " { | ||
insmod part_gpt | insmod part_gpt | ||
Line 100: | Line 108: | ||
configfile /boot/grub/grub.cfg | configfile /boot/grub/grub.cfg | ||
} | } | ||
</pre> | |||
}} | |||
<translate> | |||
<!--T:28--> | <!--T:28--> | ||
btrfs will need additional | btrfs will need additional tweaks (rootflag=subvolume=@) | ||
</translate> | </translate> | ||
[[Category:Contents Page{{#translation:}}]] | [[Category:Contents Page{{#translation:}}]] |
Latest revision as of 12:09, 22 May 2024
Introduction
This is not to get back or to restore your Manjaro bootloader. To restore your Manjaro bootloader, see this.
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.
Bios-legacy systems
Boot up all other linux OS and at their terminals, do
where /dev/sdxy is the other OS partition. Note some OS's need command '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.
If you choose to uninstall Manjaro later on, remember to make the other OS bootloader as default before uninstalling.
UEFI systems
At any linux OS terminal, see output of
It will give an output like this:
$ 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
Make sure Manjaro bootorder is at the beginning as above: "BootOrder: 0001,0002,0004,0005,0008"
If it is not, reorder such that it is, like this:
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).
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.
Or, if done at livecd (or another OS) and mounted / partition to /mnt and /boot/efi partition to /mnt/boot/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
So doing this is also an alternative.
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)
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.
At the other OS grub 2 system, create a custom.cfg file
Some OS's like Suse, Fedora, Mageia uses directory in /boot/grub2 not /boot/grub, so do so accordingly. 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.
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 will need additional tweaks (rootflag=subvolume=@)