Dual Boot Arch Linux and Windows, Step-By-Step Commands!
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.
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.
Commands to Dual Boot Arch Linux
Connect to Wifi or alternatively use an Ethernet cable and skip the wifi setup commands.
Now type,
to open the wifi interface
Type,
To see the name of the wifi interface which is mostly wlan0
station (devicename) get-networks
station (devicename) connect (wifiname)
Or we can use an Ethernet cable to get connected.
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.
to see block numbers of created partitions
Put your own block numbers below:
mkfs.fat -F32 /dev/sda (in /dev/sda put your blocknumber for efi)
-for root
mount /dev/(rootpartition) /mnt
-for boot
mkdir /mnt/boot
mount /dev/(efipartition) /mnt/boot
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)
genfstab -U /mnt >> /mnt/etc/fstab
-setting timezone and language
ln -sf /usr/share/zoneinfo/(countinent)/(city) /etc/localtime
Find & uncomment line (delete #) en_US.UTF-8 UTF8
then run
echo LANG=EN_US.UTF-8 > /etc/locale.conf then run export LANG=en_US.UTF-8
echo (hostname) > /etc/hostname
127.0.0.1 (tab key) localhost
::1 (tab key) localhost
127.0.1.1 (tab key) (hostname)
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
systemctl enable NetworkManager
systemctl enable bluetooth
systemctl enable sshd
grub-mkconfig -o /boot/grub/grub.cfg
If there is an OS Prober that will not be executed error then run:
- 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.
useradd -m -g users -G wheel -s /bin/bash (username)
passwd (username)
pacman -S sudo
nano /etc/sudoers
uncomment line %wheel ALL= (ALL) ALL
pacman -S pulseaudio pulseaudio-alsa
sudo pacman -S gnome gnome-extra gnome-tweaks
systemctl enable gdm.service
systemctl start gdm.service