Discussion:
[gentoo-user] Dual Booting - selection from command line
(too old to reply)
t***@sys-concept.com
2024-01-10 00:20:02 UTC
Permalink
I have a box that is two HD's and both are bootable; using "refind" instead of grub.
So the selection I choose at boot which drive to boot will be the default (during reboot, from command line) until I select the second drive.

The box will be installed in a remote location, so I have no option to select which drive to boot from (unless I'm in front of the box).
Is it possible to select which drive I want to "boot" from the command line (reboot #2 etc)?
--
Thelma
Nikos Chantziaras
2024-01-10 02:30:01 UTC
Permalink
Post by t***@sys-concept.com
I have a box that is two HD's and both are bootable; using "refind" instead of grub.
So the selection I choose at boot which drive to boot will be the
default (during reboot, from command line) until I select the second drive.
The box will be installed in a remote location, so I have no option to
select which drive to boot from (unless I'm in front of the box).
Is it possible to select which drive I want to "boot" from the command
line (reboot #2 etc)?
Maybe this helps:
https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c
t***@sys-concept.com
2024-01-10 17:30:01 UTC
Permalink
Post by t***@sys-concept.com
I have a box that is two HD's and both are bootable; using "refind" instead of grub.
So the selection I choose at boot which drive to boot will be the default (during reboot, from command line) until I select the second drive.
The box will be installed in a remote location, so I have no option to select which drive to boot from (unless I'm in front of the box).
Is it possible to select which drive I want to "boot" from the command line (reboot #2 etc)?
Maybe this helps: https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c
Thank you for the link.
Mark Knecht
2024-01-10 22:20:01 UTC
Permalink
Post by t***@sys-concept.com
Post by t***@sys-concept.com
I have a box that is two HD's and both are bootable; using "refind" instead of grub.
So the selection I choose at boot which drive to boot will be the
default (during reboot, from command line) until I select the second drive.
Post by t***@sys-concept.com
Post by t***@sys-concept.com
The box will be installed in a remote location, so I have no option to
select which drive to boot from (unless I'm in front of the box).
Post by t***@sys-concept.com
Post by t***@sys-concept.com
Is it possible to select which drive I want to "boot" from the command
line (reboot #2 etc)?
https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c
Post by t***@sys-concept.com
Thank you for the link.
I have no experience with refind but for my UEFI systems I accomplish this
using efibootmgr and a simple batch file. The machine always boots Linux
by default but from within Linux I can tell it to reboot into Windows

***@science2:~$ sudo efibootmgr
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0000
Boot0000* Windows Boot Manager
Boot0003* ubuntu


***@science2:~$ cat bin/RebootWindows
sudo efibootmgr -n 0000
reboot
***@science2:~$

HTH,
Mark
t***@sys-concept.com
2024-01-17 15:50:02 UTC
Permalink
Post by Mark Knecht
Post by t***@sys-concept.com
Post by t***@sys-concept.com
I have a box that is two HD's and both are bootable; using "refind" instead of grub.
So the selection I choose at boot which drive to boot will be the default (during reboot, from command line) until I select the second drive.
The box will be installed in a remote location, so I have no option to select which drive to boot from (unless I'm in front of the box).
Is it possible to select which drive I want to "boot" from the command line (reboot #2 etc)?
Maybe this helps: https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c <https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c>
Thank you for the link.
I have no experience with refind but for my UEFI systems I accomplish this
using efibootmgr and a simple batch file. The machine always boots Linux
by default but from within Linux I can tell it to reboot into Windows
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0000
Boot0000* Windows Boot Manager
Boot0003* ubuntu
sudo efibootmgr -n 0000
reboot
Thank you, yes that work perfectly

"efibootmgr -n " is one time entry for one reboot; to set it permanently one should use:
"efibootmgr -o + arrange entries"

Does anybody know how to rename the boot entries, in my case I have:

efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0000,0004,0002
Boot0000* rEFInd Boot Manager HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\REFIND\REFIND_X64.EFI)
Boot0002* UEFI OS HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
Boot0004* rEFInd Boot Manager HD(1,GPT,9d2481cf-8c35-4d9d-88ee-1d0d6e06cc68,0x800,0x1dc800)/File(\EFI\refind\refind_x64.efi)

This is cryptic,
0000 - is sda disk
0004 - nvme disk

How to rename them to SDA and NVME respectively
Michael
2024-01-17 17:00:01 UTC
Permalink
Post by t***@sys-concept.com
Post by Mark Knecht
Post by t***@sys-concept.com
Post by Nikos Chantziaras
Post by t***@sys-concept.com
I have a box that is two HD's and both are bootable; using "refind"
instead of grub. So the selection I choose at boot which drive to
boot will be the default (during reboot, from command line) until I
select the second drive.
The box will be installed in a remote location, so I have no option
to select which drive to boot from (unless I'm in front of the
box). Is it possible to select which drive I want to "boot" from
the command line (reboot #2 etc)?> > >
https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c
<https://gist.github.com/Darkhogg/82a651f40f835196df3b1bd1362f5b8c>>
Thank you for the link.
I have no experience with refind but for my UEFI systems I accomplish this
using efibootmgr and a simple batch file. The machine always boots Linux
by default but from within Linux I can tell it to reboot into Windows
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0000
Boot0000* Windows Boot Manager
Boot0003* ubuntu
sudo efibootmgr -n 0000
reboot
Thank you, yes that work perfectly
"efibootmgr -n " is one time entry for one reboot; to set it permanently
one should use: "efibootmgr -o + arrange entries"
efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0000,0004,0002
Boot0000* rEFInd Boot
Manager HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(
\EFI\REFIND\REFIND_X64.EFI) Boot0002* UEFI
OS HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/
File(\EFI\
Post by t***@sys-concept.com
BOOT\BOOTX64.EFI)0000424f Boot0004* rEFInd Boot
Manager HD(1,GPT,9d2481cf-8c35-4d9d-88ee-1d0d6e06cc68,0x800,0x1dc800)/File(
\EFI\refind\refind_x64.efi)
This is cryptic,
0000 - is sda disk
0004 - nvme disk
How to rename them to SDA and NVME respectively
You can try using the '--label' option, but I understand this only works when
you create a new menu in the firmware, e.g.:

efibootmgr --create --disk /dev/sda --part X --label "SDA" --loader
"\EFI\REFIND\REFIND_X64.EFI"

I don't know if running this would create a duplicate, but you can delete the
entry first and then recreate it as above.
Mark Knecht
2024-01-17 17:30:01 UTC
Permalink
***@sys-concept.com>> wrote:
<SNIP>
Post by t***@sys-concept.com
Thank you, yes that work perfectly
"efibootmgr -o + arrange entries"
efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0000,0004,0002
Boot0000* rEFInd Boot Manager
HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\REFIND\REFIND_X64.EFI)
Post by t***@sys-concept.com
Boot0002* UEFI OS
HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
Post by t***@sys-concept.com
Boot0004* rEFInd Boot Manager
HD(1,GPT,9d2481cf-8c35-4d9d-88ee-1d0d6e06cc68,0x800,0x1dc800)/File(\EFI\refind\refind_x64.efi)
Post by t***@sys-concept.com
This is cryptic,
0000 - is sda disk
0004 - nvme disk
How to rename them to SDA and NVME respectively
man efibootmgr shows a 'label' option but
I've never used it. Try it at your own risk.

If I was going to try it I would first create the
new one with the new label using the data from
an existing option, test it, and if it worked then
delete the one with the less useful name.

From Google Bard:
<QUOTE>
Use efibootmgr -c -d <disk> -p <partition> -l <new_label> -L <loader_path>
to create a new entry with the desired label and correct path to the
bootloader:

<disk>: The disk where the bootloader resides (e.g., /dev/sda)
<partition>: The partition number where the bootloader is located (e.g., 1)
<new_label>: The desired label for the boot option
<loader_path>: The full path to the bootloader file (e.g.,
\\EFI\\ubuntu\\shimx64.efi)
</QUOTE>
t***@sys-concept.com
2024-01-17 19:00:01 UTC
Permalink
Post by Mark Knecht
<SNIP>
Post by t***@sys-concept.com
Thank you, yes that work perfectly
"efibootmgr -o + arrange entries"
efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0000,0004,0002
Boot0000* rEFInd Boot Manager   HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\REFIND\REFIND_X64.EFI)
Boot0002* UEFI OS       HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
Boot0004* rEFInd Boot Manager   HD(1,GPT,9d2481cf-8c35-4d9d-88ee-1d0d6e06cc68,0x800,0x1dc800)/File(\EFI\refind\refind_x64.efi)
This is cryptic,
0000 - is sda disk
0004 - nvme disk
How to rename them to SDA  and NVME respectively
man efibootmgr shows a 'label' option but
I've never used it. Try it at your own risk.
If I was going to try it I would first create the
new one with the new label using the data from
an existing option, test it, and if it worked then
delete the one with the less useful name.
<QUOTE>
<disk>: The disk where the bootloader resides (e.g., /dev/sda)
<partition>: The partition number where the bootloader is located (e.g., 1)
<new_label>: The desired label for the boot option
<loader_path>: The full path to the bootloader file (e.g., \\EFI\\ubuntu\\shimx64.efi)
</QUOTE>
Thank you! It worked as you suggested.

In my case, I created a new label:

efibootmgr -c -d /dev/nvme0n1p1 -p 1 -L i5_new -l /EFI/REFIND/REFIND_X64.EFI

device name and partition number can be derived from "fdisk -l"

I'm not sure why "/EFI/REFIND/REFIND_X64.EFI" are all caps letters, in /boot dir it is: "/EFI/refind/refind_x64.efi"

but now my entries are less cryptic,

efibootmgr
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0001,0003,0002
Boot0001* Gentoo_sda HD(1,GPT,9d2481cf-8c35-4d9d-88ee-1d0d6e06cc68,0x800,0x1dc800)/File(\EFI\refind\refind_x64.efi)
Boot0002* UEFI OS HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
Boot0003* i5_new HD(1,GPT,87a5c5b6-c0a8-024c-b1c0-622907add992,0x800,0x200000)/File(\EFI\REFIND\REFIND_X64.EFI)

Switching can easily be done, with "efibootmgr and number" eg. efibootmgr 3
but this is only one reboot, it will go to default setup as per: BootOrder: 0001,0003,0002

To make it permanent change it has to be done with eg:
efibootmgr -o 0003,0001,0002
Peter Humphrey
2024-01-17 19:30:01 UTC
Permalink
Post by t***@sys-concept.com
I'm not sure why "/EFI/REFIND/REFIND_X64.EFI" are all caps letters, in /boot
dir it is: "/EFI/refind/refind_x64.efi"
Because it's a FAT partition?
--
Regards,
Peter.
Loading...