-
Change keyboard layout:
loadkeys no
-
Verify boot mode:
ls /sys/firmware/efi/efivars
(If the directory exist your computer supports EFI)
-
Ping some site on the Internet to verify connection:
ping archlinux.org
-
Update system clock:
timedatectl set-ntp true
- You can verify the status with
timedatectl status
-
Enable SSH:
systemctl start sshd
-
Change root password:
passwd
-
Go to https://archlinux.org/mirrorlist and find the closest mirror that supports HTTPS:
- Add the mirrors on top of the
/etc/pacman.d/mirrorlist
file. Server = https://mirror.neuf.no/archlinux/$repo/os/$arch
(Norway)
- Add the mirrors on top of the
-
Create EFI partition:
fdisk -l
to find the designation for the HDD. (Most likely/dev/sda
)fdisk /dev/sda
- g (to create a new partition table)
- n (to create a new partition)
- 1
- enter
- +300M
- t
- 1 (for EFI)
- w
-
Create
/root
partition:fdisk /dev/sda
- n
- 2
- enter
- +30G
- w
-
Create
/home
partiton:fdisk /dev/sda
- n
- 3
- enter
- enter
- w
-
Create the filesystems:
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda3
-
Create the
/root
and/home
directories:mount /dev/sda2 /mnt
mkdir /mnt/home
mount /dev/sda3 /mnt/home
-
Install Arch linux base packages:
pacstrap -i /mnt base
-
Generate the
/etc/fstab
file:genfstab -U -p /mnt >> /mnt/etc/fstab
-
Chroot into installed system:
arch-chroot /mnt
-
Set the timezone:
ln -sf /usr/share/zoneinfo/Europe/Oslo /etc/localtime
-
Update the Hardware clock:
hwclock --systohc
-
Install boot manager and other needed packages:
pacman -S grub efibootmgr dosfstools openssh os-prober mtools linux-headers linux-lts linux-lts-headers
-
Set locale:
sed -i 's/#en_US.UTF-8/en_US.UTF-8/g' /etc/locale.gen
(uncomment en_US.UTF-8)locale-gen
-
Enable root login via SSH:
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
systemctl enable sshd.service
passwd
(for changing the root password)
-
Create EFI boot directory:
mkdir /boot/EFI
mount /dev/sda1 /boot/EFI
-
Install GRUB on EFI mode:
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
-
Setup locale for GRUB:
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
-
Write GRUB config:
grub-mkconfig -o /boot/grub/grub.cfg
-
Create swap file:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
-
Exit, unount and reboot:
exit
umount -a
reboot
Last active
November 9, 2024 22:27
-
-
Save chriscandy/16899e0d701a05654cb4f79ef2d2d062 to your computer and use it in GitHub Desktop.
Install Arch Linux using EFI and GRUB
fyi. if your grub shows only "UEFI firmware settings" entry, install linux-headers linux-lts linux-lts-headers after mount boot partition ( I didn't because I thought it wasn't necessary for me and I was wrong )
tty-ready arch os I've managed to install
mkfs.fat -F 32 /dev/sda6
mkfs.ext4 /dev/sda7
mount /dev/sda7 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda6 /mnt/boot/efi
pacstrap /mnt base base-devel linux linux-firmware grub efibootmgr networkmanager
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
grub-install --bootloader-id=arch_grub
grub-mkconfig -o /boot/grub/grub.cfg
that's it
Just in case.
If someone doesn't have compressed linux kerne
You can check if this is because the first install by check menuentry, using
cat /boot/grub/grub.cfg | grep menuentry
If there is only the firmware entry you will have to add this file, then rebuild all.
If file are totally missing of your hard drive, use
pacman -s mkinitcpio
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
neat and works like a charm. thanks
I needed to specify efi directory when grub-install like this
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck --efi-directory=/boot/EFI