Skip to content

Instantly share code, notes, and snippets.

@zsiegel
Last active July 15, 2021 06:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zsiegel/3210be21ecd0a14c65546bf84015cc57 to your computer and use it in GitHub Desktop.
Save zsiegel/3210be21ecd0a14c65546bf84015cc57 to your computer and use it in GitHub Desktop.
ArchLinux install steps

ARCH LINUX

This is a simple guide with un-encrypted volumes.

  • setup the time
    • timedatectl set-ntp true
  • rank your packman mirrors
    • cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
    • rankmirrors -n 3 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist
  • update pacman
    • pacman -Syy
  • view the available disks
    • fdisk -l
  • partition your disk for UEFI boot
    • cgdisk /dev/sda
  • create the efi partition
    • new
    • default alignment
    • size
      • 100M
    • hex code
      • ef00
    • name
      • EFI
  • create the boot partition
    • new
    • default alignment
    • size
      • 250M
    • hex code default
    • name
      • Boot
  • create the main partition
    • new
    • default alignment
    • size
      • remaining
    • hex code
      • default
    • name
      • Main
  • write the partition to disk
    • write
  • verify the partitions
    • fdisk -l
  • format the partitions
    • mkfs.vfat -F32 /dev/sdX1
    • mkfs.ext2 /dev/sdX2
    • mkfs.ext4 /dev/sdX3
  • mount the partition
    • mount /dev/sdX3 /mnt
    • mkdir /mnt/boot
    • mount /dev/sdX2 /mnt/boot
    • mkdir /mnt/boot/efi
    • mount /dev/sdX1 /mnt/boot/efi
  • prep the system
    • pacstrap -i /mnt base base-devel grub-efi-x86_64 efibootmgr
  • generate the fstab file
    • genfstab -U -p /mnt >> /mnt/etc/fstab
  • move into our filesystem
    • arch-chroot /mnt /bin/bash
  • update the locale
    • nano /etc/locale.gen
  • uncomment the preferred locales
    • en_US.UTF-8 UTF-8
  • update the local
    • locale-gen
  • update the timezone
    • replace REGION and TIMEZONE with values suitable to your zone
    • ln -sf /usr/share/zoneinfo/REGION/TIME_ZONE /etc/localtime
    • hwclock --systohc --utc
  • set the hostname
    • echo MY_DESIRED_HOSTNAME > /etc/hostname
  • setup the root password
    • passwd
  • create the user
    • useradd -m -g users -G wheel -s /bin/bash USERNAME
      • replace USERNAME with desired username
  • set the users password
    • passwd USERNAME
    • replace USERNAME with desired username
  • give user sudo access
    • export EDITOR=YOUR_EDITOR_OF_CHOICE
    • visudo
      • uncomment %wheel ALL=(ALL) NOPASSWD: ALL
  • configure grub
    • grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux
    • grub-mkconfig -o /boot/grub/grub.cfg
  • exit the chroot
    • exit
  • if running in VirtualBox tell the EFI loader where to find grub EFI
    • nano /mnt/boot/EFI/startup.nsh
    • add the following on two seperate lines
      • fs0:
      • \EFI\BOOTLOADER_NAME_FROM_INSTALL\grubx64.efi' > startup.nsh
  • un-mount the filesystem
    • umount -R /mnt
  • reboot the system
    • reboot
  • login via the user you created earlier
  • enable internet via dhcp for your eth if its not enabled
    • sudo systemctl enable dhcpcd
    • sudo reboot now
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment