Archiso (Slovenčina)
Archiso je malá skupina bashových skriptov schopných vybudovať plne funkčný Arch Linux obraz pre CD a USB. Je to nástroj na generovanie oficiálnych CD/USB obrazov, avšak je to veľmi všeobecný nástroj a potenciálne môže byť využitý na generovanie hocičoho od záchranných systémov, inštalačných diskov, špeciálne zameraných CD/DVD/USB systémov a ktovie čoho ešte. Srdcom a dušou Archisa je mkarchiso. Všetky jeho možnosti sú popísané v jeho výpise použitie, takže tu nebude popísané jeho priame použitie. Miesto toho bude tento wiki článok v pozícii príručky pre veľmi rýchle vytvorenie live média.
Nastavenie
Skôr než začneme, musíme nainštalovať archiso z oficiálnych repozitárov. Alternatívne sa môže použiť archiso-gitAUR z AURu.
Vytvorte adresár, v ktorom budete pracovať. Ten bude priestorom, kde sa budú nachádzať všetky modifikácie. ~/archlive
by malo byť postačujúce.
$ mkdir ~/archlive
Archiso skripty, ktoré sa skôr nainštalovali do hostiteľského systému, je teraz potrepné prekopírovať do novovytvoreného adresára, v ktorom sa bude pracovať.
Archiso prichádza s dvoma "profilmi": releng a baseline.
Ak si želáte vytvoriť plne prispôsobenú live verziu Arch Linuxu predinštalovanú so všetkými vašimi obľúbenými programami a konfiguráciami, použite releng.
Ak len chcete vytvoriť čo najzákladnejšie live médium so žiadnymi predinštalovanými balíčkami a minimalistickou konfiguráciu, použite baseline.
Vzhľadom na váš výber, spustite nasledovný príkaz, pričom nahraďte 'PROFILE' reťazcom releng alebo baseline.
# cp -r /usr/share/archiso/configs/PROFILE/ ~/archlive
Ak používate profil releng k vytvoreniu plne prispôsobeného obrazu, potom pokračujte sekciou #Konfigurácia nášho live média
Ak používate profil baseline k vytvoreniu okliešteného obrazu, potom nebudete potrebovať robiť žiadne prispôsobenia a môžete pokračovať sekciou #Budovanie ISO obrazu.
Konfigurácia nášho live média
Táto sekcia detailne popisuje konfiguráciu obrazu, ktorý vytvoríte. Popisuje definíciu balíčkov a konfigurácii ktoré chcete mať vo vašom live obraze.
Vojdite do adresára, ktorý sme vytvorili skôr (~/archlive/releng/ ak postupujete podľa tejto príručky). Uvidíte v ňom množstvo súborov a adresárov. My sa zameráme len na pár z nich, predovšetkým: packages.* - toto je miesto, kde napíšete do samostatných riadkov názvy balíčkov, ktoré chcete mať predinštalované, a adresár airootfs - tento adresár je v úlohe medzivrstvy a tu sa vykonávajú všetky prispôsobenia.
Vo všeobecnosti každá administratívna úloha, ktorú by ste normálne spravili po čistej inštalácii (okrem inštalácie balíčkov), môže byť naskriptovaná v súbore ~/archlive/releng/airootfs/root/customize-airootfs.sh
. Musí byť písaný z pohľadu nového prostredia, takže / v skripte znamená koreňový adresár live-iso média, ktoré bude vytvorené.
Inštalácia balíčkov
Budete chcieť vytvoriť zoznam balíčkov, ktoré budú obsiahnuté vo vašom live systéme. Do súboru sa napíšu riadok za riadkom názvy baličkov. Je to skvelé pre špeciálne zamerané live CD. Stačí špecifikovať balíčky v súbore packages.both a vytvoriť image. Súbory packages.i686 a packages.x84_64 umožnia inštalovať software pre 32bitový systém, resp. pre 64 bitový.
Ak budete chcieť neskôr nainštalovať systém v prostredí bez internetového pripojenia, alebo budete chcieť preskočiť opätovné sťahovanie súborov, odporúčam nainštalovať "rsync".
Vlastný lokálny repozitár
Taktiež môžete vytvoriť vlastný lokálny repozitár pre účel prípravy vlastný balíčkov alebo balíčkov z AUR/ABS. Keď tak spravíte s balíčkami pre obe architektúry, mali by ste dodržať presnú adresárovú štruktúru, aby ste sa nedostali do problémov.
Napríklad:
-
~/vlastnarepo
-
~/vlastnarepo/x86_64
- ~/vlastnarepo/x86_64/foo-x86_64.pkg.tar.xz
- ~/vlastnarepo/x86_64/vlastnarepo.db.tar.gz
- ~/vlastnarepo/x86_64/cvlastnarepo.db (odkaz vytvorený pomocou
repo-add
)
-
~/vlastnarepo/i686
- ~/vlastnarepo/i686/foo-i686.pkg.tar.xz
- ~/vlastnarepo/i686/vlastnarepo.db.tar.gz
- ~/vlastnarepo/i686/vlastnarepo.db (odkaz vytvorený pomocou
repo-add
)
-
Potom môžete pridať váš repozitár pridaním nasledovného kódu do ~/archlive/releng/pacman.conf
. Umiestnite ho nad ostatné záznamy (pre najvyššiu prioritu).
# vlastný repozitár [vlastnyrepo] SigLevel = Optional TrustAll Server = file:///home/užívateľ/vlastnarepo/$arch
Budovacie skripty sú tým pripravené pre vybrané balíčky.
Ak tomu tak nie je, môžu sa objaviť chybové správy podobné nasledujúcej:
error: failed to prepare transaction (package architecture is not valid) :: package foo-i686 does not have a valid architecture
Vyhnutie sa inštalácii balíčkov patriacich do základnej skupiny
Vo všeobecnosti /usr/bin/mkarchiso
, skript využívaný v ~/archlive/releng/build.sh
, volá skript nazvaný pacstrap
, patriaci do balíčka arch-install-scripts, bez parametra -i
,
čo spôsobí, že Pacman nebude čakať na vstup užívateľa počas inštalačného procesu.
Tým, že balíčky (zo základnej skupiny), ktoré sa nemajú inštalovať, pridáte do riadku IgnorePkg
v súbore ~/archlive/releng/pacman.conf
, sa Pacman aj napriek tomu spýta, či si tieto balíčky
želáte nainštalovať. A keďže je vstup užívateľa potlačený, balíčky sa nakoniec nainštalujú. Existuje niekoľko možností, ako sa tomu vyhnúť:
-
Nepekné: Pridajte parameter
-i
do každého riadku volajúcehopacstrap
v súbore/usr/bin/mkarchiso
.
-
Čisté: Vytvorte kópiu súboru
/usr/bin/mkarchiso
, do ktorého pridáte parameter a upravte~/archlive/releng/build.sh
tak, aby volal modifikovanú verziu skriptu mkarchiso.
-
Pokročilé: Vytvorte funkciu pre
~/archlive/releng/build.sh
, ktorá explicitne zmaže balíčky po základnej inštalácii. Tým sa zbavíte otravného enetrovania počas inštalačného procesu.
Pridávanie užívateľa
So správou užívateľov môžete zaobchádzať rovnako, ako počas bežnej inštalácie, až na to, že vaše príkaze musíte umiestniť do skriptu ~/archlive/releng/airootfs/root/customize_airootfs.sh
.
Ďalšie informácie nájdete na stránke správy užívateľov.
Pridávanie súborov do obrazu
Adresár airootfs vystupuje ako medzivrstva, predstavujte si ho ako rootovský adresár '/' na vašom aktuálnom systéme. Všetky tu umiestnené súbory sa budú nachádzať aj vo vytvorenom live systéme.
Takže ak máte v súčasnom systéme naskriptované IP tabuľky a chcete ich používať aj vo vašom live systéme, skopírujte ich nasledovne:
# cp -r /etc/iptables ~/archlive/releng/airootfs/etc
Umiestňovanie súborov do domovského adresára sa mierne líši. Neumiestňujte ich do adresára airootfs/home, ale radšej vytvorte adresár skel v airootfs/etc a umiestnite ich doňho. Neskôr pridáme určité príkazy do skriptu customize_root_image.sh, ktorý využijeme na prekopírovanie týchto súborov a nastavení prístupových práv pri bootovaní systému.
Najprv vytvorte prázdny adresár. Uistite sa, že ste v adresári ~/archlive/releng/airootfs/etc (ak je to ten, z ktorého pracujete):
# cd ~/archlive/releng/airootfs/etc && mkdir skel
Teraz skopírujte 'domovské' súbory do adresára skel, stále všetko robte ako root! Napríklad pre .bashrc.
# cp ~/.bashrc ~/archlive/releng/airootfs/etc/skel/
Po spustení skriptu ~/archlive/releng/airootfs/root/customize-airootfs.sh
a vytvorení nového užívateľa sa súbory z adresára skel automaticky nakopírujú do nového domovského adresára so správnymi prístupovými právami.
Boot Loader
Predvolený súbor by mal fungovať, takže by nemalo byť potrebné do neho zasahovať.
Vzhľadom na modularitu isolinuxu máte možnosť použiť množstvo add-onov. Pozrite si oficiálne stránky syslinuxu a git repozitár archisa. Využitím spomínaných add-onov je možné vytvoriť vizuálne atraktívnejšie a komplexnejšie menu. Pozrite sa sem.
Login manažér
X server je možné spustiť automaticky po nabootovaní povolením systemd služby vášho login manažéra. Ak viete, na ktorý .service je potrebné vyvoriť odkaz, tak je to skvelé. Ak neviete, môžete to jednoducho zistiť v prípade, že používate rovnaký program ako ten, ktorý chcete použiť v live médiu. Stačí zadať príkaz
# systemctl disable nazovVashoLoginManazera
pre jeho dočasné vypnutie. Teraz zadajte rovnaký príkaz, akurát nahraďte slovo "disable" za "enable", aby sa služba znova aktivovala. Systemctl zobrazí informáciu o odkaze, ktorý práve vytvoril. Teraz vojdite do adresára ~/archiso/releng/airootfs/etc/systemd/system a vytvorte tu rovnaký odkaz.
Napríklad (uistite sa, že ste buď v adresári ~/archiso/releng/airootfs/etc/systemd/system, alebo pridajte adresu do príkazu):
# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service
Týmto sa povolí služba LXDM po spustení vášho live systému.
Zmena automatického prihlasovania
Konfigurácia automatického prihlasovania pre getty sa nachádza v súbore airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf.
Ak chcete zmeniť automaticky prihlasovaného užívateľa, mali by ste modifikovať tento súbor:
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin isouzivatel --noclear %I 38400 linux
Alebo ho zmažte, ak chcete zabrániť automatickému prihlasovaniu.
Budovanie ISO obrazu
Teraz ste pripravený vytvoriť z pripravených súborov obraz .iso, ktorý potom môžete napáliť na CD, alebo nahrať na USB: Z adresára, v ktorom ste pracovali (buď ~/archlive/releng, alebo ~/archlive/baseline), spustite:
# ./build.sh -v
Tento skript najprv stiahne a nainštaluje balíčky, ktoré ste si zvolili, do adresára work/*/airootfs, vytvorí kernel a inicializačné obrazy, aplikuje všetky požadované prispôsobenia a na záver vytvorí iso obraz do adresára out/.
Prebudovanie ISO obrazu
Ak si želáte prebudovať váš iso obraz po pár modifikáciách, musíte zmazať zámkové súbory v pracovnom adresári:
# rm -v work/build.make_*
Použitie ISO obrazu
CD
Jednoducho napáľte iso súbor na cd. Ak chcete, môžete postupovať podľa príručky napaľovania CD.
USB
Pozrite si informácie o USB flashke ako inštalačnom médiu.
GRUB
Pozrite si informácie o viacbootovateľnej USB jednotke.
grub4dos
Grub4dos je utilita, ktorú je možné využiť na vytvorenie viacbootovateľných USBčiek schopných obsahovať viacero linuxových distribúcií na jednej USB jednotke.
Pre nabootovanie vytvoreného systému nachádzajúcom sa na usb, kde je grub4dos už nainštalovaný, namountujte ISO súbor a skopírujte celý adresár /arch
do
koreňového adresára usb. Potom z grub4dos upravte súbor menu.lst
(musí byť v koreňovom adresári usb) a pridajte tieto riadky:
title Archlinux x86_64 kernel /arch/boot/x86_64/vmlinuz archisolabel=<menovka vášho usb> initrd /arch/boot/x86_64/archiso.img
Podľa potreby zmeňte časť x86_64
a doplňte skutočnú menovku usb.
Inštalácia bez prístupu na internet
Ak si želáte nainštalovať archiso v stave akom je bez internetového pripojenia (napr. oficiálne mesačné vydanie), alebo ak si neželáte opätovne sťahovať balíčky:
Inštalácia archisa do nového koreňového adresára
Miesto inštalácie balíčkov za pomoci utilitky pacstrap
(ktorá sťahuje všetky balíčky zo vzdialených repozitárov a my teraz nemáme na internet prístup) skopírujte
prosím všetko v Live prostredí do nového koreňového adresára:
# time (cp -ax /{usr,bin,lib,lib64,sbin,etc,home,opt,root,srv,var} /mnt)
Potom vytvorte pár adresárov a do koreňového adresára nakopírujte obraz kernelu. Pekne po poradí, aby bola zachovaná integrita nového systému:
# mkdir -vm755 /mnt/{boot,dev,run,mnt} # cp -vaT /run/archiso/bootmnt/arch/boot/$(uname -m)/vmlinuz /mnt/boot/vmlinuz-linux # mkdir -vm1777 /mnt/tmp # mkdir -vm555 /mnt/{sys,proc}
Zmena práv (chroot) a konfigurácia základného systému
Teraz si zmeňte práva do novoinštalovaného systému:
# arch-chroot /mnt /bin/bash
Prosím majte na pamäti, že skôr než budete konfigurovať locale, keymap, ... treba spraviť ešte niečo dôležité, aby ste sa vyhli skúmaniu Live prostredia(inými slovami, prispôsobiť archiso, ktoré nemá súvis s ne-Live prostredím).
Obnova konfigurácie journald
Toto prispôsobenie archisa bude viesť k ukladaniu systémového žurnálu do pamäte RAM, čo znamená, že žurnál nebude dostupný po reštarte systému:
# sed -i 's/Storage=volatile/#Storage=auto/' /etc/systemd/journald.conf
Zmazanie špeciálneho udev pravidla
Toto pravidlo udev-u[dead link 2021-07-05 ⓘ] automaticky spustí dhcpcd, ak sa nájde nejaké pevné sieťové rozhranie.
# rm /etc/udev/rules.d/81-dhcpcd.rules
Zablokovanie a zmazanie služieb vytvorených archisom
Niektoré služby a súbory boli vytvorené špeciálne pre live prostredie. Zablokujte prosím tieto služby a zmažte nepotrebné súbory pre nový systém:
# systemctl disable pacman-init.service choose-mirror.service # rm -r /etc/systemd/system/{choose-mirror.service,pacman-init.service,etc-pacman.d-gnupg.mount,getty@tty1.service.d} # rm /etc/systemd/scripts/choose-mirror
Zmazanie špeciálnych skriptov live prostredia
V archise sa taktiež nachádzajú skripty, ktoré sú nepotrebné pre nový systém:
# rm /etc/systemd/system/getty@tty1.service.d/autologin.conf # rm /root/{.automated_script.sh,.zlogin} # rm /etc/sudoers.d/g_wheel # rm /etc/mkinitcpio-archiso.conf # rm -r /etc/initcpio
Opravenie prístupových práv k domovskému adresáru roota
# chmod 700 /root
Nastavte archu heslo
Pomocný skript vytvoril pre live prostredie normálneho užívateľa nazvaného arch
. Užívateľovi arch
môžete nastaviť heslo pre prihlasovanie(v predvolenom stave nemá arch
nastavené žiadne heslo) nasledovne:
You can set a passwd for user arch
in order to login with this username(there is no passwd for arch
by default):
# passwd arch
Ak však nechcete používať toto používateľské meno, zmažte ho:
# userdel -r arch