mirror of
https://github.com/ItsDrike/dotfiles.git
synced 2024-11-10 02:39:40 +00:00
106 lines
3.2 KiB
Markdown
106 lines
3.2 KiB
Markdown
|
## 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`
|