keskiviikko 22. heinäkuuta 2015

Arch Linuxin asennus

Lisäys 27.11.2022: alla olevat vuonna 2015 kirjoitetut ohjeet ovat yhä melko päteviä. Löydät tästä blogista myös päivitetyn asennusohjeen, joilla otat käyttöön salatut tiedostojärjestelmät.

Asensin joitakin päiviä sitten Arch Linuxin uuteen pöytäkoneeseeni. Löydät alta asennuksessa käyttämäni komennot. Komennot ovat osa Arch Linuxin täydellisistä asennusohjeista, jotka löytyvät osoitteesta https://wiki.archlinux.org/index.php/Installation_guide.

1. Varmista, että verkkokaapeli on kytketty tietokoneeseen.

2. Liitä tietokoneeseen USB-muistitikku, jossa on Arch Linux asennusmedia.

3. Käynnistä tietokone muistitikulta. Omassa koneessani jouduin kytkemään BIOS:n asetuksista Fast Boot -ominaisuuden pois päältä, jotta muistitikku tuli käyttöön.

4. Valitse käynnistysvalikosta Boot Arch Linux

Arch Linux Käynnistysvalikko

5. Kun komentokehote aukeaa, ota käyttöön suomalainen näppäimistö komennolla
loadkeys fi

6. Selvitä kiintolevyjen laitenimet komennolla
lsblk

Komento tulostaa esimerkiksi
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk
sdb      8:16   0 931.5G  0 disk
sr0     11:0    1  1024M  0 rom

Tulosteesta näkyy, että tässä koneessa on 120 Gt levy nimellä sda ja 1000 Gt levy nimellä sdb. Ota talteen nimet sda ja sdb -- nämä levyt varataan Arch Linuxille.

7. Viimeistään tässä vaiheessa suunnittele, miten levyt osioidaan. Minun koneessani on esimerkiksi UEFI BIOS, joten käynnistyslevylle tulee jättää 500 megatavun kokoinen FAT32 tiedostojärjestelmä BIOS:n käyttöön. Lisäksi päätin, että käytän SSD-levyä ainoastaan käyttöjärjestelmää varten ja tallennan kaikki muuttuvat tiedot perinteiselle levylle. Kolmanneksi päätin käyttää tmpfs -tiedostojärjestelmää tilapäistiedostoja varten. Kiintolevyjen salausta en ottanut käyttöön.

Siten 120 Gt SSD-levylle tule osiot
Koko  Laite  Järjestelmä  Liitospiste
500M  sda1   fat32        /boot
50G   sda2   ext4         /
50G   sda3   ext4         /opt

ja 1000 Gt HDD levylle
Koko  Laite  Järjestelmä  Liitospiste
500G  sdb1   ext4         /storage
100G  sdb2   ext4         /var
100G  sdb3   swap         swap
200G  sdb4   ext4         /home

Lvut ovat likimääräisiä. Ylijäävän levytilan voi helposti upottaa johonkin osioon.

8. Kun osiointi on suunniteltu, avaa parted ensimmäisen levyn osiointia varten
parted /dev/sda

Osioi levy partedissa komennoilla
mklabel gpt
mkpart primary fat32 1 512M
set 1 boot on
mkpart primary ext4 512M 50G
mkpart primary ext4 50G 100%

Poistu partedista komennolla
quit

Alusta osiot komennoilla
mkfs.fat -F32 /dev/sda1
mkfs.ext4 -O^has_journal /dev/sda2
mkfs.ext4 -O^has_journal /dev/sda3

Huomaa, että levyt sda2 ja sda3 alustetaan ilman muutoslokia (journal). Tämä siksi, että muutoslokin pitäminen aiheuttaa ylimääräistä kirjoitusta levylle, joka lyhentää SSD-levyn käyttöikää.

9. Osioi vastaavasti datalevy
parted /dev/sdb
mklabel msdos
mkpart primary ext4 1 500G
mkpart primary ext4 500G 600G
mkpart primary linux-swap 600G 700G
mkpart primary ext4 700G 100%
quit

Alusta datalevyn osiot
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkswap /dev/sdb3
mkfs.ext4 /dev/sdb4

10. Kiinnitä äsken luodut tiedostojärjestelmät tilapäisesti käyttöön komennoilla
mount /dev/sda2 /mnt
mkdir /mnt/opt /mnt/boot /mnt/home /mnt/var /mnt/storage
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/opt
mount /dev/sdb1 /mnt/storage
mount /dev/sdb2 /mnt/var
swapon /dev/sdb3
mount /dev/sdb4 /mnt/home

11. Asenna perusjärjestelmä ja kehitystyökalut
pacstrap -i /mnt base base-devel

Asennus voi kestää joitakin kymmeniä minuutteja.

12. Luo sitten tiedostojärjestelmän kuvaus komennolla
genfstab -L -p /mnt >> /mnt/etc/fstab

Avaa tiedosto muokattavaksi (lue ensin ohjeet vi:n käytöstä, jos et tunne sitä ennestään)
vi /mnt/etc/fstab

Etsi tiedostosta sda2 ja sda3 -levyt, ja lisää molempiin noatime -optio relatime-option perään. Valmiit rivit näyttävät esimerkiksi:
/dev/sda2   /      ext4   rw,relatime,noatime  0 1
/dev/sda3   /opt   ext4   rw,relatime,noatime  0 2

Noatime vähentää SSD-levylle kirjoitusta ja siten pidentää levyn käyttöikää.

13. Jatka esiasennetun järjestelmän valmistelua komennolla
arch-chroot /mnt /bin/bash

Komento tuo /mnt-hakemistoon liitetyn asennetun järjestelmän muokattavaksi.

14. Aseta järjestelmän kielet avaamalla kielitiedosto
vi /etc/locale.gen

Poista kommenttimerkki seuraavien rivien alusta
en_US.UTF-8 UTF-8
fi_FI.UTF-8 UTF-8
fi_FI ISO-8859-1

Poistu vi:stä 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

15. Valitse suomalainen näppäimistö Linux konsoliin
vi /etc/vconsole.conf

Lisää tiedostoon rivit:
KEYMAP=fi
FONT=lat9w-16

16. Valitse aikavyöhyke
ln -s /usr/share/zoneinfo/Europe/Helsinki /etc/localtime

17. Aseta koneen kello käymään UTC-aikaa
hwclock --systohc --utc

18. Valitse sisäverkossa näkyvä tietokoneen nimi (tässä arch) ja aseta se
echo arch > /etc/hostname

19. Selvitä verkkolaitteen nimi komennolla
ip link

Komento tulostaa esimerkiksi
1: lo:  mtu 65536 qdisc state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1:  mtu 1500 state UP mode DEFAULT group default qlen 1000
    link/ether 08:62:66:35:46:bc brd ff:ff:ff:ff:ff:ff
missä eno1 on kaivattu laitteen nimi.

Käynnistä DHCP-palvelin verkkolaitteelle
systemctl enable dhcpcd@eno1.service
missä eno1 on ip link -kommennon antama verkkolaite.

20. Aseta pääkäyttäjän salasana
passwd

21. Pöytäkoneessa on sisäänrakennettu Intel HD Graphics näytönohjain, joka kannattaa alustaa Linuxin käynnistysvaiheessa, jotta myös Linux konsolissa voidaan käyttää grafiikkaa. Avaa siksi Linuxin asetustiedosto
vi /etc/mkinitcpio.conf

Etsi rivit MODULES ja HOOKS, ja korjaa tiedostoon
MODULES="i915"
HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck"

Päivitä muutokset Linuxin käynnistystiedostoon
mkinitcpio -p linux

22. Koneessa on UEFI BIOS, joka vaatii erillisen ohjelman asennusta varten
pacman -S dosfstools

Asenna sitten BIOS käynnistyslohko /boot-levylle
bootctl --path=/boot install

Lisää Linux BIOS:n käynnistysvalikkoon
vi /boot/loader/entries/arch.conf

Kopioi alla oleva tiedoston sisällöksi
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=/dev/sda2 rw
missä /dev/sda2 on Linux roottilevyn laitenimi.

Aseta Arch Linux käynnistymään oletuksena
vi /boot/loader/loader.conf

Muokkaa tiedoston sisältöä siten, että tiedostossa lukee
timeout 3
default arch

23. Ota swap käyttöön tilapäisenä levytilana
vi /etc/fstab

Lisää tiedostoon rivi
tmpfs /tmp tmpfs rw,nodev,nosuid,size=80G 0 2

missä 80G on Linuxin sivutustiedostosta (swap) enintään käytettävä osa. Tässä koneessa valitsin tarkoituksella sivutustiedoston kooksi on 100 gigatavua, jotta tilapäisen levytilan määrä ei heti lopu.

Tmpfs-tiedostojärjestelmä auttaa myös osaltaan pidentämään SSD-levyn käyttöikää: tilapäistiedostot tallennetaan ensisijaisesti muistiin ja toissijaisesti HDD-levylle. Missään tapauksessa SSD-levylle ei pitäisi syntyä tilapäistiedostoja.

24. Käynnistä lopuksi asennettu Arch Linux kovalevyltä komennoilla
exit
umount -R /mnt
reboot

Omassa tietokoneessani jouduin lisäksi käymään BIOS:n asetuksista valitsemassa Secure Boot välilehden alta muu käyttöjärjestelmä, jotta asennettu järjestelmä käynnistyi.

Jos kaikki meni oikein, koneen pitäisi käynnistyä Linux konsoliin, josta voit kirjautua sisään pääkäyttäjän tunnuksella. Tietokoneessa on asennuksen jäljiltä minimaalinen Linux järjestelmä, jota voi nyt lähteä räätälöimään haluamaansa suuntaan esimerkiksi asentamalla Gnome-työpöytäympäristön.