-
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
April 6, 2025 03:45
-
-
Save chriscandy/16899e0d701a05654cb4f79ef2d2d062 to your computer and use it in GitHub Desktop.
Install Arch Linux using EFI and GRUB
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
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 )