--- title: Arch Linux Install guide description: published: true date: 2019-11-05T23:07:39.276Z tags: --- # btw I install arch > This **turbo install guide** makes a lot of assumptions on what you want and doesn't cover many real world setups. Always follow the [official wiki](https://wiki.archlinux.org/index.php/Installation_guide) if in doubt. {.is-info} Alternatively, check out [our installer](https://git.fosc.space/fosc/fosc-arch-installer) when it's ready. ## Partitioning To partition disks, always use `cgdisk` unless you have a good reason not to. It's just the best, like a 🦈. > Find the names of your disks using `lsblk` {.is-info} In this guide, the first SATA disk (`sda`) is used. On a modern computer, you may use `nvme0n1` or even `mmcblk0` on embedded systems. `cgdisk /dev/sda` Try to make it look something like: ``` /dev/sda1 200M (ef00) /boot /dev/sda2 $REST_OF_HDD (8300) / ``` The first partition will store the bootloader and the kernel, and will be read by the UEFI to boot. The second one will contain Arch. Format the partitions and mount them. > On an SSD, `f2fs` is recommended instead of `ext4` for unparalled speed. {.is-info} ``` mkfs.vfat -F 32 /dev/sda1 mkfs.ext4 /dev/sda2 mount /dev/sda2 /mnt mkdir /mnt/boot mount /dev/sda1 /mnt/boot ``` ## Internet access If Ethernet was plugged in during boot, it will be ready. When plugging it after the fact, it's best to just reboot. Alternatively, run `dhcpcd`, `killall dhpcd` and run `dhcpcd` again to get an IP address. No, that didn't make sense, but it works way too well. > If a WiFi install is absolutely necessary, run the Arch installer-exclusive `wifi-menu` tool. {.is-warning} Check your internet connectivity with `ping` before continuing. ## Actual install To install packages to a folder instead of normally, `pacstrap` is used. Here a good set of packages to get a running system is provided. `pacstrap /mnt base base-devel linux linux-firmware f2fs-tools xorg-server gnome gnome-extra firefox networkmanager htop zsh grml-zsh-config` ## Chrooting `arch-chroot /mnt /bin/zsh` ``` echo "en_US.UTF-8 UTF-8" > /etc/locale.gen echo LANG=en_US.UTF-8 > /etc/locale.conf locale-gen ``` ## Users ``` passwd chsh root -s /bin/zsh useradd -m -G wheel -s /bin/zsh user passwd user ``` ## Enable services ```systemctl enable NetworkManager gdm``` ## Bootloader `refind-install` ## Kernel cmdline Basically edit your boot options to be 'rw root=/dev/sda2', as sometimes rEFInd doesn't make this automatically `nano /boot/refind_linux.conf` ## Git out `exit` `reboot`