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