# Install ARCH Linux with UEFI # The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description. # Download the archiso image from https://www.archlinux.org/ # Copy to a usb-drive dd if=archlinux.img of=/dev/sdX bs=16M && sync # on linux # Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the BIOS configuration. # Set finnish keymap loadkeys fi # This assumes a wifi only system... wifi-menu # Create partitions cgdisk /dev/sda 1 512MB EFI partition # Hex code ef00 ;sda1 2 100% size partiton # (to be encrypted) Hex code 8300 ;sda2 # Create EFI partition mkfs.vfat -F32 /dev/sda1 # Create filesystem on root partition mkfs.ext4 /dev/sda2 # Create swapfile fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile # Mount the new system mount /dev/sda2 /mnt # /mnt is the installed system mkdir /mnt/boot mount /dev/sda1 /mnt/boot # Install the system also includes stuff needed for starting wifi when first booting into the newly installed system # Unless nvim and zsh are desired these can be removed from the command. Dialog is needed by wifi-menu pacstrap /mnt base base-devel zsh nvim git sudo networkmanager dialog wifi-menu wpa_supplicant wireless_tools gnome-keyring # 'install' fstab genfstab -pU /mnt >> /mnt/etc/fstab # Make /tmp a ramdisk (add the following line to /mnt/etc/fstab) tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 # Add swapfile to fstab /swapfile none swap defaults 0 0 # Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD) # Enter the new system arch-chroot /mnt /bin/bash # Setup system clock ln -s /usr/share/zoneinfo/Europe/Helsinki /etc/localtime hwclock --systohc --utc # Set the hostname echo MYHOSTNAME > /etc/hostname # Generate locale #Uncomment wanted locales in /etc/locale.gen vim /etc/locale.gen locale-gen localectl set-locale LANG=en_IE.UTF-8 #To avoid problems with gnome-terminal set locale system wide #Do NOT set LC_ALL=C. It overrides all the locale vars and messes up special characters #Pay attention to the UTF-8. Capital letters ! echo LANG=en_IE.UTF-8 >> /etc/locale.conf echo LC_ALL= >> /etc/locale.conf # Set password for root passwd # Add real user remove -s flag if you don't whish to use zsh useradd -m -g users -G wheel,storage,power -s /bin/zsh MYUSERNAME passwd MYUSERNAME # Configure mkinitcpio with modules needed for the initrd image vim /etc/mkinitcpio.conf # Regenerate initrd image mkinitcpio -p linux # Setup systembootd (grub will not work on nvme at this moment), install Intel microcode pacman -S intel-ucode bootctl install # Create loader.conf echo 'default Arch' >> /boot/loader/loader.conf echo 'timeout 10' >> /boot/loader/loader.conf # Create arch.conf (or XYZ.conf for default XYZ in loader.conf) vim /boot/loader/entries/Arch.conf # Add the following content to Arch.conf # from /dev/sda2. It can be found with the 'blkid' command title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=xxxx-xxxxx-xxx-xxx rw blkid >> /boot/loader/entries/Arch.conf # Exit new system and go into the cd shell exit # Unmount all partitions umount -R /mnt swapoff -a # Reboot into the new system, don't forget to remove the cd/usb reboot # On a new system you might want to check keymap and fix it? localectl set-keymap --no-convert fi localectl set-x11-keymap fi # Install yay git clone https://aur.archlinux.org/yay.git -> cd yay -> makepkg -si # Mirrors pacman -S reflector cp etc/pacman.d/mirrorlist etc/pacman.d/mirrorlist.bak reflector --latest 200 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist # Install X-server and graphics drivers pacman -S xorg-server xorg-xinit pacman -S xf86-video-intel pacman -S xf86-input-synaptics sudo pacman -Syyu # After scripts have completed install plug and vundle for neovim curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim git clone https://github.com/VundleVim/Vundle.vim.git ~/.config/nvim/bundle/Vundle.vim # and tmux plugin manager git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm