chimera-linux/installation.md
2025-01-14 11:10:07 +01:00

5.8 KiB
Raw Permalink Blame History

Installation

It could have been an installation script, but it's more fun to do it yourself !

Preparation

Download the latest image 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, lets 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 gnome-calculator

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 !