289 lines
5.8 KiB
Markdown
289 lines
5.8 KiB
Markdown
|
# Installation
|
|||
|
|
|||
|
It could have been an installation script, but it's more fun to do it yourself !
|
|||
|
|
|||
|
## Preparation
|
|||
|
|
|||
|
Download the [latest image](https://repo.chimera-linux.org/live/latest/) for your architecture, verify the checksum, and copy it to a USB pendrive.
|
|||
|
Then boot the machine from the USB drive, log in as `root` using the password `chimera`.
|
|||
|
|
|||
|
> You can use `loadkeys` to set your keymap if needed.
|
|||
|
|
|||
|
You can now proceed with the installation either from this machine or from another machine via SSH, which may be useful for copying and pasting commands.
|
|||
|
|
|||
|
For remote installation, start the `sshd` service :
|
|||
|
```
|
|||
|
# dinitctl start sshd
|
|||
|
```
|
|||
|
|
|||
|
Find the IP address using `ip a` and connect from your workstation with `ssh anon@<ip>` using the password `chimera`.
|
|||
|
Then switch to the root account with `doas -s` using the same password.
|
|||
|
|
|||
|
### Partition the disks
|
|||
|
|
|||
|
Identify disks with `lsblk`, let’s assume here that the target disk drive is `/dev/sda`.
|
|||
|
Start with wiping everything on it :
|
|||
|
```
|
|||
|
# wipefs -a /dev/sda
|
|||
|
```
|
|||
|
|
|||
|
The easiest way to initialize a partition table and create partitions is with the `cfdisk` TUI program :
|
|||
|
```
|
|||
|
# cfdisk /dev/sda
|
|||
|
```
|
|||
|
|
|||
|
Advised GPT partitioning scheme for UEFI systems :
|
|||
|
|
|||
|
| Partition | Mountpoint | Filesystem | Size | Type |
|
|||
|
|-----------|------------|------------|------|------------------|
|
|||
|
| 1 : EFI | /boot/efi | fat32 | 512M | EFI System |
|
|||
|
| 2 : Boot | /boot | ext4 | 1G | Linux filesystem |
|
|||
|
| 3 : Root | / | ext4 | - | Linux filesystem |
|
|||
|
|
|||
|
Advised GPT partitioning scheme for BIOS systems :
|
|||
|
|
|||
|
| Partition | Mountpoint | Filesystem | Size | Type |
|
|||
|
|-----------|------------|------------|------|------------------|
|
|||
|
| 1 : - | - | - | 1M | BIOS boot |
|
|||
|
| 2 : Boot | /boot | ext4 | 1G | Linux filesystem |
|
|||
|
| 3 : Root | / | ext4 | - | Linux filesystem |
|
|||
|
|
|||
|
|
|||
|
### Format the partitions
|
|||
|
|
|||
|
For UEFI systems :
|
|||
|
```
|
|||
|
# mkfs.vfat /dev/sda1
|
|||
|
# mkfs.ext4 /dev/sda2
|
|||
|
# mkfs.ext4 /dev/sda3
|
|||
|
```
|
|||
|
|
|||
|
For BIOS systems :
|
|||
|
```
|
|||
|
# mkfs.ext4 /dev/sda2
|
|||
|
# mkfs.ext4 /dev/sda3
|
|||
|
```
|
|||
|
|
|||
|
### Mount the file systems
|
|||
|
|
|||
|
Mount the root then the boot partitions :
|
|||
|
```
|
|||
|
# mkdir /media/root && mount /dev/sda3 /media/root
|
|||
|
# mkdir /media/root/boot && mount /dev/sda2 /media/root/boot
|
|||
|
```
|
|||
|
|
|||
|
For UEFI systems you also have to mount the EFI partition :
|
|||
|
```
|
|||
|
# mkdir /media/root/boot/efi && mount /dev/sda1 /media/root/boot/efi
|
|||
|
```
|
|||
|
|
|||
|
Check with `lsblk` that your mountpoints are corrects.
|
|||
|
|
|||
|
## System installation
|
|||
|
|
|||
|
### Bootsrap
|
|||
|
|
|||
|
```
|
|||
|
# chimera-bootstrap /media/root
|
|||
|
```
|
|||
|
|
|||
|
### Chroot
|
|||
|
|
|||
|
```
|
|||
|
# chimera-chroot /media/root
|
|||
|
```
|
|||
|
|
|||
|
### Kernel
|
|||
|
|
|||
|
You could omit the installation of the firmwares metapackage when installing in a virtual machine or a container :
|
|||
|
```
|
|||
|
# apk add !base-firmware-linux
|
|||
|
```
|
|||
|
|
|||
|
Linux LTS kernel installation :
|
|||
|
```
|
|||
|
# apk add linux-lts
|
|||
|
```
|
|||
|
|
|||
|
### Essential packages
|
|||
|
|
|||
|
```
|
|||
|
# apk add bash bash-completion tree ucode-<amd/intel>
|
|||
|
```
|
|||
|
|
|||
|
> For an AMD CPU install `ucode-amd` package and `ucode-intel` for Intel.
|
|||
|
|
|||
|
Other useful packages :
|
|||
|
|
|||
|
* Install `ufw` if you wish an easy to use firewall.
|
|||
|
* If you want `cron` install the `cronie` package.
|
|||
|
* You may want `git` it can be installed with the `git` package.
|
|||
|
|
|||
|
### Swapfile (optional)
|
|||
|
|
|||
|
Create a file that will be used for swap :
|
|||
|
```
|
|||
|
# fallocate -l 1G /swapfile
|
|||
|
```
|
|||
|
|
|||
|
Only the root user should be able to write and read the swap file.
|
|||
|
To set the correct permissions type :
|
|||
|
```
|
|||
|
# chmod 600 /swapfile
|
|||
|
```
|
|||
|
|
|||
|
Use the mkswap utility to set up the file as Linux swap area :
|
|||
|
```
|
|||
|
# mkswap /swapfile
|
|||
|
```
|
|||
|
|
|||
|
Enable the swap with the following command :
|
|||
|
```
|
|||
|
# swapon /swapfile
|
|||
|
```
|
|||
|
|
|||
|
### Fstab
|
|||
|
|
|||
|
```
|
|||
|
# genfstab -U / >> /etc/fstab
|
|||
|
```
|
|||
|
|
|||
|
### Time zone
|
|||
|
|
|||
|
```
|
|||
|
# ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
|
|||
|
```
|
|||
|
|
|||
|
### Localization
|
|||
|
|
|||
|
Set yout locale in the `/etc/locale.conf` file :
|
|||
|
```
|
|||
|
LANG=fr_FR.UTF-8
|
|||
|
LC_COLLATE=C
|
|||
|
```
|
|||
|
|
|||
|
If non `us` keymap, set console keymap in the `/etc/default/keyboard` file.
|
|||
|
|
|||
|
### Hostname
|
|||
|
|
|||
|
```
|
|||
|
# echo "<your_hostname>" > /etc/hostname
|
|||
|
```
|
|||
|
|
|||
|
### Initramfs
|
|||
|
|
|||
|
```
|
|||
|
# update-initramfs -c -k all
|
|||
|
```
|
|||
|
|
|||
|
### Root password and shell
|
|||
|
|
|||
|
```
|
|||
|
# passwd root
|
|||
|
# chsh -s /bin/bash root
|
|||
|
```
|
|||
|
|
|||
|
### Create a user
|
|||
|
|
|||
|
```
|
|||
|
# useradd -m -G wheel -s /bin/bash <your_username>
|
|||
|
# passwd <your_username>
|
|||
|
```
|
|||
|
|
|||
|
### Boot loader
|
|||
|
|
|||
|
For EFI systems :
|
|||
|
```
|
|||
|
# apk add grub-x86_64-efi
|
|||
|
# grub-install --efi-directory=/boot/efi
|
|||
|
# update-grub
|
|||
|
```
|
|||
|
|
|||
|
For BIOS systems :
|
|||
|
```
|
|||
|
# apk add grub-i386-pc
|
|||
|
# grub-install /dev/sda
|
|||
|
# update-grub
|
|||
|
```
|
|||
|
|
|||
|
### Enable services at startup
|
|||
|
|
|||
|
* Network
|
|||
|
```
|
|||
|
# cd /etc/dinit.d/boot.d && ln -sf ../dhcpcd .
|
|||
|
```
|
|||
|
|
|||
|
* System logging
|
|||
|
```
|
|||
|
# cd /etc/dinit.d/boot.d && ln -sf ../syslog-ng .
|
|||
|
```
|
|||
|
|
|||
|
Optional services, pick up what you need :
|
|||
|
|
|||
|
* Firewall
|
|||
|
```
|
|||
|
# cd /etc/dinit.d/boot.d && ln -sf ../ufw .
|
|||
|
```
|
|||
|
> Don't forget to execute `ufw enable` at first boot.
|
|||
|
|
|||
|
* Cron
|
|||
|
```
|
|||
|
# cd /etc/dinit.d/boot.d && ln -sf ../crond .
|
|||
|
```
|
|||
|
|
|||
|
* SSH server
|
|||
|
```
|
|||
|
# cd /etc/dinit.d/boot.d && ln -sf ../sshd .
|
|||
|
```
|
|||
|
> If you don't have a user don't forget to enable root connection !
|
|||
|
|
|||
|
### Reboot
|
|||
|
|
|||
|
Exit the chroot environment by typing `exit` or pressing `Ctrl+d`, and restart the machine with `reboot`.
|
|||
|
If you don't need a graphical user interface, your system is ready to use !
|
|||
|
|
|||
|
## Desktop installation
|
|||
|
|
|||
|
Additional tasks to do if you wish to run graphical applications on the system.
|
|||
|
|
|||
|
### Network Manager
|
|||
|
|
|||
|
```
|
|||
|
# apk add networkmanager
|
|||
|
# dinitctl disable dhcpcd
|
|||
|
# dinitctl enable networkmanager
|
|||
|
```
|
|||
|
|
|||
|
### Gcompat
|
|||
|
|
|||
|
```
|
|||
|
# apk add gcompat
|
|||
|
```
|
|||
|
|
|||
|
### Flatpak
|
|||
|
|
|||
|
```
|
|||
|
# apk add flatpak
|
|||
|
# flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
|||
|
```
|
|||
|
|
|||
|
### Gnome
|
|||
|
|
|||
|
Install the desktop environment :
|
|||
|
```
|
|||
|
# apk add '!gnome-apps'
|
|||
|
# apk add gnome gnome-console gnome-software gnome-system-monitor gnome-tweaks gnome-text-editor loupe evince
|
|||
|
```
|
|||
|
|
|||
|
If non `us` keymap, set the X11 keymap for GDM :
|
|||
|
```
|
|||
|
# localectl --no-convert set-x11-keymap fr
|
|||
|
```
|
|||
|
|
|||
|
Finally start the display manager :
|
|||
|
```
|
|||
|
# dinitctl enable gdm
|
|||
|
```
|
|||
|
|
|||
|
Your system is ready to use !
|