http://linux.about.com/od/howtos/fl/How-To-Change-The-EFI-Boot-Order-With-efibootmgr.htm
A common issue when installing Linux as a dual boot operating system is the Extensible Firmware Interface (EFI) Boot Manager which comes as standard on a large number of modern computers and laptops.
Users find that despite installing Linux the computer still boots straight to Windows with no option for booting Linux.
If you can boot to a live version of Linux (which you must be able to do since you installed from it) then you can install the EFI Boot Manager (efibootmgr) application which lets you manipulate the boot order so that you can boot into Linux and Windows.
This guide will show you how to use EFI Boot Manager and will explain all of the switches.
If you are using a Red Hat based distribution such as Fedora or CentOS then you can use the following yum command:
You must be the root user in order to use efibootmgr. You can use sudo to elevate your permissions to root if required as shown above.
The output will be something like this:
The BootCurrent line shows which of the boot options was used this time around. In my case it was actually Linux Mint but Linux Mint is a derivative of Ubuntu and so 0004 = ubuntu.
The Timeout tells you how long the menu appears before the first boot option is chosen and it defaults to 0.
The BootOrder shows the order in which each option will be loaded. The next item in the list will only be chosen if it fails to load the preceding item.
In the example above my system is going to boot 0004 first which is Ubuntu, then 0001 which is Windows, 0002 network, 0005 hard drive, 0006 CD/DVD drive and finally 2001 which is the USB drive.
If the order was 2001,0006,0001 then the system would try to load from a USB drive and if there weren't any present it would boot from the DVD drive and finally it would boot Windows.
For example take this list:
Ubuntu won't load unless Windows fails to boot because it is assigned to 0004 which comes after 0001 in the boot order list.
To save messing around I find that it is a good idea to not only place Linux before Windows but also put the USB drive and DVD drive before Linux and Windows. That way it is easier to boot from a USB drive.
To change the boot order you would use the following command specifying the boot order that you wish to use.
Using the above list this would mean the next time the computer boots it will try to boot from the network.
If you change your mind and you want to delete the next boot option then run the following command to cancel it.
To do this enter the following command:
You can delete the timeout using the following command:
You can use a similar command to make a boot option inactive as follows:
You can find out more about these by reading the manual pages for EFI Boot Manager using the following command:
Introduction
A large number of people like to dual boot Windows and Linux. Some people do this because they are keen to take a look at Linux but aren't ready to cut the parachute cord that Windows provides them whilst others just have a couple of Windows applications they still need.A common issue when installing Linux as a dual boot operating system is the Extensible Firmware Interface (EFI) Boot Manager which comes as standard on a large number of modern computers and laptops.
Users find that despite installing Linux the computer still boots straight to Windows with no option for booting Linux.
If you can boot to a live version of Linux (which you must be able to do since you installed from it) then you can install the EFI Boot Manager (efibootmgr) application which lets you manipulate the boot order so that you can boot into Linux and Windows.
This guide will show you how to use EFI Boot Manager and will explain all of the switches.
How To Install EFI Boot Manager
To install the EFI Boot Manager using a Debian based distribution such as Debian, Linux Mint or Ubuntu open a terminal window and type the following apt-get command:sudo apt-get install efibootmgrIf sudo isn't installed on your computer then you will need to use a Linux user which has permissions to install software.
If you are using a Red Hat based distribution such as Fedora or CentOS then you can use the following yum command:
sudo yum install efibootmgrFor openSUSE you can use the following command:
sudo zypper install efibootmgrFinally for Arch based distributions such as Arch, Manjaro and Antergos use the following pacman command:
sudo pacman -S efibootmgr
How To Find Out The Current Boot Order
To find out the order in which systems will load type the following command:sudo efibootmgr
You must be the root user in order to use efibootmgr. You can use sudo to elevate your permissions to root if required as shown above.
The output will be something like this:
- BootCurrent: 0004
- Timeout: 0 seconds
- BootOrder: 0004,0001,0002,0005,0006,2001
- Boot0001 Windows Boot Manager
- Boot0002 Network
- Boot0004 ubuntu
- Boot0005 Hard Drive
- Boot0006 CD/DVD/CD-RW Drive
- Boot2001 EFI USB Device
The BootCurrent line shows which of the boot options was used this time around. In my case it was actually Linux Mint but Linux Mint is a derivative of Ubuntu and so 0004 = ubuntu.
The Timeout tells you how long the menu appears before the first boot option is chosen and it defaults to 0.
The BootOrder shows the order in which each option will be loaded. The next item in the list will only be chosen if it fails to load the preceding item.
In the example above my system is going to boot 0004 first which is Ubuntu, then 0001 which is Windows, 0002 network, 0005 hard drive, 0006 CD/DVD drive and finally 2001 which is the USB drive.
If the order was 2001,0006,0001 then the system would try to load from a USB drive and if there weren't any present it would boot from the DVD drive and finally it would boot Windows.
How To Change The EFI Boot Order
The most common reason to use the EFI Boot Manager is to change the boot order. If you have installed Linux and for some reason Windows it booting first then you will need to find your version of Linux in the boot list and make it boot before Windows.For example take this list:
- BootCurrent: 0001
- Timeout: 0 seconds
- BootOrder: 0001,0004,0002,0005,0006,2001
- Boot0001 Windows Boot Manager
- Boot0002 Network
- Boot0004 ubuntu
- Boot0005 Hard Drive
- Boot0006 CD/DVD/CD-RW Drive
- Boot2001 EFI USB Device
Ubuntu won't load unless Windows fails to boot because it is assigned to 0004 which comes after 0001 in the boot order list.
To save messing around I find that it is a good idea to not only place Linux before Windows but also put the USB drive and DVD drive before Linux and Windows. That way it is easier to boot from a USB drive.
To change the boot order you would use the following command specifying the boot order that you wish to use.
sudo efibootmgr -o 2001,0006,0004,0001You can use a shorter notation as follows:
sudo efibootmgr -o 2001,6,4,1The boot list should now look like this:
- BootCurrent: 0001
- Timeout: 0 seconds
- BootOrder: 2001,0006,0004,0001
- Boot0001 Windows Boot Manager
- Boot0002 Network
- Boot0004 ubuntu
- Boot0005 Hard Drive
- Boot0006 CD/DVD/CD-RW Drive
- Boot2001 EFI USB Device
How To Change The Boot Order For The Next Boot Only
If you want to temporarily make it so the next boot of the computer uses a specific option use the following command:sudo efibootmgr -n 0002
- BootCurrent: 0001
- Timeout: 0 seconds
- BootOrder: 2001,0006,0004,0001
- Boot0001 Windows Boot Manager
- Boot0002 Network
- Boot0004 ubuntu
- Boot0005 Hard Drive
- Boot0006 CD/DVD/CD-RW Drive
- Boot2001 EFI USB Device
Using the above list this would mean the next time the computer boots it will try to boot from the network.
If you change your mind and you want to delete the next boot option then run the following command to cancel it.
sudo efibootmgr -N
Setting A Timeout
If you want to be able to choose from a list each time your computer loads then you can specify a timeout.To do this enter the following command:
sudo efibootmgr -t 10The above command will set a timeout of 10 seconds. After the time has run out the default boot option will be chosen.
You can delete the timeout using the following command:
sudo efibootmgr -T
How To Delete A Boot Menu Item
If you have dual booted your system and you want to revert back to just one system then you will need to adjust the boot order so that the one you are deleting isn't first in the list and you will want to remove the item from the boot order altogether.- BootCurrent: 0001
- Timeout: 0 seconds
- BootOrder: 2001,0006,0004,0001
- Boot0001 Windows Boot Manager
- Boot0002 Network
- Boot0004 ubuntu
- Boot0005 Hard Drive
- Boot0006 CD/DVD/CD-RW Drive
- Boot2001 EFI USB Device
sudo efibootmgr -o 2001,6,1You would then delete the Ubuntu boot option with the following command:
sudo efibootmgr -b 4 -BThe first -b selects the boot option 0004 and the -B deletes the boot option.
You can use a similar command to make a boot option inactive as follows:
sudo efibootmgr -b 4 -AYou can make the boot option active again by using this command:
sudo efibootmgr -b 4 -a
Further Reading
There are further commands which would be used by OS installers to create boot menu options in the first place and for system administrators to create network boot options.You can find out more about these by reading the manual pages for EFI Boot Manager using the following command:
man efibootmgr
No comments:
Post a Comment