dotfiles/arch-install-checklist.md

106 lines
3.2 KiB
Markdown
Raw Normal View History

2021-04-01 17:28:08 +00:00
## Set keyboard layout
Default layout will be US
`ls /usr/share/kbd/keymaps/**/*.map.gz` <- list keymaps
`loadkeys de-latin1` <- modify layout
## Verify boot mode
`ls /sys/firmware/efi/efivars` <- if exist, system is UEFI, else legacy BIOS
## Internet connection
Ethernet connection is automatic, WiFi:
`ip link` <- check network interface works and is enabled
`iwctl` <- authenticate to your WiFi network
`ping archlinux.org` <- test connection
## System clock
`timedatectl set-ntp true` <- make sure the clock will be accurate
`timedatectl status` <- check the status
## Partition the disk
`fdisk /dev/sdX` <- make partitions
- EFI (if UEFI)
- Swap
- Root
- (Home)
## Format the partitions and make filesystems
`mkfs.ext4 /dev/root_partition`
`mkfs.fat -F32 /dev/efi_system_partition`
`mkswap /dev/swap_partition`
## Mount the file systems
`mount /dev/root_partition /mnt`
`mount /dev/efi_system_partition /mnt/boot`
`swapon /dev/swap_partition`
## Install essentials
First select mirrors (`/etc/pacman.d/mirrorlist`)
`pacstrap /mnt base linux linux-firmware base-devel NetworkManager vim`
## Fstab
`genfstab -U /mnt >> /mnt/etc/fstab`
## Chroot
`arch-chroot /mnt`
## Set time zone
`ln -sf /usr/share/zoneinfo/Region/Ciry /etc/localtime` <- specify timezone
`hwclock --systohc` <- synchronize clock, to generate `/etc/adjtime`
## Localization
Edit `/etc/locale.gen` and uncomment `en_US.UTF-8 UTF-8` and ISO locales
`locale-gen` <- Generate locales
Set LANG variable in `locale.conf`:
```
LANG=en_US.UTF-8
```
Set persistent keyboard layout in `/etc/vconsole.conf`
(This will default to english, if not set)
```
KEYMAP=de-latin1
```
## Network Config
Define hostname in `/etc/hostname` (name of computer)
Add matching entries to `/etc/hosts`
```
127.0.0.1 localhost
::1 localhost
127.0.1.1 hostname.localdomain hostname
```
## Set root password or make other account
`passwd` <- Set root password
It's better to work with priviledged user rather than root account directly.
To do this, we first have to install `sudo` and `vim`. (We did this with `pacstrap`)
After that, we can edit the configuration by `sudo EDITOR=vim visudo`, in which we will uncomment the line `%wheel ALL=(ALL) ALL` and save
After sudo is set up and `wheel` group is allowed to use it, we can make the user:
`useradd -G wheel,admin -d /path/to/home -m username -`
`passwd username`
After this, we can login as this user and make sure everything works as it shoud:
`sudo su username`
## Install bootloader
This will only cover grub, for other bootloaders, visit `https://wiki.archlinux.org/index.php/Arch_boot_process#Boot_loader`
Install `grub` package with pacman
Note: To detect other operating systems too, you will also need `os-prober` package, also with NTFS systems, if windows isn't detected, try installing `ntfs-3g` and remounting
UEFI:
`efibootmgr` package is also needed for UEFI systems
`grub-install --target=x86_64-efi --efi-directory=boot --bootloader-id=GRUB`
BIOS (Legacy):
`grub-install --target=i386-pc /dev/sdX`, where sdX is the disk, **not a partition**
Note: `--removable` option can be used, which will allow booting if EFI variables are reset or you move to another PC
### Generating grub configuration
`grub-mkconfig -o /boot/grub/grub.cfg`