Jump to content

Easy Step - Arch Linux ( EFI ) With Clover ( EFI )


alpha.delta
 Share

12 posts in this topic

Recommended Posts

arch.jpg

 

1) Install OS X ( and  Windows ) format HDD ( Or SSD ) As GUID ( GPT) And

2) use cgdisk create EXT4 and Swap partition for Arch linux dont erase (mkfs.vfat ) EFi partiton

3) Install Arch Linux ( )

3.1) Partition disk and mount partition

# use "blkid" command to get info about your diskpart
# replace /dev/sd[X][Y] aka /dev/sda2 ( /dev/sd[X][Y] are EXT4 root partition )
# erase partition as EXT4 for install Linux
 
mkfs.ext4 /dev/sd[X][Y] 
mount /dev/sd[X][Y] /mnt 

# make boot directory for install grub EFI

mkdir /mnt/boot
mount /dev/sd[X]1 /mnt/boot

# if you want separate home partition form root partition you must mount it too
# separate home partition is optional
# replace /dev/sd[X][U] aka /dev/sda3 ( /dev/sd[X][U] are swap partition )

mkfs.ext4 /dev/sd[X][U] 
mkdir /mnt/home
mount /dev/sd[X][U] /mnt/home

# replace /dev/sd[X][Z] aka /dev/sda4 ( /dev/sd[X][Z] are swap  partition )
# erase partition as swap for Linux swap filesystem 
mkswap /dev/sd[X][Z] 
swapon /dev/sd[X][Z] 

3.2) replace pacstrap arguments to

pacstrap -i /mnt base base-devel grub-efi-x86_64

3.3 ) generate fstab file

genfstab -Up /mnt >> /mnt/etc/fstab

3.3.1) edit fstab for custom mount point ( Optional )

nano /mnt/etc/fstab

3.4) change root into new installation for configure

arch-chroot /mnt

3.5) set language and local

nano /etc/locale.gen

 # I use  en_US.UTF-8

locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

3.6 set time

 time config locate in /usr/share/zoneinfo/ aka like /usr/share/zoneinfo/[ Zone ]/[ Sub Zone ]

# list Zone
ls  /usr/share/zoneinfo/

# link Time zone config file aka ln -sf /usr/share/zoneinfo/[ Zone] /[ SubZone] /etc/localtime

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

#configure Clock
hwclock --systohc --utc

3.7) setting network

# type your hostname and save with nano editor
touch /etc/hostname
nano /etc/hostname

# start dhcp service
systemctl enable dhcpcd.service  
systemctl start dhcpcd.service  

3.8) Setting Pacman repositories

nano /etc/pacman.conf

# remove # front line of [multilib] aka 

[multilib] 
Include = /etc/pacman.d/mirrorlist

3.9 User Management

3.9.1) Set Root Password And Config sudo

# set root user password
passwd 

pacman -Sy sudo

# Edit visudo to allow user use root privilege

EDITOR=nano visudo

# remove '#' front of line #%wheel ALL=(ALL) ALL and save

3.9.2) Create User

# replace [ USERNAME ] as name you want to create
useradd -m -g users -G wheel,storage,network,power -s /bin/bash [ USERNAME ]

# set Password for [ USERNAME ] 
passwd [ USERNAME ]

3.10 install Grub EFI ( https://wiki.archlinux.org/index.php/GRUB )

# install os-prober efibootmgr dosfstools
pacman -Sy os-prober efibootmgr dosfstools

# install grub EFI to EFI partition mount as /boot 

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --boot-directory=/boot/EFI --recheck --debug

# generate grub config file
grub-mkconfig -o /boot/EFI/grub/grub.cfg

# Sometime grub generate as grub.cfg.new 
#if grub generate config as grub.cfg.new 
mv /boot/EFI/grub/grub.cfg.new /boot/EFI/grub/grub.cfg

# edit linux kernel boot image part with nano
# edit from /boot/initramfs-linux.img or /initramfs-linux.img to /EFI/grub/kernel/initramfs-linux.img
# edit from /boot/initramfs-linux-fallback.img or /initramfs-linux-fallback.img to /EFI/grub/kernel/initramfs-linux-fallback.img
# edit from /boot/vmlinuz-linux or /vmlinuz-linux  to /EFI/grub/kernel/vmlinuz-linux
#save

nano /boot/EFI/grub/grub.cfg


#move linux kernel and boot image to grub directory
mkdir /boot/EFI/grub/kernel
mv /boot/initramfs-linux*.img /boot/EFI/grub/kernel
mv /boot/vmlinuz-linux /boot/EFI/grub/kernel


3.11) Exit and Reboot

exit
umount -R /mnt
shutdown -r now

3.12 ) install X

3.12.1) login with user create on installation progress not login with root

sudo pacman -Syyu

# install xorg server

sudo pacman -S xorg-server xorg-server-utils xorg-xinit mesa

# install Driver for laptop

sudo pacman -S xf86-input-synaptics

#install Graphics Driver

# Open Source Driver for  ATI 
sudo pacman -S xf86-video-ati lib32-ati-dri

#You can find Graphics driver for your system on https://wiki.archlinux.org/index.php/xorg

3.13) install desktop environment you can install only twm and gnome  or kde , openbox , xfce

1) TWM

sudo pacman -Syyu
sudo pacman -S xorg-twm xorg-xclock xterm

2) Gnome shell

#install gnome-shell and extra package and GDM login service
sudo pacman -Syyu
sudo pacman -S gnome gnome-extra gdm

# Fixed Internet account can't create

sudo pacman -S telepathy
 

3) KDE

sudo pacman -Syyu
sudo pacman -S kde
sudo pacman -S kdeplasma-applets-plasma-nm

3.14) Use Network Manager

# stop and disable dhcp service first
sudo systemctl stop dhcpcd.service
sudo systemctl disable dhcpcd.service

# start and enable NetworkManager Service

sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service


3.15 fixed Alway mute sound on reboot

sudo pacman -S alsa-utils
alsamixer Sset Master unmute

3.16 Start X

 

1) Start GDM for Gnome

sudo systemctl enable gdm.service
sudo systemctl start gdm.service

2) or KDM for KDE

sudo systemctl enable kdm.service
sudo systemctl start kdm.service

4) After you login with X please reboot before do something wrong

 

 

 

5) Boot Arch Linux From Clover GUI  ( https://wiki.archlinux.org/index.php/Clover )

 

get / (root partition) UUID for edit config.plist

sudo blkid

Example Result

/dev/sdb1: LABEL="EFI" UUID="67E3-17ED" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="d4c343a2-68b7-4fe2-8c1b-204b726eb8a6"
/dev/sdb2: UUID="4e4dc638-d034-37e3-a959-92f10488de69" LABEL="Macintosh HD" TYPE="hfsplus" PARTLABEL="Macintosh HD" PARTUUID="bd99b720-c9e5-4be5-ab3c-13d82d2ba35d"
/dev/sdb3: UUID="60b41e4f-20b4-309e-a64f-e36ddf5bfadc" LABEL="Recovery HD" TYPE="hfsplus" PARTLABEL="Recovery HD" PARTUUID="089a612f-41f4-42f5-b73a-01ced4ec1519"
/dev/sdb4: UUID="ff12c3a3-5bae-38c2-8354-48e1ce11e84d" LABEL="BACKUP" TYPE="hfsplus" PARTLABEL="Apple_HFS_Untitled_2" PARTUUID="9f8fb724-8e71-41aa-874f-88e50dabb0c6"
/dev/sdb5: LABEL="exBackup" UUID="1AB8BBD1B8BBA9A1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="0f44d606-59b7-4de7-96ce-1531f65de882"
/dev/sdb6: UUID="0b78483f-2400-4a91-8bd7-b03017020d9d" TYPE="swap" PARTLABEL="swap" PARTUUID="99d660f9-fbc7-45e1-8e91-bf33cfc12773"
/dev/sdb7: UUID="afbf8c6d-c48b-410c-8dab-daea739b2940" TYPE="ext4" PARTLABEL="Arch Linux" PARTUUID="f81b563f-ce9e-4449-9305-01c536b057db"

Add Custom Entry to config.plist.

replace afbf8c6d-c48b-410c-8dab-daea739b2940 as your UUID get from blkid.

 

Custom enties have to section first for normal boot second for fallback boot.

<key>Custom</key>
   <dict>
      <key>Entries</key>
      <array>
         <dict>
            <key>AddArguments</key>
            <string>root=UUID=afbf8c6d-c48b-410c-8dab-daea739b2940 rw add_efi_memmap initrd=/EFI/grub/kernel/initramfs-linux.img</string>
            <key>Disabled</key>
            <false/>
            <key>FullTitle</key>
            <string>Arch Linux</string>
            <key>Hidden</key>
            <false/>
            <key>Ignore</key>
            <false/>
            <key>Path</key>
            <string>/EFI/grub/kernel/vmlinuz-linux</string>
            <key>Type</key>
            <string>Linux</string>
            <key>Volume</key>
            <string>EFI</string>
            <key>VolumeType</key>
            <string>Internal</string>
         </dict>
         <dict>
            <key>AddArguments</key>
            <string>root=UUID=afbf8c6d-c48b-410c-8dab-daea739b2940 rw add_efi_memmap initrd=/EFI/grub/kernel/initramfs-linux-fallback.img</string>
            <key>Disabled</key>
            <false/>
            <key>FullTitle</key>
            <string>Arch Linux (Fallback)</string>
            <key>Hidden</key>
            <false/>
            <key>Hotkey</key>
            <string>f</string>
            <key>Ignore</key>
            <false/>
            <key>Path</key>
            <string>/EFI/grub/kernel/vmlinuz-linux</string>
            <key>Type</key>
            <string>Linux</string>
            <key>Volume</key>
            <string>EFI</string>
            <key>VolumeType</key>
            <string>Internal</string>
         </dict>
      </array>
   </dict>
  • Like 4
Link to comment
Share on other sites

  • 10 months later...

This post is awesome! I just started Archlinux after many years with Ubuntu, but couldn't get it to boot with Clover. 

 

I'm trying to set up KVM to move over a VM of OSX 10.9. Have you had any experience with it?

Link to comment
Share on other sites

This post is awesome! I just started Archlinux after many years with Ubuntu, but couldn't get it to boot with Clover.

 

I'm trying to set up KVM to move over a VM of OSX 10.9. Have you had any experience with it?

Ubuntu uefi grub need biosboot partition.

I have no idea with kvm

Link to comment
Share on other sites

I've been using grub-efi with Clover for some time. Do you know how I can use an EFI stub instead so that the only bootloader is Clover? I've always wanted to do that but I looked at the wiki and was very confused on how to do it.

Link to comment
Share on other sites

  • 1 month later...
  • 6 months later...

do you can tell me how if I want linux mint or elementary (based on ubuntu) to be booted from clover?

I already try these steps :

- install linux with or without /boot partition (of course always along with SWAP & /root partition everytime)

- change "device bootloader installation" to HDD, or to standalone /boot partition formerly created, even to EFI partition (but still can't boot linux)

- manually download & put grubx64.efi to EFI partition + put this (https://wiki.archlinux.org/index.php/Clover) clover config to config.plist [& this time, linux icon appear in Clover interface . Yaayy.. but still con't boot into]

 

So, what should I do in order to make clover to be able to boot into linux?

with putting Grubx64.efi to EFI partition manually + add configuration in clover config.plist, is a one step ahead for me. At least, linux icon appear.

But still.. I can't enter the OS..

 

is there any idea, or there is something wrong with my config in clover?

Link to comment
Share on other sites

  • 7 months later...

Thank you for your guide.

 

Anyway I think the custom path for the kernel image should use the FAT32 separator, thus \ instead of /.

I was not able to find my custom entry in the Clover menu, so I checked in the boot.log file and I saw an error like "skipped because path does not exist", so I've changed and now everything is working!

 

Ciao.

Link to comment
Share on other sites

  • 4 months later...

Just for future information: You don't need grub at all, arch linux kernels comes with EFISTUB enabled by default. You can pass the Arguments directly to clover, like this:

<key>AddArguments</key>
<string>root=/dev/rootvg/rootLV rw add_efi_memmap rootfstype=jfs initrd=/EFI/ArchLinux/intel-ucode.img initrd=/EFI/ArchLinux/initramfs-linux.img nomodeset elevator=deadline rw quiet</string>

Contents of my /EFI/ArchLinux folder:

initramfs-linux-fallback.img
initramfs-linux.img
intel-ucode.img
vmlinuz-linux
Link to comment
Share on other sites

  • 3 months later...

Okay so I've tried adding the entries mentioned in this thread to my config.plist, but I cannot get it working properly in my Intel NUC here. I installed Arch in a slightly different way than most would:

https://github.com/yantis/instant-archlinux-on-mac

 

I use the above script to automate the process for me. It's meant for an actual Mac since its using rEFInd as it's bootloader, but I was just wondering, is there a way to get Clover to boot into properly?

 

Thanks,

Shiggs

Link to comment
Share on other sites

  • 2 months later...

Hi. I followed the steps and it worked fine, but after performing a yaourt -Syu, Arch does not boot any more. /boot cannot be mounted. I guess grub was updated and somehow the setup was destroyed. Do you have any idea on how to fix this?

Link to comment
Share on other sites

 Share

×
×
  • Create New...