Yritin aiemmin rakentaa Gentoosta itselleni palvelinta, mutta homma jäi silloin kesken, kun en saanut kokonaisuutta käynnistymään. Gentoon foorumeilla apua kysellessä minulle tarjottiin yhdeksi vaihtoehdoksi Syslinuxin käyttöä, mutta hylkäsin sen silloin, koska ajattelin sen vain lisäävän yhden liikkuvan (ja minulle ennestään tuntemattoman) osan muutenkin huteraan rakennelmaan. Ajat kuitenkin muuttuvat…

Sain hiljattain käsiini ikääntyneen pöytäkoneen. Siitä sain hyvän testipenkin. Koneessa oli yksi 80 GB:n levy ja omasta romuvarastosta löytyi toinen samanmoinen kaveriksi. Niinpä suunnittelin mielessäni osioinnin, jossa levyille tehdään kolme osiota, jotka peilataan keskenään RAID1:llä ja näiden päälle liimataan LVM osioiden muuntelun helpottamiseksi. Gentoon kanssa Grubiin tuskastuneena päätin kokeilla Syslinuxia käynnistyslataimena. Jakeluksi valitsin Arch Linuxin, koska sen wikistä löytyi hyvin ohjeita RAIDin ja LVM:n käyttöön.

Asennus aloitettiin aivan kuten normaalissakin tapauksessa. Ensimmäiseksi asetettiin asennuslähteet, käytettävä editori ja kello. Tämän jälkeen täytyi kuitenkin hypätä uuteen virtuaalipäätteeseen ja rakennella siellä osiointi valmiiksi.

Vaihdettiin virtuaalipäätteeseen ja ladattiin tarvittavat moduulit RAIDille sekä LVM:lle sekä haettiin DHCP:llä osoite koneelle verkkoon liikennöintiä varten.

alt+f2
modprobe raid1
modprobe dm-mod
dhcpcd eth0
ip addr

Päivitettiin pacmanin käyttämät ohjelmistovarastot ja asennettiin gdisk. Valitsin gdiskin osiointityökaluksi, koska se tukee uudempaa GPT-osiotaulua vanhemman MBR:n sijaan. Asennus sattui siitä harmittavaan ajankohtaan, että Arch Linux siirtyi juuri pakettien allekirjoituksen käyttöön tietoturvan parantamiseksi. Pacman ehdotti aina itsensä päivittämistä. Jos päivityksen hyväksyi, pacman pyysi antamaan entropiaa salausavaimen luomista varten. Komentoriviltä tämä osoittautui yllättävän hankalaksi ja vaikka foorumin perusteella tähän olikin kehitetty ohjelma, päätin mennä helpommalla tavalla ja jättää pacmanin päivittämättä.

pacman-db-upgrade
pacman -Syy
pacman -S gdisk

Kun työkalut olivat valmiina, oli aika aloittaa osiointi. Pääpiirteissään homma meni niin, että aluksi valittiin levy, jota osioidaan. Sitten katsottiin osiotaulua ja tarvittaessa poistettiin olemassa olevat osiot. Tämän jälkeen tehtiin uudet osiot ja luotaessa valittiin niille järkevät tyypit. Lopuksi kirjoitettiin muutokset levylle ja kopioitiin osiointi toiselle levylle, jolloin vältyttiin kirjoitusvihreiden aiheuttamilta eroavaisuuksilta osioinnissa.

gdisk /dev/sda
p (Tarkistetaan, onko levyllä olemassaolevia osioita.)
d (Poistetaan mahdollisesti löytyneet osiot.)
n (Oletusvalinnoilla koon valintaan asti.)
+100M (Tulevan /boot-osion kooksi 100 MB.)
fd00 (Tyypiksi Linux RAID.)

Muut osiot tehtiin samoin, ainoastaan kooksi vaihdettiin swapille +2048M ja viimeisenä tehdylle juurelle koon kohdalla painettiin vain enteriä, jolloin sille annettiin oletuksena koko loppu levy. Lopuksi kirjoitettiin muutokset levylle.

w (Kirjoittaa muutokset levylle. Jos kysyy, tehdäänkö GPT-osiotaulua, vastataan myöntävästi.)
sgdisk --backup=table /dev/sda
sgdisk --load-backup=table /dev/sdb

Kone ilmoitti tässä vaiheessa, että kernel käyttää vielä vanhaa osiointitaulua ja joko pitäisi ajaa komento “partprobe -s” tai käynnistää kone uudelleen. Vanhana windows-adminina valitsin tietysti jälkimmäisen vaihtoehdon. Uudelleenkäynnistyksen jälkeen aloitin jälleen asennuksen normaalisti kuten ensimmäiselläkin kerralla ja hyppäsin virtuaalipäätteeseen, josta matka jatkui gdiskin asennusten jälkeen osioinnin tarkastukseen ja RAID-pakkojen luontiin.

Osioinnin tarkistus molemmilta levyiltä, jotta saadaan varmuus, että kernel on jutussa mukana.

gdisk -l /dev/sda
gdisk -l /dev/sdb

RAID-pakkojen luonti. Md1 on /boot ja koska Syslinux ei osaa uudempaa metadataa, laitetaan mukaan vipu vanhemmalle versiolle. Ohjeissa neuvotaan usein aloittamaan pakan numerointi nollasta, mutta itse aloitin ykkösestä, jotta osioiden numerot menevät samaan tahtiin pakkojen numeroinnin kanssa. Koska kahdelle jälkimmäiselle pakalle käytettiin uudempaa metadataa, pyydettiin vielä varmistusta, että halutaan tehdä näin, eikä osioa ole tarkoitus käyttää käynnistykseen.

mdadm --create /dev/md1 --level=1 --raid-devices=2 --metadata=1.0 /dev/sd[ab]1
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sd[ab]2
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sd[ab]3

Pakat jätettiin taustalle synkronoimaan ja edettiin LVM:n konfigurointiin. Näin voidaan tehdä, koska pakan rakentuminen on asennukselle läpinäkyvää. LVM:ssä tarvitsi luoda vain yksi osio. Parametri “+100%FREE” käyttää loogisen osion luontiin kaiken fyysiseltä osiolta löytyvän tilan.

pvcreate /dev/md3
pvdisplay
vgcreate juurivg /dev/md3
vgdisplay
lvcreate -l +100%FREE juurivg -n juurilv
lvdisplay

Viimeisenä piti vielä kopioida RAID-pakkojen asetukset talteen, jotta ne eivät katoa asennuksen lopussa, kun konetta käynnistetään uudelleen.

mdadm --examine --scan > /etc/mdadm.conf

Kun osiointi oli nyt valmis, siirryttiin takaisin AIF:n puolelle varsinaiseen asennukseen näppäilemällä “ctrl+alt+f1”. Asennusvalikosta otettiin “Manually Configure block devices, filesystems and mount points” ja merkintätavaksi valittiin uuid, koska se on varmempi kuin osioiden kirjaimiin ja numeroihin perustuva, joka voi huonolla tuurilla muuttua käynnistyksen yhteydessä. Labeleja olisi voinut käyttää myöskin, mutta valitsin tällä kertaa uuid:n.

Fstabia rakennettaessa valittiin ensin osioksi “/dev/mapper/juuriv-juurilv” (Huom! Ei tavallista osioa /dev/sda3, ei myöskään RAID-pakkaa /dev/md3 vaan LVM-osio.). Tiedostojärjestelmäksi valittiin ext4, liitoskohdaksi /, labeliksi “juuri” ja optiot jätettiin tyhjäksi. Boot-osion kohdalla laitteeksi valittiin /dev/md1, tiedostojärjestelmäksi ext2, liitoskohdaksi /boot, labeliksi “boot” ja optiot tyhjiä. Swapille osioksi /dev/md2, tiedostojärjestelmäksi swap, labeliksi “swap” ja optiot tyhjinä. Lopuksi poistuttiin takaisin päävalikkoon.

Seuraavana vaiheena oli pakettiin valitseminen. Käynnistyslataimeksi valittiin syslinux ja paketeista valitsin mkinitcpion, mkinitcpio-busyboxin, mlocaten, openssh:n ja pacman-mirrorlistin. Nämä ovat tietysti jokaisella erilaiset mieltymyksistä riippuen. Itselläni oleellisin oli openssh, jotta pääsen hallitsemaan konetta asennuksen jälkeen etänä.

Asennusvalikon otsikko “Configure the system” kertonee kaiken oleellisen seuraavan vaiheen sisällöstä. Tässä muutin vain rc.confista localen suomeksi, USE_LVM piti laittaa päälle, hostname vaihdettiin järkevämmäksi ja verkkoliitännäksi asetettiin eth0. DAEMONS-kohtaan lisäsin sshd:n, jotta SSH-palvelin lähtee automaattisesti käyntiin. Fstabista käytiin katsomassa, että kaikki oli, kuten pitikin. Tiedostossa mkinitcpio.conf piti lisätä dm_mod ja raid1 MODULES-kohtaan, HOOKS-kohtaan lisättiin mdadm ja lvm2 filesystemsin eteen. FILES-kohtaan pistettiin /etc/mdadm.conf Archin foorumilta saadun vinkin perusteella. Locale.gen-tiedostosta kävin poistamassa kommenttimerkit suomen edestä, pacmanin peililistasta kävin tekemässä saman suomalaisille peilipalvelimille, jotta päivitykset ladataan lähempää. Tämän asennusvaiheen päätteeksi keksittiin rootille sopiva salasana ja palattiin päävalikkoon.

Ennen asennuksen edistämistä AIF:n puolella piti mennä vielä toiseen virtuaaliterminaaliin, jotta initrd saataisiin ajan tasalle ja laite käynnistymään asennuksen jälkeen. Siispä “ctrl+alt+f2” näppäimistöltä ja “loitsimaan”.

Aluksi liitettiin tarpeelliset osiot /mnt:n alle ja chrootattiin uuteen ympäristöön. Tähän löytyy hyvät ohjeet Archin wikistä.

cd /mnt
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount /dev/md1 boot/
chroot . /bin/bash
export PS1="(chroot) $PS1"

Kun oltiin päästy sopivaan ympäristöön, oli aika luoda initrd uudestaan.

cd /boot
mkinitcpio -p linux

Sitten poistuttiin chrootatusta ympäristöstä ja irroitettiin edellä tehdyt liitokset.

exit
umount {proc,sys,dev}

Initrd:n ollessa kohdallaan oli aika mennä takaisin AIF:iin näppäilemällä ctrl+alt+f1. Valittiin “Install bootloader”, muokattiin syslinux.cfg:stä odotusaika 3 sekuntiin, annettiin Syslinuxin merkitä tarvittavat osiot käynnistyviksi ja poistuttiin asennuksesta. Vihonviimeiseksi käynnistettiin kone uudelleen ja ihmeteltiin, että se ihan oikeasti käynnistyi ja vaikutti jopa toimivalta.