docs: parabola-installation-guide.md
This commit is contained in:
parent
bcd94eca56
commit
116ca0f636
1 changed files with 209 additions and 1 deletions
|
@ -70,7 +70,7 @@ It might ask you to remote an already present signature, in that case just remot
|
||||||
|
|
||||||
# Filesystem of boot partition
|
# Filesystem of boot partition
|
||||||
|
|
||||||
We are now gonna put a filesystem on the first parition, I use FAT partitioning beacuse it is versatile since it's compatibile with both legacy boot and UEFI.
|
We are now gonna put a filesystem on the first partition, I use FAT partitioning beacuse it is versatile since it's compatibile with both legacy boot and UEFI.
|
||||||
```
|
```
|
||||||
mkfs.fat -F32 /dev/sdX1
|
mkfs.fat -F32 /dev/sdX1
|
||||||
```
|
```
|
||||||
|
@ -122,7 +122,215 @@ nvme0n1 259:0 0 476.9G 0 disk
|
||||||
└─nvme0n1p2 259:2 0 475.9G 0 part
|
└─nvme0n1p2 259:2 0 475.9G 0 part
|
||||||
└─partition-name 254:0 0 475.9G 0 crypt /mnt
|
└─partition-name 254:0 0 475.9G 0 crypt /mnt
|
||||||
```
|
```
|
||||||
|
# (optional) Change mirrors
|
||||||
|
You might want to change the mirrors order to make installation of packages faster by going into this file (use your favorite text editor):
|
||||||
|
```
|
||||||
|
/etc/pacman.d/mirrorlist
|
||||||
|
```
|
||||||
|
From the list, move the servers that are closer to you to the top so that they will be the first ones to be chosen.
|
||||||
|
|
||||||
|
# Install packages into the system
|
||||||
|
Install the needed packages into the ```/mnt``` partition, add what you know you will need:
|
||||||
|
```
|
||||||
|
pacstrap /mnt base base-devel linux-libre linux-libre-firmware btrfs-progs grub networkmanager cryptsetup lvm2 vim neovim
|
||||||
|
```
|
||||||
|
If youre in UEFI then add the following package: ```efibootmgr```
|
||||||
|
|
||||||
|
- base and base-devel:\
|
||||||
|
base is the basic system and all the tools related to it, base-devel is necessary to compile packages and other stuff
|
||||||
|
- linux-libre:\
|
||||||
|
the libre version of the linux kernel, with no binary blobs, obfuscated code, or code released under proprietary licenses
|
||||||
|
- linux-libre-firmware:\
|
||||||
|
Some hardware devices such as the popular NetGear WNA1100 (aka: Wireless-N 150, aka: Atheros AR9271) require firmware (eg: ath9k_htc) from the linux-libre-firmware package
|
||||||
|
- grub:\
|
||||||
|
the boot loader
|
||||||
|
- networkmanager:\
|
||||||
|
internet 'n stuff
|
||||||
|
- cryptsetup and lvm2:\
|
||||||
|
packages needed for encrypting and decrypting the drive
|
||||||
|
- vim and neovim:\
|
||||||
|
i mean you know why
|
||||||
|
|
||||||
|
# Chroot into your system
|
||||||
|
```
|
||||||
|
arch-chroot /mnt bash
|
||||||
|
```
|
||||||
|
|
||||||
|
# Set the timezone and set the hardware clock
|
||||||
|
just run:
|
||||||
|
```
|
||||||
|
ln -s /usr/share/zoneinfo/Europe/Rome /etc/localtime
|
||||||
|
```
|
||||||
|
|
||||||
|
Change country adn city based on your correct timezone
|
||||||
|
Then synch the hardware clock with the system clock:
|
||||||
|
```
|
||||||
|
hwclock --systhoc
|
||||||
|
```
|
||||||
|
|
||||||
|
# Setup keyboard layout and language
|
||||||
|
Edit the locale.gen file:
|
||||||
|
```
|
||||||
|
nvim /etc/locale.gen
|
||||||
|
```
|
||||||
|
Uncomment the your langage and layout of choice
|
||||||
|
|
||||||
|
Edit the file locale.conf:
|
||||||
|
```
|
||||||
|
nvim /etc/locale.conf
|
||||||
|
```
|
||||||
|
I will add the setup for the US keyboard but you might want a different layout:
|
||||||
|
```
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
export LC_COLLATE="C"
|
||||||
|
```
|
||||||
|
Run the locale-gen command:
|
||||||
|
```
|
||||||
|
locale-gen
|
||||||
|
```
|
||||||
|
# Name your computer
|
||||||
|
Run:
|
||||||
|
```
|
||||||
|
echo "myhostname" > /etc/hostname
|
||||||
|
```
|
||||||
|
|
||||||
|
change **myhostname** with your desired name, then edit the following file:
|
||||||
|
```
|
||||||
|
nvim /etc/hosts
|
||||||
|
```
|
||||||
|
and add the follwing lines:
|
||||||
|
```
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost
|
||||||
|
127.0.1.1 myhostname.localdomain myhostname
|
||||||
|
```
|
||||||
|
|
||||||
|
# Enable NetworkManager service
|
||||||
|
run:
|
||||||
|
```
|
||||||
|
systemctl enable NetworkManager.service
|
||||||
|
```
|
||||||
|
|
||||||
|
# Add a user and set his groups and password
|
||||||
|
First add a password to your root with:
|
||||||
|
```
|
||||||
|
passwd
|
||||||
|
```
|
||||||
|
Then create a new user:
|
||||||
|
```
|
||||||
|
useradd -G wheel -m user
|
||||||
|
```
|
||||||
|
this way a user by the name of **user** has been created, added to the wheel group and a home directory has been created for him
|
||||||
|
Set the user user password:
|
||||||
|
```
|
||||||
|
passwd user
|
||||||
|
```
|
||||||
|
|
||||||
|
# Edit the mkinitcpio configuration
|
||||||
|
Edit the **mkinitcpio.conf** file:
|
||||||
|
```
|
||||||
|
nvim /etc/mkinitcpio.conf
|
||||||
|
```
|
||||||
|
look for the line in which hooks are declared, it is going be like this:
|
||||||
|
```
|
||||||
|
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystem fsck)
|
||||||
|
```
|
||||||
|
add to the hooks **encrypt** and **lvm2**:
|
||||||
|
```
|
||||||
|
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt lvm2 filesystem fsck)
|
||||||
|
```
|
||||||
|
**Optionally** you can add the following modules to same mkinitcpio.conf file:
|
||||||
|
```
|
||||||
|
hid usbhid hid_generic ohci_pci
|
||||||
|
```
|
||||||
|
If, at the end of the installation, the keyboard is not working during the decryption of the partition\
|
||||||
|
|
||||||
|
Update the conf by typing:
|
||||||
|
```
|
||||||
|
mkinitcpio -p linux-libre
|
||||||
|
```
|
||||||
|
|
||||||
|
# Make the system able to decrypt the partition
|
||||||
|
Start by exiting the partition:
|
||||||
|
```
|
||||||
|
exit
|
||||||
|
```
|
||||||
|
Create an fstab and output it in the correct place:
|
||||||
|
```
|
||||||
|
# genfstab -p /mnt >> /mnt/etc/fstab
|
||||||
|
```
|
||||||
|
use **-U** or **-L** to define by UUID or labels, respectively
|
||||||
|
|
||||||
|
Take the output of **lsblk -f** in put it in the following file:
|
||||||
|
```
|
||||||
|
lsblk -f >> /mnt/etc/default/grub
|
||||||
|
```
|
||||||
|
Go back into your system:
|
||||||
|
```
|
||||||
|
arch-chroot /mnt bash
|
||||||
|
```
|
||||||
|
|
||||||
|
# Edit GRUB to make the system able to encrypt and decrypt the partition
|
||||||
|
Enter the following file:
|
||||||
|
```
|
||||||
|
nvim /etc/default/grub
|
||||||
|
```
|
||||||
|
At the end of the file you will find the output of our **lsblk -f** command, it will be something similar to this:
|
||||||
|
```
|
||||||
|
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
|
||||||
|
sdb
|
||||||
|
nvme0n1
|
||||||
|
├─nvme0n1p1 [UUID_0] 862.4M 16% /boot
|
||||||
|
└─nvme0n1p2 [UUID_1]
|
||||||
|
└─cryptlvm [UUID_2] 431.2G 9% /
|
||||||
|
```
|
||||||
|
You will only need the two UUIDs: **[UUID_1]** and **[UUID_2]**
|
||||||
|
|
||||||
|
|
||||||
|
And at the top of this file there will be a line that looks like this:
|
||||||
|
```
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
|
||||||
|
```
|
||||||
|
Now, take the UUID of the encrypted partition (in this case the **UUID_1**) and add the following to the GRUB_CMDLINE_LINUX_DEFAULT:
|
||||||
|
```
|
||||||
|
cryptdevice=UUID=[UUID_1]:cryptlvm
|
||||||
|
```
|
||||||
|
It will look something like this:
|
||||||
|
```
|
||||||
|
cryptdevice=UUID=33dd1b52-a543-4143-8bf8-004390e411e0:cryptlvm
|
||||||
|
```
|
||||||
|
Take the UUID of the decrypted partition (in this case the **UUID_2**) and add the following to the GRUB_CMDLINE_LINUX_DEFAULT:
|
||||||
|
```
|
||||||
|
root=UUID=[UUID_2]
|
||||||
|
```
|
||||||
|
It will look something like this:
|
||||||
|
```
|
||||||
|
root=UUID=b720a64e-fdf2-462e-9231-d1a35ae2654e
|
||||||
|
```
|
||||||
|
the **GRUB_CMDLINE_LINUX_DEFAULT** should look like this:
|
||||||
|
```
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet cryptdevice=UUID=33dd1b52-a543-4143-8bf8-004390e411e0:cryptlvm root=UUID=b720a64e-fdf2-462e-9231-d1a35ae2654e"
|
||||||
|
```
|
||||||
|
|
||||||
|
# Install Grub bootloader
|
||||||
|
Install GRUB for UEFI devices:
|
||||||
|
|
||||||
|
**esp** denotes the mountpoint of the EFI system partition
|
||||||
|
```
|
||||||
|
grub-install --target=x86_64-efi --efi-directory=[esp] --bootloader-id=grub
|
||||||
|
```
|
||||||
|
|
||||||
|
Install GRUB for legacy BIOS devices
|
||||||
|
```
|
||||||
|
grub-install /dev/sdX
|
||||||
|
```
|
||||||
|
Then create the grub configuration:
|
||||||
|
```
|
||||||
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you can unmount your partitions, remove your bootable device and reboot the system.
|
||||||
|
You now a have a fully libre system, you chad.
|
||||||
|
|
||||||
|
# Migrate to Open-RC
|
||||||
|
For maximum chad-status you have to remote systemD in favour of Open-RC, the Parabola wiki has a section on how to do so [HERE](https://wiki.parabola.nu/OpenRC)
|
||||||
|
|
Loading…
Reference in a new issue