# Arch Linux - instalacja
Strona projektu: [Arch Linux](https://demo.hedgedoc.org/FOMrmQ-YQ1mOd93Zgui3hA?both "Arch Linux")
Oficjalna instrukcja instalacji [Installation guide](https://wiki.archlinux.org/title/Installation_guide "Instalation guide")
Zalozenia specyfikacji sprzetu:
Dysk 1 (sda) - partycje: EFI, /, /opt
Dysk 2 (sdb) - partycja /home; szyfrowanie
Drugi dysk bedzie szyfrowany w celu zabezpieczenia wrazliwych danych.
NIC 1 - dhcp (adres przydzieli VirtualBox, prawdopodobnie 10.0.2.15, NAT)
NIC 2 - konfiguracja manualna (siec host only 192.168.57.57/24)
### Konfiguracja sieci
```
ip link
ip address show
ip address add 192.168.57.57/24 dev enp0s8
(opcjonalnie) ip route add 0/0 via 192.168.57.1
ping archlinux.org -c 3
ping 192.168.57.57 -c 3
```
### Polaczenie z lokalnego terminala
Ma zastosowanie jedynie w przypadku instalacji w virtualnej maszynie
```
ss -ntulp
passwd
(z lokalnego terminala)
ssh -l root 192.168.57.57
```
### Sprawdzenie ustawienia czasu
```
timedatectl
timedatectl set-ntp true
```
### Konfiguracja repozytoriow
```
reflector -c Poland -a 6 --sort rate --save /etc/pacman.d/mirrorlist
cat /etc/pacman.d/mirrorlist
pacman -Sy
```
### Weryfikacja boot mode
```
cat /sys/firmware/efi/fw_platform_size
```
- __64__ - boot mode EFI, system 64-bit
- __32__ - boot mode EFI, system 32-bit
- __brak pliku__ bootujemy z uzyciem BIOS
### Partycjonowania dyskow ###
```
lsblk
gdisk /dev/sda
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB EF00 EFI system partition
2 2099200 86327295 40.2 GiB 8300 Linux filesystem
cryptsetup -v -s 512 luksFormat /dev/sdb
cryptsetup open /dev/sdb crypto_home
pvcreate /dev/sda2
pvcreate /dev/mapper/crypto_home
pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/crypto_home lvm2 --- 7.98g 7.98g
/dev/sda2 lvm2 --- 40.16g 40.16g
vgcreate vg0 /dev/sda2
lvcreate -n lvroot -L 35G vg0
lvcreate -n lvopt -l 100%FREE vg0
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvopt vg0 -wi-a----- 5.16g
lvroot vg0 -wi-a----- 35.00g
vgcreate vg1 /dev/mapper/crypto_home
lvcreate -n lvhome -l 100%FREE vg1
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvopt vg0 -wi-a----- 5.16g
lvroot vg0 -wi-a----- 35.00g
lvhome vg1 -wi-a----- 7.98g
vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- 40.16g 0
vg1 1 1 0 wz--n- 7.98g 0
```
### Zakladanie systemow plikow
```
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/vg0/lvroot
mkfs.ext4 /dev/vg0/lvopt
mkfs.ext4 /dev/vg1/lvhome
```
### Mountowanie partycji
```
mount /dev/vg0/lvroot /mnt
mkdir -p /mnt/{boot,home,opt}
mount /dev/sda1 /mnt/boot
mount /dev/vg0/lvopt /mnt/opt
mount /dev/vg1/lvhome /mnt/home
```
### Instalacja bazowego systemu
```
pacstrap /mnt base linux linux-firmware vim intel-ucode lvm2
```
### Wygenerowanie fstab
```
genfstab -U /mnt >> /mnt/etc/fstab
```
### Generowanie crypttaba
```
echo "crypto_home UUID=fed2ef40-6a2c-4957-8fdf-6cda1e82a0f5 none luks,discard" >> /mnt/etc/crypttab
```
### chroot
```
arch-chroot /mnt
```
### dodaje plik wymiany "swapfile"
```
dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress
chmod 600 swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap default 0 0" >> /etc/fstab
```
### ustawienie strefy czasowej
```
ln -sf /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
```
### ustawiamy localesy
```
vim /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
```
### hostname
```
echo "archlaptop" >> /etc/hostname
vim /etc/hosts
```
__zawartosc pliku `/etc/hosts`:__
```
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 localhost
127.0.1.1 archlaptop.localdomain archlaptop
# ipv6
::1 localhost
```
### haslo dla konta root
```
passwd root
```
### instalacja dodatkowych pakietow
```
pacman -Sy efibootmgr base-devel networkmanager wireless_tools wpa_supplicant
pacman -S linux-headers reflector git wget curl rsync man bash-completion
```
### rekofiguracja rozruvhu systemu
```
vim /etc/mkinitcpio.conf
```
Zmieniamy linijke z HOOKami dodajac moduly `encrypt` i `lvm2`
```
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt lvm2 filesystems fsck)
```
```
mkinitcpio -p linux
```
### Instalacja bootloadera
```
bootctl --path=/boot install
cd /boot/loader
vim loader.conf
```
__zawartosc pliku `loader.conf`:__
```
timeout 5
#console-mode keep
default archlinux
```
Tworzymy plik `archlinux.conf` w katalogu `/boot/loader/entries`
```
title Arch Linux
linux /vmlinuz-linux
initrd initramfs-linux.img
options root=/dev/vg0/lvroot rw
```
### reboot
- Mozemy opcjonalnie odmountowac partycje
- Upewniamy sie, ze system zbootuje sie z dysku twardego
- Wychodzimy z chroota
- Rebootujemy system
```
reboot
```
### Konifiguracja sieci
```
systemctl status NetworkManager
systemctl enable --now NetworkManager
```