The script should perform most of the heavy lifting (or repeatable tasks) however there are tasks to be performed once to prepare the system. This guide is prepared using Arch Installation Guide on Arch Wiki. This is quick one pager for reference only. For more details, refer Arch Wiki.
I'm still learning and may not always be able to help. In case you know or fix any problem, please feel free to fork and suggest changes as required. I'll be obliged to improve this script as we move along.
S.No. | File Name | Description |
---|---|---|
01 | Preparation | Quick guide to activities to be performed before running the scripts |
02 | Partition | Preaparing the disk paritions |
03 | Installation | Install Arch Linux before running the scripts |
Run the below command to get the keymap names available
ls /usr/share/kbd/keymaps/**/*xx*.map.gz
xx is country code e.g us for USA, uk for UK, de for Germany
Run below command to set the correct keys. Don't need for US keyboard
loadkeys us
loadkeys uk
loadkeys de-latin1
de-latin1 is for Germany
Check if your network interface is listed and enabled for internet
ip link
Verify network is working by ping
-ing your favourite website
ping archlinux.org
If there is no network, check hardware connections and Wifi is not hard disabled (some devices have switch or external wifi dongle is removed). Check if network interface is not soft blocked using rkfill
command
rfkill list
If network interface is blocked then unblock network adapter
rkfill unblock wifi
Run command to launch interactive shell
iwctl
The command prompt should change to [iwd]#
. Help is avaialble by typing help
command. When done, press ctrl+d
to quit. Auto-completion is enabled, therefore hit Tab
key to auto-complete suggestion
Get list of your devices. We need this to command the correct device to perform the following activities
device list
Scan for networks
station <device> scan
The scanning might take sometime, depending on your network strength
station <device> get-networks
Now connect to the network. Enter the password on prompt
station <device> connect <SSID>
Get details of wifi device
device <device> list
Check the connection state
station <device> list
Get list of known networks connected
known-networks list
If network is not stable or like to connect to other network
station <device> disconnect
Forget the known network
known-networks <SSID> forget
Ensure System clock is accurate
timedatectl set-ntp true
Partition using fdisk
, gdisk
or any of your application of your choice. For EUFI, drive should have a GPT partition table. /root
& /boot
partitions are mandatory.
Suggested partition layout:
Partition | Size (Without Hibernation) | Size (With Hibernation) |
---|---|---|
Boot | 512 MB | NA |
Swap (RAM < 2 GB) | Same as RAM | RAM * 2 |
Swap (RAM >= 2 GB & < 4 GB) | Half of RAM | RAM + 2 |
Swap (RAM >= 4 GB & < 8 GB) | Half of RAM | Depending on load (> RAM) |
Swap (RAM >= 8 GB) | Depending on load | Depending on load (> RAM) |
Root (With home partition) | 25 GB | NA |
Root (No home partition) | 50 GB | NA |
Mount the root partition
mkfs.ext4 /dev/<root_partition> -L <label>
mount /dev/<root_partition> /mnt
Mount the EFI partition
mkfs.fat -F32 /dev/<efi_partition>
mkdir /mnt/boot
mount /dev/<efi_partition> /mnt/boot
If you've separate home partition, mount the home partition. The home
directory would be automatically created in /mnt
if a partition is not assigned
mkfs.ext4 /dev/<home_partition> -L <label>
mkdir /mnt/home
mount /dev/<home_partition> /mnt/home
Mount swap partition if created separately. The script will prompt to create a swapfile during install.
Warning: Do not perform mkswap
if you've existing swap partition being used.
mkswap /dev/<swap_partition>
swapon /dev/<swap_partition>
Use findmnt
to identify the mounted paritions.
Get latest mirrors and install the base package only
The command reflector --list-countries
would get the county code which will be used as parameter to -c
option for reflector
. I've set it as GB
for my purpose.
pacman -Syy reflector
reflector --list-countries | grep "GB"
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
reflector -c "GB" --age 12 --fastest 20 --latest 20 -n 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
pacstrap /mnt base git nano
- You may use
vim
ornano
or both as an editor
Run the comamnd to tell the installation where to look for the OS
genfstab -U /mnt >> /mnt/etc/fstab
Go into the Arch installation and get the files from git but before that few more steps.
arch-chroot /mnt
git clone https://github.com/samdlaw/quick-arch-deploy.git
cd quick-arch-deploy
chmod +x deploy-arch-uefi.sh
chmod +x install-desktop.sh
./deploy-arch-uefi.sh
If you want to install Desktop Environment, run the install-desktop
script. If system was rebooted, use sudo
to run the script.
cd /quick-arch-deploy
./install-desktop.sh