sunnuntai 27. marraskuuta 2022

Arch Linux asennus

Arch Linux on muuntautumiskykyinen distro, josta voi rakentaa sellaisen Linuxin kuin haluaa!

Arch Linux asennetaan ajamalla erilaisia apuohjelmia, jotka yksi kerrallaan valmistelevat järjestelmää käyttökuntoon. Alla päivitetty Arch Linuxin asennusohje, joka perustuu vuonna 2015 julkaisemaani Arch Linuxin asennusohjeeseen.

1 Alustus

1.1 Päätin jättää tietokoneeseen pienen osion Windowsia varten, jotta voin tarvittaessa asentaa BIOS-päivitykset valmistajan Windows-ohjelmalla. Tätä varten käynnistin uuden tietokoneen aluksi Windowsiin ja kaivoin esiin vanhan Windows-ohjauspaneelin, joka löytyy myös Windows 11:sta hakusanalla "ohjauspaneeli". Ohjauspaneelista etsi järjestelmä ja klikkaa luo- ja alusta kiintolevyosioita. Ruudulle pitäisi avautua levynhallinta:

Klikkaa hiiren oikeaa nappia C-levyn päällä ja valitse pienennä asema. Syötä numeroina, montako megatavua osiota pienennetään. Esimerkiksi jos haluat jättää Linuxille 880 gigaa levytilaa, niin syötä luku 880000:

1.2 Lataa ja asenna Arch Linuxin asennusmedia USB-tikulle. Itse käytin tähän toista Linux tietokonetta ja 2015 kirjoittamaani ohjetta.

1.3 Käynnistä tietokone ja mene BIOS-asetuksiin painamalla F1, F2 tai delete-näppäintä käynnistyksen jälkeen. Käynnistä tietokone uudelleen, kunnes löydät oikean näppäimen. Kun pääset BIOSiin, niin etsi Secure Boot -ominaisuus ja ota se pois päältä. Aseta tietokonekone käynnistymään ensisijaisesti USB-tikulta.

Tietokone on nyt valmis Linuxin asennukseen!

2 Tietokoneen käynnistys USB-tikulta

2.1 Aseta edellä tekemäsi asennusmedia USB-porttiin ja käynnistä tietokone. Jos BIOS asetukset ovat oikein, niin tietokone käynnistyy USB-tikulta ja ruudulle avautuu komentokehoite.

2.2 Ota käyttöön suomalainen näppäimistö komennolla

loadkeys fi

2.3 Ota käyttöön isompi fontti komennolla

setfont ter-v32n

2.3 Kytke tietokone verkkokaapeliin ja selvitä verkkolaitteen nimi komennolla

ip link

Komento tulostaa esimerkiksi

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP mode DEFAULT group default
    link/ether 88:ae:dd:17:59:4e brd ff:ff:ff:ff:ff:ff
4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 state DOWN mode DORMANT group default
    link/ether 00:93:37:63:a3:21 brd ff:ff:ff:ff:ff:ff

missä enp3s0 on kaivattu verkkolaitteen nimi.

2.4 Käynnistä DHCP-palvelin verkkolaitteelle komennolla

systemctl start dhcpcd@enp3s0

missä enp3s0 on ip link -kommennon antama verkkolaite. DHCP-palvelin hakee tietokoneelle IP-osoitteen ja avaa tilapäisen verkkoyhteyden muutamassa sekunnissa.

2.5 Tarkista, että verkko toimii esimerkiksi komennolla

ping www.google.fi

Jos ruudulle tulostuu rivejä noin sekunnin välein, niin verkko toimii ja voit jatkaa Linuxin asennusta tai korjausta.

3 Massamuistien osiointi

3.1 Päätä, miten haluat osioida massamuistin.

Omassa koneessani on 16 gigatavua muistia, joten päätin jättää perinteisen sivutusosion (swap) tekemättä. Tästä seuraa, että jos fyysinen muisti ei riitä ohjelmalle, niin ohjelma tai koko Linux saattaa kaatua. Lisäksi päätin sijoittaa kaikki tiedostot samalle osioille, vaikka vaarana onkin, että sähkökatko, muistin loppuminen tai muu odottamaton tietokoneen kaatuminen saattaa rikkoa tiedostojärjestelmän siten, ettei tietokone käynnisty enää ollenkaan.

Sähkökatkoja ja muita kaatumisia on kuitenkin vuosien varrella sattunut useita, eikä tiedostojen jakaminen eri osioille ole pelastanut tilannetta: jos esimerkiksi omalla osiollaan pidetty mysql-tietokanta on mennyt rikki koneen kaatumisen vuoksi, niin koneen käynnistys on pysähtynyt, vaikka kaikki muut osiot ovat olleet ehjiä. Tarvittaessa rikkoontuneet tiedostojärjestelmät on kuitenkin aina saanut pelastettua käynnistämällä koneen uudestaan USB-tikulta, joten koneen kaatuminen ei huoleta. Tarvittaessa saan palautettua tärkeimmät tiedostot varmuuskopioista.

Päätin myös salata Linux-osion samalla tavalla kuin tekisin kannettavalle tietokoneelle. Salaus vaikeuttaa rikkoontuneen tiedostojärjestelmän pelastamista, koska salaus pitää ensin avata ennen kuin tiedostojärjestelmää pääsee näkemään tai korjaamaan, mutta tämäkään ei huoleta minua.

3.2 Selvitä osioitavien massamuistien laitenimet komennolla

lsblk

Komento tulostaa esimerkiksi

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0   671M  1 loop /run/archiso/airootfs
sda           8:0    1   3.7G  0 disk
├─sda1        8:1    1   767M  0 part
└─sda2        8:2    1    15M  0 part
nvme0n1     259:0    0 953.9G  0 disk
├─nvme0n1p1 259:1    0   260M  0 part
├─nvme0n1p2 259:2    0    16M  0 part
├─nvme0n1p3 259:3    0  92.3G  0 part
└─nvme0n1p4 259:4    0     2G  0 part

Tulosteesta voidaan lukea, että laitteeseen on kytketty 3,7 gigatavun massamuisti laitenimellä sda ja 953,9 gigatavun massamuisti laitenimellä nvme0n1. Molemmat massamuistit on edelleen osioitu.

3.3 Käynnistä parted ohjelma massamuistin osiointia varten komennolla

parted /dev/nvme0n1

missä nvme0n1 on lsblk komennon tulosteesta poimittu massamuistin laitenimi.

Tulosta nykyinen osiointitaulu gpartedissa komennoilla

unit mb print free

Komento antaa listan varatuista osioista sekä niiden välissä olevasta tyhjästä tilasta esimerkiksi

Model: SAMSUNG MZVL21T0HCLR-00BL7 (nvme)
Disk /dev/nvme0n1: 1024210MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:   

Number  Start      End        Size      File system  Name                          Flags
        0.02MB     1.05MB     1.03MB    Free Space
 1      1.05MB     274MB      273MB     fat32        EFI system partition          boot
 2      274MB      290MB      16.8MB                 Microsoft reserved partition  msftres
 3      290MB      99364MB    99074MB   ntfs         Basic data partition          msftdata
        99364MB    1022112MB  922748MB  Free Space
 4      1022112MB  1024209MB  2097MB    ntfs         Basic data partition          hidden, diag
        1024209MB  1024210MB  0.34MB    Free Space

Tulosteesta havaitaan, että osioiden 3 ja 4 välissä on noin 922 gigatavua vapaata tilaa. Luo uusi osio vapaaseen tilaan komennolla

mkpart linux ext4 X Y

missä X on "print free" komennon tulosteesta poimittu vapaan tilan alkuosoite (tässä 99364MB) ja Y on tilan loppuosoite (tässä 1022112MB).

Poistu partedistä komennolla

quit

3.4 Katso uudelle osiolle varattu laitenimi komennolla

lsblk

Kun vertaat tulostetta aiempaan, niin huomaat listauksessa uuden osion.

3.5 Alusta salaus komennolla

cryptsetup -y -v luksFormat /dev/nvme0n1p5

missä nvme0n1p5 on lsblk komennon tulosteesta poimittu osion laitenimi. Huomaa, että osion numero (tässä p5) tulee antaa, koska vain yksi levyn osioista salataan!

Avaa salattu osio luettavaksi komennolla

cryptsetup open /dev/nvme0n1p5 root

Alusta ext4-tiedostojärjestelmä salatulle osioille komennolla

mkfs.ext4 /dev/mapper/root

missä root on cryptsetup komennolle annettu osion nimi.

3.6 Liitä tiedostojärjestelmä /mnt hakemistoon komennolla

mount /dev/mapper/root /mnt

Etsi edellä olevista gparted ja lsblk komennon tulosteista EFI-osion laitenimi ja liitä se komennolla

mount --mkdir /dev/nvme0n1p1 /mnt/boot

missä nvme0n1p1 on EFI-osion laitenimi. Tämän jälkeen massamuisti on valmis Linuxin asennusta varten!

4 Linuxin asennus massamuistiin

4.1 Asenna Linuxin ydin ja minimaalinen käyttöjärjestelmä massamuistiin komennolla

pacstrap -K /mnt base linux linux-firmware intel-ucode

4.2 Tallenna tiedostojärjestelmien listaus komennolla

genfstab -U /mnt >> /mnt/etc/fstab

Avaa tiedosto /etc/fstab muokattavaksi komennolla (katso vi-editorin pikaohje sivupalkista)

vi /mnt/etc/fstab

Korvaa tiedostossa ext4-tiedostojärjestelmän kohdalla relatime-määre muotoon noatime. Määre noatime kertoo järjestelmälle, että tiedostojen viimeisintä lukuhetkeä ei tarvitse tallentaa, joka vähentää massamuistiin kirjoittamista.

Lisää tiedoston loppuun rivi:

tmpfs /tmp tmpfs rw,nodev,nosuid,size=8G 0 2

Rivi kertoo järjestelmälle, että hakemisto /tmp pidetään ainoastaan muistissa. Useat ohjelmat kirjoittavat tilapäistiedostoja /tmp hakemistoon, ja rivi edelleen vähentää massamuistiin kirjoittamista.

Valmis tiedosto voi sisältää esimerkiksi 3 riviä:

UUID=11ce0d1c-8954-4070-85d6-fc2faf3c4ef2 / ext4 rw,noatime 0 1
UUID=5AA8-C661 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
tmpfs /tmp tmpfs rw,nosuid,nodev,size=8G 0 2

4.3 Vaihda juurihakemisto komennolla

arch-chroot /mnt

Tämän jälkeen kaikki käyttöjärjestelmään tekemäsi muutokset koskevat massamuistiin asennettua Linux käyttöjärjestelmää. Huomaa myös, että samalla katkeaa yhteys USB-tikulle tallennettuihin työkaluihin. Jos tarvitset palata takaisin edelliseen vaiheeseen, niin poistu tilasta exit-komennolla.

4.4 Asenna käyttöönotossa tarvitsemasi työkalut komennolla

pacman -S vi dhcpcd font-terminus vim

4.5 Aseta järjestelmän kielet avaamalla tiedosto /etc/locale.gen muokattavaksi komennolla (katso sivupalkista vi-editorin ohje)

vi /etc/locale.gen

Poista kommenttimerkki seuraavien rivien alusta

en_US.UTF-8 UTF-8
fi_FI.UTF-8 UTF-8

Poistu editorista ja luo kielitiedostot valituille kielille komennolla

locale-gen

Valitse järjestelmän oletuskieli äsken asennetuista kielistä komennolla

echo LANG=en_US.UTF-8 > /etc/locale.conf

4.6 Aseta suomalainen näppäimistö ja isompi fontti Linux konsoliin pysyvästi avaamalla tiedosto /etc/vconsole.conf muokattavaksi komennolla

vi /etc/vconsole.conf

Lisää tiedostoon rivit:

KEYMAP=fi
FONT=ter-v32n

4.7 Valitse aikavyöhyke komennolla

ln -s /usr/share/zoneinfo/Europe/Helsinki /etc/localtime

4.8 Aseta koneen kello käymään UTC-aikaa komennolla

hwclock --systohc --utc

4.9 Valitse sisäverkossa näkyvä tietokoneen nimi (tässä arch) ja aseta se komennolla

echo arch > /etc/hostname

4.10 Aseta root-käyttäjän salasana komennolla

passwd

4.11 Aseta tietokone käynnistämään Linux komennolla

bootctl install

Avaa mkinitcpio.conf-tiedosto muokattavaksi komennolla

vi /etc/mkinitcpio.conf

etsi rivi HOOKS ja varmista, että riviltä löytyy keyboard, keymap ja encrypt. Valmis tiedosto sisältää rivin

HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt filesystems fsck)

Rakenna käynnistystiedostot uudelleen komennolla

mkinitcpio -P

Lisää Linux käynnistysvalikkoon komennolla

vi /boot/loader/entries/arch.conf

Syötä tiedoston sisällöksi:

title Arch Linux
sort-key 0000
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=/dev/nvme0n1p5:root root=/dev/mapper/root rw

missä nvme0n1p5 on Linux-asennuslevyn laitenimi lsblk komennon tulosteesta.

Aseta Arch Linux käynnistymään oletuksena komennolla

vi /boot/loader/loader.conf

Muokkaa tiedoston sisältöä siten, että tiedostossa lukee

default arch.conf
timeout 5
console-mode max

4.12 Ota USB-tikku irti ja käynnistä tietokone uudelleen komennoilla

exit reboot

Jos kaikki meni hyvin, niin Arch Linux käynnistyy massamuistista konsoliin. Kirjaudu sisään root-käyttäjänä edellä antamallasi salasanalla ja ota verkko käyttöön systemctl komennolla kuten aiemmin, niin voit jatkaa Linuxin asennusta haluamaasi suuntaan.