Manjaro Difference between revisions of "UEFI - Install Guide"

Difference between revisions of "UEFI - Install Guide"

From Manjaro
imported>Aaditya
imported>Aaditya
(14 intermediate revisions by 3 users not shown)
Line 43: Line 43:
   from Nvidia or ATI.
   from Nvidia or ATI.


* 5. Open terminal & enter:
 
{{Note|Since Manjaro-0.8.9, UEFI support is also provided in the Graphical Installer, so one can simply try the Graphical installer and skip the instructions given below for the CLI installer.}}
 
 
* 5. To use the Graphical Installer select the '''Install Manjaro''' option from the Manjaro Welcome screen or from the desktop.
 
 
=== Advanced instructions (for CLI installer) ===
 
 
* 5-b. Open terminal & enter:


  $ sudo setup
  $ sudo setup


* 6. Now, we are in the CLI Installer (the graphical installer doesn't support UEFI yet).  
* 6. Now, we are in the CLI Installer.  
'''Choose 2.''' Use testing installer (EFI support).
'''Choose 2.''' Use testing installer (EFI support).


Line 63: Line 73:
  then please post here: [http://forum.manjaro.org/index.php?topic=5268.0]
  then please post here: [http://forum.manjaro.org/index.php?topic=5268.0]


So, if '''8.1''' (Auto-Prepare) is chosen, you skip the process below and go to 9...
'''If 8.1''' (Auto-Prepare) was chosen, you skip the process below and go to point 9 below.


  * When you '''click 2.''' Partition Hard Drives,  
  * When you '''click 2.''' Partition Hard Drives,  
Line 108: Line 118:


For UEFI install the Disk partition table should be of type '''GPT (Guid Partition Table).'''
For UEFI install the Disk partition table should be of type '''GPT (Guid Partition Table).'''
If you dont want to format your hard disk to GPT, but instead want to migrate from MBR to GPT while trying to save your data, can have a look at
http://www.rodsbooks.com/gdisk/mbr2gpt.html




Line 114: Line 127:
Its basically a fat32 partition which has the .efi files for booting.
Its basically a fat32 partition which has the .efi files for booting.


You can create the partition using Gparted.
You can create the partition using Gparted (type- fat32 or fat16 and size around 512 mb).


You would also need to install/check whether following packages are present-
You would also need to install/check whether following packages are present-
Line 121: Line 134:
  2. dosfstools
  2. dosfstools
  3. grub
  3. grub
[[Pacman_Overview | (How to install packages)]]




Line 140: Line 155:
5.) Update Grub configuration file.
5.) Update Grub configuration file.
  sudo update-grub
  sudo update-grub
'''Note-'''
If you get an error like
path '/boot/grub' is not readable by Grub on boot. Installation is impossible. Aborting
Then you will need to [https://wiki.archlinux.org/index.php/Change_Root chroot] as described [[Restore_the_GRUB_Bootloader#Identify_and_Prepare_the_Installed_Partition.28s.29|here]], and then perform Step 5 again.
If you get the following error :
EFI variables are not supported on this system.
then you should load the '''efivars''' module :
sudo modprobe efivars




Line 145: Line 173:


[[Restore the GRUB Bootloader]]
[[Restore the GRUB Bootloader]]
[https://forum.manjaro.org/index.php?topic=7315.msg120001#msg120001 https://forum.manjaro.org/index.php?topic=7315.msg120001#msg120001]


== Dual booting with Windows ==
== Dual booting with Windows ==
Line 151: Line 181:




'''In such cases install ''[http://www.rodsbooks.com/refind/index.html rEFInd]'''''
'''In such cases ''[http://www.rodsbooks.com/refind/index.html rEFInd]''''' can be used.




Line 164: Line 194:
Files will be present in  /usr/share/refind .
Files will be present in  /usr/share/refind .


2.Or use mine [https://www.dropbox.com/s/bafo0sp432pw2tj/refind.zip here]
2.Or using the instructions on the rEFInd website: [http://www.rodsbooks.com/refind/installing.html]
Extract the contents of the zip file.


=== Instructions ===
=== Instructions ===


Go inside the refind folder ('''/usr/share/refind''', or from the one obtained from my .zip file), and copy the files and folders to-
Inside the refind folder ('''/usr/share/refind'''), copy the files and folders to-


  /boot/efi/EFI/Boot/
  /boot/efi/EFI/Boot/
Line 191: Line 220:
  bootx64.efi
  bootx64.efi


You need to '''''rename''''' it to ''windows.bootx64.efi''
You can '''''rename''''' it as ''windows.bootx64.efi''
Then you should rename ''refind_x64.efi'' to ''bootx64.efi''
Then you can rename ''refind_x64.efi'' to ''bootx64.efi''
And you are done!


The bootx64.efi files boot by default, hence rEFInd would now boot by default, and would detect your grubx64.efi(linux-manjaro) and efibootmgfw.efi (windows) automatically.
The bootx64.efi files boot by default, hence rEFInd should now boot by default, and detect grubx64.efi(linux-manjaro) and efibootmgfw.efi (windows) automatically.


'''Note'''-
'''Note'''-
Line 213: Line 241:




See this also- [http://www.rodsbooks.com/refind/installing.html#naming http://www.rodsbooks.com/refind/installing.html#naming]
See also- [http://www.rodsbooks.com/refind/installing.html#naming http://www.rodsbooks.com/refind/installing.html#naming]
 
=== An alternative: chainloading via GRUB ===
 
 
An entry can be added to ''/etc/grub.d/40_custom''
 
menuentry 'Windows8 (UEFI)' {
insmod ntfs
set root=(hd0,gpt4)
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
boot
}
 
In this case (hd0,4) or /dev/sda4 is the EFI System partition where the Windows bootloader is present.
 
After adding the above entry, running '''sudo update-grub''' updates the GRUB configuration file so that an entry named '''Windows8 (UEFI)''' is added to the GRUB boot menu.
 
Related Forum thread: [http://forum.manjaro.org/index.php?topic=11998.0]


==Feedback:==
==Feedback:==

Revision as of 18:03, 2 July 2014

Introduction

At this stage of the game, installing a Linux distro on a UEFI can be the trickiest part of the installation.

UEFI is the commonly agreed on name for both the EFI & UEFI 
standards which merged. It does not include the old EFI v1, 
or Apple's own non-standard version of EFI.

So the following guide can be a huge time & frustration saver for some users.


Target computer:

The following guide will install Manjaro as the sole installation on a machine with UEFI enabled, Secure boot disabled using GUID Partition Table (GPT) disk(s).


The Simple steps:

  • 1. Download your preferred Manjaro version (XFCE, Openbox, Cinnamon, KDE, ...), must be 64-bits.
  • 2. Burn the .iso to USB or DVD. For Windows users using USB media, Rufus [1] is highly recommended.
  • 2.1. Rufus (Windows) users should use the following settings:
* Click on the DVD icon and load your .iso
* Device: "choose your USB" (Attention: choose correctly,
  the device selected here will be formatted!!!)
* Partition scheme: GPT partition scheme for UEFI computer
* File system: FAT32
* Cluster size: "Don't modify"
* Volume label: "Don't modify"
* Click Start, and you are done (takes 2~5 min to complete).
  • 3. Check your BIOS, UEFI must be ON and Secure boot OFF.
  • 4. Boot with your USB or DVD & use the rEFInd - Main Menu... to choose which GPU drivers you want to have installed, the open-source or proprietary:
* Boot Manjaro Linux ... (default) - 
  This chooses the open-source - free GPU drivers.
* Boot Manjaro Linux ... (nonfree) - 
  This option chooses the proprietary GPU drivers
  from Nvidia or ATI.


Note
Since Manjaro-0.8.9, UEFI support is also provided in the Graphical Installer, so one can simply try the Graphical installer and skip the instructions given below for the CLI installer.


  • 5. To use the Graphical Installer select the Install Manjaro option from the Manjaro Welcome screen or from the desktop.


Advanced instructions (for CLI installer)

  • 5-b. Open terminal & enter:
$ sudo setup
  • 6. Now, we are in the CLI Installer.

Choose 2. Use testing installer (EFI support).

  • 7. Choose 1. Set date and time - an easy intuitive configuration.
  • 8. Now, Choose 2. Disk(s) preparation.

Go to 2. Partition Hard Drives or follow the instruction in the next point 8.1 to automatically partition the entire disk.

  • 8.1 If you want to use the entire disk, and don't want to manually configure your partitions, you can choose 1. Auto-Prepare.
Attention: I don't know for sure if using the 
Auto-Prepare option of the installation will be 
successful as I always prefer to manually configure 
my partitions. Give it a try, if you have problems
then please post here: [2]

If 8.1 (Auto-Prepare) was chosen, you skip the process below and go to point 9 below.

* When you click 2. Partition Hard Drives, 
  you get a dialog saying "Do you want to use GUID
  Partition Table (GPT)", choose Yes.
* Partition your disk(s) as you want (Instructions on
  manually partitioning are beyond the scope of this
  guide.)
* Important Step: Create a 50~250MB EFI Partition,
  mine is 100MB (code: ef00)
* When you are done, go to 4. Set Filesystem
  Mountpoints. (Again, instructions on manually
  partitioning are beyond the scope of this guide.
* Important Step: Format the EFI Partition you
  created as VFAT and mount on /boot/efi
  • 9. Choose 3. Install system and wait...
  • 10. Now, go to 4. Configure System and configure it the way you like (username, password, mirrorlist, system-name, ...).
  • 11. When you are done, go to 5. Install bootloader. Choose EFI_x86_64 > GRUB (2) UEFI x86_64, DON'T select BIOS GRUB.
  • 11.1 It will ask to format the EFI Partition you created earlier as FAT32, just mark Yes.
  • 12. If it gives a error in the final stages saying "efivars kernel module was not properly loaded", don't worry, the system will work fine!
  • 13. If the installer asks you about copying grub/efi files to another folder in order to maintain compatibility in some systems, choose Yes.
  • 14. Click 6. Quit

Note

To make sure that Grub was installed correctly, open a terminal and type-

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
  • 15. Shutdown, remove the DVD or USB, and boot. Your system should appear now!

DONE, SYSTEM INSTALLED!


Switching from BIOS to UEFI

For UEFI install the Disk partition table should be of type GPT (Guid Partition Table).

If you dont want to format your hard disk to GPT, but instead want to migrate from MBR to GPT while trying to save your data, can have a look at http://www.rodsbooks.com/gdisk/mbr2gpt.html


1.) You would need to create an ESP (EFI System Partition).

Its basically a fat32 partition which has the .efi files for booting.

You can create the partition using Gparted (type- fat32 or fat16 and size around 512 mb).

You would also need to install/check whether following packages are present-

1. efibootmgr
2. dosfstools
3. grub

(How to install packages)


2.) Create the /boot/efi directory

sudo mkdir /boot/efi


3.) Mount the EFI partition as /boot/efi

sudo mount /dev/sdXY /boot/efi

X = Alphabet of the drive = a,b,c ... Y = Partition number of the EFI partition = 1,2,3,4...

Example - /dev/sda4


4.) Install Grub according to UEFI

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck

5.) Update Grub configuration file.

sudo update-grub

Note- If you get an error like

path '/boot/grub' is not readable by Grub on boot. Installation is impossible. Aborting

Then you will need to chroot as described here, and then perform Step 5 again.

If you get the following error :

EFI variables are not supported on this system.

then you should load the efivars module :

sudo modprobe efivars


See also

Restore the GRUB Bootloader

https://forum.manjaro.org/index.php?topic=7315.msg120001#msg120001

Dual booting with Windows

Tip
Some manufactures EFI implementations cause GRUB not to be showed in the Boot Menu, or even if its there it can't be made default.


In such cases rEFInd can be used.


Refind.png


There are two ways to install rEFInd-

1.Install rEFInd from its website [3] (detailed) or install using pacman(preferred)-

sudo pacman -S refind-efi

Files will be present in /usr/share/refind .

2.Or using the instructions on the rEFInd website: [4]

Instructions

Inside the refind folder (/usr/share/refind), copy the files and folders to-

/boot/efi/EFI/Boot/

Note-

My ESP (EFI System Partition) is mounted at /boot/efi.

You need to copy these files to the Boot folder on your EFI partition, and the Boot folder itself will be present inside the EFI folder on the EFI Partition, so take note of it.

You can check which partition is your ESP using Gparted; find which partition is formatted as fat32 and has size around 200mb-1gb.

Can mount it as /boot/efi by

sudo mount /dev/sdXN /boot/efi

X=a,b,c... N=1,2,3... These depend on which partition your ESP is present which can be obtained via Gparted as mentioned earlier.

Now inside the /boot/efi/EFI/Boot/ folder, there should already be a file present-

bootx64.efi

You can rename it as windows.bootx64.efi Then you can rename refind_x64.efi to bootx64.efi

The bootx64.efi files boot by default, hence rEFInd should now boot by default, and detect grubx64.efi(linux-manjaro) and efibootmgfw.efi (windows) automatically.

Note-

A folder Manjaro (name could be some other also) containing the file grubx64.efi should also be present in /boot/efi/EFI/ folder, which should contain the grubx64.efi file which will be used by rEFInd to boot Grub.

So it could be like-

/boot/efi/EFI/Manjaro/grubx64.efi

rEFInd would use this file for booting Manjaro.

If you do not have this file or folder, try-

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro --recheck

to create /boot/efi/EFI/Manjaro/grubx64.efi


See also- http://www.rodsbooks.com/refind/installing.html#naming

An alternative: chainloading via GRUB

An entry can be added to /etc/grub.d/40_custom

menuentry 'Windows8 (UEFI)' {
insmod ntfs
set root=(hd0,gpt4)
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
boot
}

In this case (hd0,4) or /dev/sda4 is the EFI System partition where the Windows bootloader is present.

After adding the above entry, running sudo update-grub updates the GRUB configuration file so that an entry named Windows8 (UEFI) is added to the GRUB boot menu.

Related Forum thread: [5]

Feedback:

Questions, suggestions, critics? Please post here: [6]

Cookies help us deliver our services. By using our services, you agree to our use of cookies.