mirror of
https://github.com/kristoferssolo/karbs.git
synced 2025-10-21 19:00:35 +00:00
Added Artix installation guide
This commit is contained in:
parent
862214f4f6
commit
1c9f312c04
426
guides/artixinstallation.md
Normal file
426
guides/artixinstallation.md
Normal file
@ -0,0 +1,426 @@
|
|||||||
|
# Artix Linux Installation Guide (runit version)
|
||||||
|
|
||||||
|
<!-- toc -->
|
||||||
|
|
||||||
|
- [Pre-installation](#pre-installation)
|
||||||
|
* [Partition the disks](#partition-the-disks)
|
||||||
|
+ [Example layout](#example-layout)
|
||||||
|
* [Format the partitions](#format-the-partitions)
|
||||||
|
* [Mount the file systems](#mount-the-file-systems)
|
||||||
|
+ [Flag explanation](#flag-explanation)
|
||||||
|
- [Installation](#installation)
|
||||||
|
* [Install essential packages](#install-essential-packages)
|
||||||
|
- [Configure the system](#configure-the-system)
|
||||||
|
* [Fstab](#fstab)
|
||||||
|
* [Chroot](#chroot)
|
||||||
|
* [Time zone](#time-zone)
|
||||||
|
* [Localization](#localization)
|
||||||
|
* [Variations](#variations)
|
||||||
|
* [Boot loader](#boot-loader)
|
||||||
|
+ [For BIOS systems](#for-bios-systems)
|
||||||
|
+ [For UEFI systems](#for-uefi-systems)
|
||||||
|
* [Root password](#root-password)
|
||||||
|
* [Add user(s)](#add-users)
|
||||||
|
* [Configure sudo](#configure-sudo)
|
||||||
|
* [Package manager](#package-manager)
|
||||||
|
* [Network configuration](#network-configuration)
|
||||||
|
* [Reboot the system](#reboot-the-system)
|
||||||
|
- [Post-installation configuration](#post-installation-configuration)
|
||||||
|
* [Desktop Environment](#desktop-environment)
|
||||||
|
* [Display Login Manager](#display-login-manager)
|
||||||
|
+ [KDE](#kde)
|
||||||
|
+ [GNOME](#gnome)
|
||||||
|
* [Wi-Fi](#wi-fi)
|
||||||
|
* [Optional](#optional)
|
||||||
|
+ [Reflector](#reflector)
|
||||||
|
+ [Paru](#paru)
|
||||||
|
|
||||||
|
<!-- tocstop -->
|
||||||
|
|
||||||
|
## Pre-installation
|
||||||
|
|
||||||
|
### Partition the disks
|
||||||
|
|
||||||
|
Partition your hard drive with [cfdisk](https://man.archlinux.org/man/cfdisk.8).
|
||||||
|
It can be _sda_, _sdb_, _sdc_, _nvme0n1_ or other drive names.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cfdisk /dev/sdx
|
||||||
|
```
|
||||||
|
|
||||||
|
Chose `dos` if available.
|
||||||
|
|
||||||
|
#### Example layout
|
||||||
|
|
||||||
|
- `boot` - 256M
|
||||||
|
- `swap` - (optional, recommended size is the size of RAM or half of it)
|
||||||
|
- `root` - 30GB (10GB for root in VM will be enough, but on physical hardware 30GB-50GB is recommended)
|
||||||
|
- `home` - rest of the drive
|
||||||
|
|
||||||
|
### Format the partitions
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkfs.fat -F 32 /dev/sdx1 # boot partition
|
||||||
|
fatlabel /dev/vda1 boot
|
||||||
|
|
||||||
|
mkswap -L swap /dev/sdx2 # swap partition, if created
|
||||||
|
mkfs.ext4 -L root /dev/sdx3 # root partition
|
||||||
|
mkfs.ext4 -L root /dev/sdx4 # home partition
|
||||||
|
```
|
||||||
|
|
||||||
|
You can replace [ext4](https://wiki.archlinux.org/title/ext4) with [btrfs](https://wiki.archlinux.org/title/Btrfs).
|
||||||
|
|
||||||
|
### Mount the file systems
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mount -L root /mnt
|
||||||
|
mount -Lm boot /mnt/boot
|
||||||
|
mount -Lm home /mnt/home
|
||||||
|
swapon /dev/sdx2
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Flag explanation
|
||||||
|
|
||||||
|
- `-L, --label` - Mount the partition that has the specified label.
|
||||||
|
- `-m, --mkdir` - Allow to make a target directory (mountpoint) if it does not exist yet.
|
||||||
|
|
||||||
|
Mount additional drives/partitions if exist and needed with:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mount /dev/sdy /mnt/exampleFolder
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Install essential packages
|
||||||
|
|
||||||
|
Use the **basestrap** script to install the base package, Linux [kernel](https://wiki.archlinux.org/title/Kernel) and firmware for common hardware:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
basestrap /mnt base base-devel linux linux-firmware runit elogind-runit
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configure the system
|
||||||
|
|
||||||
|
### Fstab
|
||||||
|
|
||||||
|
Generate an [fstab](https://wiki.archlinux.org/title/Fstab) file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
fstabgen -U /mnt >> /mnt/etc/fstab
|
||||||
|
```
|
||||||
|
|
||||||
|
### Chroot
|
||||||
|
|
||||||
|
[Change root](https://wiki.archlinux.org/title/Chroot) into the new system:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
artix-chroot /mnt bash
|
||||||
|
```
|
||||||
|
|
||||||
|
### Time zone
|
||||||
|
|
||||||
|
Set the [time zone](https://wiki.archlinux.org/title/System_time#Time_zone):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
|
||||||
|
```
|
||||||
|
|
||||||
|
Run [hwclock](https://man.archlinux.org/man/hwclock.8) to generate `/etc/adjtime`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
hwclock --systohc
|
||||||
|
```
|
||||||
|
|
||||||
|
### Localization
|
||||||
|
|
||||||
|
Install any text editor ([vim](https://wiki.archlinux.org/title/Vim), [nano](https://wiki.archlinux.org/title/Nano)) of your choice.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -S vim
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit `/etc/locale.gen` and uncomment `en_US.UTF-8 UTF-8` and other needed locales.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/locale.gen
|
||||||
|
```
|
||||||
|
|
||||||
|
Generate the locales by running:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
locale-gen
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the [locale.conf](https://man.archlinux.org/man/locale.conf.5) file, and set the LANG variables accordingly:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/locale.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
```config
|
||||||
|
LANG=en_US.UTF-8
|
||||||
|
```
|
||||||
|
|
||||||
|
### Variations
|
||||||
|
|
||||||
|
If you want to specify which time, number, etc. formats to use, you can do so using the following variables:
|
||||||
|
|
||||||
|
- `LANG`
|
||||||
|
- `LANGUAGE`
|
||||||
|
- `LC_ADDRESS`
|
||||||
|
- `LC_COLLATE`
|
||||||
|
- `LC_CTYPE`
|
||||||
|
- `LC_IDENTIFICATION`
|
||||||
|
- `LC_MEASUREMENT`
|
||||||
|
- `LC_MESSAGES`
|
||||||
|
- `LC_MONETARY`
|
||||||
|
- `LC_NAME`
|
||||||
|
- `LC_NUMERIC`
|
||||||
|
- `LC_PAPER`
|
||||||
|
- `LC_TELEPHONE`
|
||||||
|
- `LC_TIME`
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```config
|
||||||
|
LC_ADDRESS=lv_LV.UTF-8
|
||||||
|
LC_IDENTIFICATION=lv_LV.UTF-8
|
||||||
|
LC_MEASUREMENT=lv_LV.UTF-8
|
||||||
|
LC_MONETARY=lv_LV.UTF-8
|
||||||
|
LC_NUMERIC=lv_LV.UTF-8
|
||||||
|
LC_PAPER=lv_LV.UTF-8
|
||||||
|
LC_TELEPHONE=lv_LV.UTF-8
|
||||||
|
LC_TIME=lv_LV.UTF-8
|
||||||
|
```
|
||||||
|
|
||||||
|
### Boot loader
|
||||||
|
|
||||||
|
First install `grub` and `os-prober` (to detect other operating systems installed):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -S grub os-prober efibootmgr
|
||||||
|
```
|
||||||
|
|
||||||
|
If `ls /sys/firmware/efi/efivars` lists files, you have a UEFI system.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ls /sys/firmware/efi/efivars
|
||||||
|
```
|
||||||
|
|
||||||
|
Install grub:
|
||||||
|
|
||||||
|
#### For BIOS systems
|
||||||
|
|
||||||
|
```shell
|
||||||
|
grub-install --recheck /dev/sdx
|
||||||
|
```
|
||||||
|
|
||||||
|
#### For UEFI systems
|
||||||
|
|
||||||
|
```shell
|
||||||
|
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
|
||||||
|
```
|
||||||
|
|
||||||
|
To enable os-prober uncomment `GRUB_DISABLE_OS_PROBER=false` in `/etc/default/grub` file:
|
||||||
|
To enable os-prober, `GRUB_DISABLE_OS_PROBER=false` in `/etc/default/grub`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/default/grub
|
||||||
|
```
|
||||||
|
|
||||||
|
Must be at the end of the file.
|
||||||
|
|
||||||
|
Make config
|
||||||
|
|
||||||
|
```shell
|
||||||
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
```
|
||||||
|
|
||||||
|
### Root password
|
||||||
|
|
||||||
|
Set the root password:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
passwd
|
||||||
|
```
|
||||||
|
|
||||||
|
### Add user(s)
|
||||||
|
|
||||||
|
Create a regular user and password. Replace _username_ with your desired username.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
useradd -mG username wheel
|
||||||
|
passwd username
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configure sudo
|
||||||
|
|
||||||
|
Uncomment `%whell ALL=(ALL:ALL) ALL` or `%whell ALL=(ALL:ALL) NOPASSWD: ALL` for no password option:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/sudoers
|
||||||
|
```
|
||||||
|
|
||||||
|
### Package manager
|
||||||
|
|
||||||
|
Enable several handy features of [pacman](https://man.archlinux.org/man/pacman.8) package manager:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/pacman.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Uncomment/add the following lines:
|
||||||
|
|
||||||
|
```config
|
||||||
|
Color # Automatically enable colors only when pacman’s output is on a tty.
|
||||||
|
VerbosePkgLists # Displays name, version and size of target packages formatted as a table for upgrade, sync and remove operations.
|
||||||
|
ParallelDownloads = 12 # Specifies number of concurrent download streams. The value needs to be a positive integer. The number of CPU threads on your computer is recommended.
|
||||||
|
ILoveCandy # Otherwise what is the point of using Arch Linux at all?
|
||||||
|
|
||||||
|
[lib32] # Enable 32bit repository (required by steam)
|
||||||
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
|
# Add the following to enable Arch Linux repositories
|
||||||
|
[universe]
|
||||||
|
Server = https://universe.artixlinux.org/$arch
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
Include = /etc/pacman.d/mirrorlist-arch
|
||||||
|
|
||||||
|
[community]
|
||||||
|
Include = /etc/pacman.d/mirrorlist-arch
|
||||||
|
|
||||||
|
[multilib]
|
||||||
|
Include = /etc/pacman.d/mirrorlist-arch
|
||||||
|
```
|
||||||
|
|
||||||
|
Install Arch Linux mirrorlist.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -S wget
|
||||||
|
wget https://github.com/archlinux/svntogit-packages/raw/packages/pacman-mirrorlist/trunk/mirrorlist -O /etc/pacman.d/mirrorlist-arch
|
||||||
|
```
|
||||||
|
|
||||||
|
Install and populate Arch Linux keys:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -Syu artix-archlinux-support
|
||||||
|
pacman-key --populate archlinux
|
||||||
|
```
|
||||||
|
|
||||||
|
Read more about Artix Linux repositories [here](https://wiki.artixlinux.org/Main/Repositories).
|
||||||
|
|
||||||
|
### Network configuration
|
||||||
|
|
||||||
|
Create the [hostname](https://wiki.archlinux.org/title/Network_configuration#Set_the_hostname) file and enter machine name.
|
||||||
|
Replace _myhostname_ with a name that will be seen by other devices on the same network.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/hostname
|
||||||
|
```
|
||||||
|
|
||||||
|
```config
|
||||||
|
myhostname
|
||||||
|
```
|
||||||
|
|
||||||
|
Add matching entries to hosts:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/hosts
|
||||||
|
```
|
||||||
|
|
||||||
|
```config
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost
|
||||||
|
127.0.1.1 myhostname.localdomain myhostname
|
||||||
|
```
|
||||||
|
|
||||||
|
If the system has a permanent IP address, it should be used instead of `127.0.1.1`.
|
||||||
|
|
||||||
|
Install and enable [networkmanager](https://wiki.archlinux.org/title/NetworkManager) and/or [bluez](http://www.bluez.org/):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -S dhcpcd networkmanager-runit bluez-runit git
|
||||||
|
```
|
||||||
|
|
||||||
|
Enable NetworkManager and/or bluetoothd at launch.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ln -s /etc/runit/sv/NetworkManager /etc/runit/runsvdir/default
|
||||||
|
ln -s /etc/runit/sv/bluetoothd /etc/runit/runsvdir/default
|
||||||
|
```
|
||||||
|
|
||||||
|
### Reboot the system
|
||||||
|
|
||||||
|
```shell
|
||||||
|
exit # exit chroot environment
|
||||||
|
umount -R /mnt
|
||||||
|
reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
## Post-installation configuration
|
||||||
|
|
||||||
|
Once shutdown is complete, remove your installation media.
|
||||||
|
If all went well, you should boot into your new system. Log in as your root to complete the post-installation configuration.
|
||||||
|
See [Arch linux's general recommendations](https://wiki.archlinux.org/title/General_recommendations) for system management directions and post-installation tutorials.
|
||||||
|
|
||||||
|
### Desktop Environment
|
||||||
|
|
||||||
|
Install your favorite desktop environment, for example [KDE](https://kde.org/), [GNOME](https://www.gnome.org) or other.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -S plasma kde-applications sddm-runit
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pacman -S gnome gdm-runit
|
||||||
|
```
|
||||||
|
|
||||||
|
### Display Login Manager
|
||||||
|
|
||||||
|
Enable login manager at launch.
|
||||||
|
|
||||||
|
#### KDE
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ln -s /etc/runit/sv/sddm /run/runit/service/
|
||||||
|
sv start sddm
|
||||||
|
```
|
||||||
|
|
||||||
|
#### GNOME
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ln -s /etc/runit/sv/gdm /run/runit/service/
|
||||||
|
sv start gdm
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wi-Fi
|
||||||
|
|
||||||
|
To connect to Wi-Fi run:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nmcli dev wifi list # list all available networks
|
||||||
|
nmcli dev wifi -a connect "name" # connect to network
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional
|
||||||
|
|
||||||
|
#### Reflector
|
||||||
|
|
||||||
|
Install [reflector](https://wiki.archlinux.org/title/reflector) for better Arch Linux mirror setup:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo pacman -S reflector
|
||||||
|
sudo reflector --sort rate --protocol https --save /etc/pacman.d/mirrorlist-arch --latest 200
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Paru
|
||||||
|
|
||||||
|
Install [paru](https://github.com/Morganamilo/paru) - [AUR helper](https://wiki.archlinux.org/title/AUR_helpers):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://aur.archlinux.org/paru-bin
|
||||||
|
cd paru-bin
|
||||||
|
makepkg -si
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue
Block a user