Dual Boot Arch Linux and Windows 10/11
Arch Linux is one of the very popular Linux Distro. Especially among Linux enthusiasts as it can be highly customized according to the user’s need. We are free to add or remove additional files and programs. The installation is a little complex as we need to run a lot of commands. But once figured out the result is very worthwhile. Let’s see how we can Dual Boot Arch Linux with Windows 10/11.
Download
We will first download the ISO file from here. You can download from your country server or from a worldwide server. Once downloaded we will make a bootable USB.
I’m using Ventoy to make a multi-bootable USB but you can use Rufus as well. Install Ventoy and select partition as GPT and then install it on your USB. Then just copy the ISO to this USB.
Read more about How To Create Bootable USB For Multiple ISO Files
Installation
Make sure you have a 20GB or above partition made for the OS. Then we will boot into our BIOS. We will select the Boot Devices option and then choose our USB from the list.
It will show the Ventoy interface with the ISO files. Select Arch Linux and hit enter. You will see some loading commands and finally a terminal interface with a blinking cursor.
Read more about Dual Boot Chrome OS New Easy Method! 2022
Commands to Dual Boot Arch Linux
Connect to Wifi or alternatively use an Ethernet cable and skip the wifi setup commands.
Now type,
iwctl
to open the wifi interface
Type,
device list
To see the name of the wifi interface which is mostly wlan0
To scan networks
station (devicename) scan
station (devicename) get-networks
station (devicename) connect (wifiname)
Enter password
To check connection
station (devicename) show
To exit out of iwctl
quit
Or we can use an Ethernet cable to get connected.
Checking internet:
ping google.com -c 3
Setting time and date
timedatectl set-ntp true
Disk partitioning:
Type
lsblk
or
fdisk -l
to see device block
cfdisk /dev/(urblockno)
mostly (/dev/sda)
so it will be
cfdisk /dev/sda
Create 512MB of the type EFI system
Select the remaining storage and create new for the whole size. Linux File system will be automatically created for the partition.
Type,
fdisk -l
to see block numbers of created partitions
Put your own block numbers below:
-Format EFI as fat32
mkfs.fat -F32 /dev/sda (in /dev/sda put your blocknumber for efi)
-Format root as ext4
mkfs.ext4 /dev/sda
Mounting partitions:
-for root
mount /dev/(rootpartition) /mnt
-for boot
mkdir /mnt/boot
mount /dev/(efipartition) /mnt/boot
To check partition:
lsblk
Install base system, Linux kernel, and other required packages:
pacstrap /mnt base linux linux-firmware util-linux grub efibootmgr os-prober intel-ucode networkmanager nano (replace intel-ucode with amd-ucode for amd cpu)
Generate fstab file:
genfstab -U /mnt >> /mnt/etc/fstab
Setting up Arch:
arch-chroot /mnt
-setting timezone and language
ln -sf /usr/share/zoneinfo/(countinent)/(city) /etc/localtime
hwclock --systohc
-Setup locale
nano /etc/locale.gen
Find & uncomment line (delete #) en_US.UTF-8 UTF8
then run
locale-gen
-Set language
echo LANG=EN_US.UTF-8 > /etc/locale.conf then run export LANG=en_US.UTF-8
Set hostname
echo (hostname) > /etc/hostname
nano /etc/hosts
and type:
127.0.0.1 (tab key) localhost
::1 (tab key) localhost
127.0.1.1 (tab key) (hostname)
set root password with:
passwd
Setting Grub:
pacman -S grub efibootmgr os-prober ntfs-3g netwrkmanager network-manager-applet wireless_tools wpa_supplicant
dialog mtools dosfstools base-devel linux-headers git bluez bluez-utils pulseaudio-bluetooth cups openssh
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
Setting Network:
systemctl enable NetworkManager
systemctl enable bluetooth
systemctl enable sshd
make grub config file:
grub-mkconfig -o /boot/grub/grub.cfg
If there is an OS Prober that will not be executed error then run:
nano /etc/default/grub
- Scroll down and you should see #GRUB_DISABLE_OS_PROBER=false. Remove the # to uncomment it.
- If there is no such line then you can add GRUB_DISABLE_OS_PROBER=false at the free space.
Create New User:
useradd -m -g users -G wheel -s /bin/bash (username)
passwd (username)
Then type,
pacman -S sudo
nano /etc/sudoers
uncomment line %wheel ALL= (ALL) ALL
install display server:
pacman -S xorg xorg-server
install audio drivers:
pacman -S pulseaudio pulseaudio-alsa
Desktop Environment:
sudo pacman -S gnome gnome-extra gnome-tweaks
systemctl enable gdm.service
systemctl start gdm.service
If the desktop does not start you can force shutdown and then restart to BIOS. Select Boot device options and choose the GRUB option. There you will see Arch Linux and then you can boot to the system from there.