Arch linux telepítése távolról

Ahogy egy korábbi blogomban is írtam, lecserélgetem a szervereimen az Ubuntut Archlinuxra. Tegnapi nap folyamán olyan szerverre kellett feltelepíteni, amelyhez nincs fizikai hozzáférés, csupán egy live-hoz hasonló rescue, valamint egy vKVM.

Mivel egyelerő nem éreztem magamban elég tapasztalatot ahhoz, hogy egyedül nekiessek, így egy volt kollégámmal láttunk neki a feladatnak.

Az egész procedura a rescue rendszeren kezdődött, amelynek alapja egy 64-bites ubuntu. A szolgáltó, a telepítés megkönnyítése érdekében a szokásos rendszerekhez (centos, debian, freebsd, ubuntu) készített egy scriptgyűjteményt, amelyet elindítva, az alapvető információk megadása után (IP, partició, lvm, hostname) berántott egy tar.gz imaget. Ez az image valójában egy feltelepített rendszer, mely tar.gz-vel lett betömörítve. A script futtatása után megparticionálja a merevlemezeket, beállítja a raidet, lvmet és a particiókat, kitömöríti az imaget és módosítja a comfigokat, beállítja a bootot, majd újraindítja a rendstert és már kész is.

Nem hagyományos rendszer esetén, mint amilyen az Arch linux is, sajnos a configokat nem tudja automatikusan beállítani, ezért változtatni kellett a munkafolyamaton.

Mivel mindketten most csináltunk először ilyet, így gondoltuk, mindent úgy csinálunk, ahogy más rendszer esetén tennénk. Feltelepítettünk egy Arch linuxot lokálba az egyik könyvtárba. Biztos, ami biztos beállítottuk az IP-t, hogyha a telepítő script nem tudná, akkor se maradjon a gép hálózat nélkül. Betömörítettük a rendszer, feltettük egy másik szerverre a hozzá tartozó pgp kulcsokkal és aláírásokkal.

Irány a rescue rendszer, belöttük a paramétereket (lvm, raid, net, fs, stb.), majd megadtuk a távoli image urljét. A scipt elindult, particionált, kitömörített, majd egyszer csak elakadt... Szerencsére elég informatív volt az üzenet, így rájöttünk, hogy kihagytuk a grubot az alaprendszerünkből, így, se könyvtár, se configok, se futtatható grub-install nincs a friss rendszeren. Gyorsan pótoltuk, majd újra felmásoltuk, újra futtattuk a "telepítőt". Most már továbbment, viszont az IP-beállításoknál (15. lépés a 17-ből) meghalt, mert az általa keresett könyvtárak nem léteztek. Nem is létezhettek, mivel az arch esetén netctl van. Gondoltuk, itt már nem variálunk, nem másolgatjuk a tar.gz-t, chrootolunk és majd mi beállítjuk. Meg is tettük.

Újraindítás, várakozás. Nem tortenik semmi. Sóhajtozás, majd gondoltuk, nincs mit tenni, újraindítás rescue módban. Nézegettük, de nem láttunk semmi kivetnivalót, úgyhogy abban maradtunk, nézzük meg kvm alatt. El is indítottuk kvm módban, aztán picit ledöbbentünk, hogy már a grubnál lehal. Mivel elég későre járt már, abban maradtunk, hogy innen egyedül kell folytatnom tovább.

Vissza rescue módba, mountolás, chrootolás. Nézegetés. Majd hirtelen jött a megvilágosodás, hogy elfelejtettük bemountolni a /boot particiót, és így elég nehéz lesz egy vlm-es rendszerről bootolnia. Bemountoltam, majd kiadtam a grub-install és grub-mkconfig parancsokat. Nem teljesen volt hibamentes a képernyő, de googlizás után megnyugodtam, ezek nem vészes dolgok. Következett a reboot. És a hosszas várakozás... :-)  Ismét a kvmet hívtam segítségűl, és örömmel láttam, hogy a grubnál tovább megy, a raidet is látta, de utána elég bizar hibákat írt. Azt sikerült megállapítani, hogy az lvm-hez van köze. Irány a rescue mód és a nyomozás... Mivel nekem lokálban van egy saját Arch linuxom raid 10-el és lvm-el, össze kellett hassonlítanom, hogy mi a különbség. Feltűnt, hogy hiányzik a /var/run/lvm könyvtár, ahova az lvm a socketet teszi. Létrehoztam, majd reboot. Sajnos ismét nem lett online a gép, így irány kvm. Ugyanott állt meg, de hibákból már jóval kevesebb volt. Kinyomoztam, hogy a raidhez van köze. Látja a raidet, de nem tudja mountolni a remdsztert. Vissza a rescueba, ahol tüzetesen megvizsgáltam a raidet és a kernel configot is. Feltünt, hogy az mkinitcpio-ból hiányzik a raid modul. Hát, akkor töltessük be vele.

Újraindítás után továbbra sem akarta bemountolni, most viszont feltünt, hogy uuid alapján akarja összerakni a raidet. Megint rescue mód, majd az mkinitcpio-ban a hookban az mdadm-t lecseréltem mdadm_udev-re. És siker! Bár csak részben, mert újraindítás után volt ugyan login prompt, de hálózat az nem. Mindezt persze kvm módban derítettem ki. Mivel az arch linux elég egyedi nevet generál az interfacekhez, mi meg eth0-ra lőttük be, így első sorban ekörül kezdtem nyomozni. Nehezítette a dolgomat, hogy a kvm teljesen más eszközt látott, mint ami valójában van a gépben, így annak megállapítása, hogy a hálókártya drivert betöltötte-e vagy sem alapból, nem tudtam megállapítani, de még a logokban se volt nyoma. Azt viszont sikerült kiderítenem a systemctrl segítségével, hogy a netctl könyvtárban lévő comfig fájl jogosúltsága biztos nem jó. Módosítva a logokat, és az /etc/udev/rules.d könyvtárba betéve a megfelelő fájlt, egészen pontosan, hogy eth0 legyen mindenképp az interface neve, újraindítottam a gépet.

Már kezdtem feladni, amikor a másik gépemen az mtr hirtelen megjelenítette a hostot. Nagyon megörűltem, és örömmel loginoltam be ssh-n keresztűl immár közvetlenül kvm és live/rescue rendszer nélkül:-)

Ha valaki hasonlóra vetemedne, szívesen állok rendelkezésére. 

Kategória: