Archiso (Slovenský)

From ArchWiki
Jump to: navigation, search

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

Note: Pri nasledujúcich krokoch sa odporúča byť prihlásený ako root. V opačnom prípade je pravdepodobné, že budete mať problémy s prístupovými právami.

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

Merge-arrows-2.pngThis article or section is a candidate for merging with Pacman tips#Custom local repository.Merge-arrows-2.png

Notes: Presuňte všeobecné informácie (napr. strom repozitárov) do hlavného článku. (Discuss in Talk:Archiso (Slovenský)#)

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úceho pacstrap 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

Note: Aby ste to mohli spraviť, musíte byť prihlásený ako root. Nemeňte vlastníctvo žiadneho kopírovaného súboru. Všetko v rámci adresára airootfs musí vlastniť root. Vhodné nastavenie vlastníctva bude riešené zachvíľu.

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/.

Note: Ak chcete používať na vašom Live CD nejakého správcu okien, musíte pridať všetky potrebné a správne grafické ovládače, pretože inak môže správca pri načítaní zamrznúť.

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[broken link: invalid section].

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)
Note: Tento príkaz vynecháva niektoré špeciálne adrsáre, ktoré by nemali byť kopírované do nového koreňového adresára.

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

Obnova konfigurácie pam

Táto konfigurácia pam-u síce zničí bezpečnosť vášho nového systému, ale odporúča sa použiť predvolenú konfiguráciu:

# nano /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Ak chcete implicitne dôverovať užívateľom v skupine "wheel", odkomentujte nasledujúci riadok.
#auth           sufficient      pam_wheel.so trust use_uid
# Ak chcete požadovať, aby bol užívateľ členom skupiny "wheel", odkomentujte nasledujúci riadok.
#auth           required        pam_wheel.so use_uid
auth            required        pam_unix.so
account         required        pam_unix.so
session         required        pam_unix.so

Zmazanie špeciálneho udev pravidla

Toto pravidlo udev-u 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

Note: Tento nedostatok bol zafixovaný vo v17(oficiálne ako mesačné vydanie: 2014.08.01), takže tento krok je potrebný len pri staršom live obraze.
# 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

Pozrite tiež

Dokumentácia a tutoriály

Príklad šablony na prispôsobenie