Linux E X P R E S

Facebook

Ako modifikovať Knoppix a iné live CD

Určite ste už počuli o možnosti vytvárať virtuálne disky, kedy do jedného veľkého súboru uložíte celý systém, napálite ho na CD a systém takto rozbehnete z hocijakého počítača. Live CD distribúcie Linuxu používajú túto funkciu - mať systém live CD podľa vlastných predstáv je paráda! Juraj Šípoš.


QuickStart alebo Rýchly úvod do problematiky

Tučniak ako prvý zabodoval v masovom šírení live CD distribúcií už dávnejšie, kde loop disk, ktorý je ešte k tomu v kompresii cloop (compressed loop), podporuje uloženie veľkého množstva dát.

Vytvoriť takýto disk možno niekoľkými spôsobmi, v prvom rade napr. použijete už existujúci súbor z takejto distribúcie, alebo si vytvoríte vlastný. Dáme teda niekoľko rád, ako si spraviť, resp. upraviť takýto súbor tak, aby ste v live CD distribúcii mali programy, ktoré máte radi alebo ktoré často používate.

Okrem rôznych, i kryptografických, riešení výrobcov používa Linux pre tento účel základnú a pre každého použiteľnú funkciu, pomocou ktorej takýto virtuálny disk vytvoríte ako loop disk, ktorý akokoľvek naformátujete. Live CD distribúcie Linuxu používajú túto funkciu a ak si budete chcieť doinštalovať čokoľvek do takéhoto súboru - napr. aj podporu NTFS pre Linux od komerčných výrobcov alebo iba obľúbené utility - tu sa dozviete, ako na to.

Kryptografické moduly treba načítať do jadra pomocou príkazu insmod alebo modprobe; ak potrebujete špeciálny alebo špecifický kryptografický algoritmus, je potrebné naštudovať si túto problematiku z iných zdrojov. Uvedené informácie slúžia iba ako orientačná mapka pre prácu s virtuálnymi diskami a môžu sa ukázať užitočné, ak sa rozhodnete vytvárať vlastné riešenia pre virtuálne disky alebo prácu s nimi.

Najelegantnejšie využitie týchto informácií spočíva najmä v úprave už existujúcej live CD distribúcie - načo totiž vytvárať vlastné distro tak, ako Boh stvoril Adama, keď tu máme stovky live CD rovno pod nosom? S jablkom totiž môžu prísť ďalšie nemilé prekvapenia a ak nemáte rozsiahlejšie skúsenosti, lepšie je nestrácať čas nad nepoznaným. Knoppix (www.knoppix.com) je považovaný za jeden vôbec z najlepšie vypracovaných systémov typu live, ktorý má veľa klonov. Bude užitočné vedieť, ako ho upraviť. Keďže jeho stabilita a spoľahlivosť, vynikajúca detekcia hardvéru, ako aj aplikácie robia tento systém atraktívnym, poďme sa naň pozrieť.

Definície pre prehľadnosť

Aby sme sa ľahšie orientovali, musíme si zadefinovať najhlavnejšie pojmy:

Loop disk je virtuálny disk - súbor, ktorého obsah môže byť naformátovaný akokoľvek. Možno ho aj využiť akokoľvek, napr. aj ako virtuálny swap alebo úložisko dát.

Cloop disk je to isté čo loop disk, len ide o komprimovaný virtuálny loop disk, ktorý obsahuje až 2 GB dát bežne využiteľných na live CD s kapacitou približne iba 700 MB.

Mapka pre prehľadnosť

Pre upresnenie alebo transparentnosť tohto nie najjednoduchšieho riešenia si urobíme ešte mapku, podľa ktorej sa budete ľahšie orientovať:

  1. Pracujte ako užívateľ root, teda najprivilegovanejší užívateľ.
  2. Loop disk v live CD distribúciách je v kompresii cloop a môžete ho dekomprimovať, ale aj pripojiť do adresára (napr. /mnt) pomocou cloop modulu jadra.
  3. Do CD-ROM mechaniky zasuniete distribúciu KNOPPIX, ktorú pripojíte niekde do adresára, napr. /mnt2. Komprimovaný cloop disk sa nachádza na CD v adresári KNOPPIX s rovnakým názvom. Do systému ho teda pripojíte:

    	modprobe cloop
    	losetup /dev/cloop1 /mnt2/KNOPPIX/knoppix
    	mount /dev/cloop1 /mnt
    	
  4. Po pripojení uvidíte obsah virtuálneho cloop disku v adresári, kde ste ho pripojili; ak zadáte príkaz mount, uvidíte bod pripojenia a väčšinou súborový systém ISO9660.
  5. Pre vytvorenie loop disku a teda aj cloop disku môžete použiť akýkoľvek súborový systém; ISO9660 však býva najčastejšie riešenie, ale nesmiete si zamieňať súborový systém cloop disku s finálnym ISO súborom pre live CD, ktorý v samotnom závere napálite na CD.
  6. Obsah cloop disku musíte niekde prekopírovať, aby ste ho mohli modifikovať; najelegantnejšie riešenie po skopírovaní je použiť administrátorskú utilitu chroot.
  7. Chroot sa využíva veľmi často aj ako bezpečnostné riešenie, kedy je "systém v systéme" a takáto konfigurácia sa doporučuje aj pre servery či iné sieťové riešenia. Výhodou tohto je skutočnosť, že sa užívateľ ukryje pred vonkajším svetom a ak sa niekto nabúra do systému, útočník nevidí jeho pravý obsah. Prostredie chroot sa odporúča ako bezpečnostná stratégia, čo v tomto prípade nepotrebujeme, ale nám to pomôže.

  8. Po modifikácii obsahu virtuálneho cloop disku, ktorý ste prekopírovali niekde na pevný disk ako dáta do adresára, vytvoríte z adresára s takýmto obsahom jeden ISO9660 súbor, ktorý však nebudete napaľovať.
  9. Tento ISO9660 súbor skomprimujete do cloop kompresie pomocou utility create_compressed_fs.
  10. Zapakovaný súbor prekopírujete do adresára, kam ste predtým skopírovali obsah fyzického CD Knoppix na pevný disk, resp. prepíšete súbor knoppix a o ostatné sa už nemusíte starať. Dôležité je však dodržať názov súboru - knoppix, ktorý sa v live CD Knoppix nachádza v adresári KNOPPIX/knoppix a má niečo menej než 700 MB.
  11. Z adresára, kde máte prekopírovaný obsah originálneho, fyzického CD Knoppix (alebo iného CD), vytvoríte bežný ISO9660 súbor, ktorý napálite na CD. Pri vytváraní DVD nezabúdajte, že mkisofs, resp. formát ISO9660 je limitovaný, ak veľkosť jedného súboru prekročí istú hranicu.
  12. Ak ste boli úspešní, kdekoľvek prídete, či už s prezentáciami, sieťovými riešeniami či komerčnými aplikáciami, ľudia vám budú iba závidieť.

Modifikujeme Knoppix Live CD

Otvoríme disk v kompresii cloop

V prvom rade musíme extrahovať komprimovaný cloop disk z CD, ak nechcete začať celkom z gruntu. Ak máte nejaký virtuálny cloop disk, jeho dekompresie dosiahnete pomocou cloop utilít, ktoré - ak ich nemáte ešte v systéme - určite ľahko nájdete na webe (pod názvom cloop, napr. aj vo vyhľadávači RPM balíkov rpm.pbone.net).

Okrem riešenia dekompresie cloop disk pripojíte do adresára rovnakým spôsobom ako loop disk, hoci súbory odtiaľ aj tak musíte niekde prekopírovať, aby ste si mohli vytvoriť vlastnú distribúciu. Cloop disk dekomprimujete príkazom:

extract_compressed_fs knoppix > extracted-KNOPPIX

Nie je to však jediná cesta, lebo takýto disk môžete aj pripojiť ako virtuálny disk:

modprobe cloop file=/cesta_k_suboru
mount -o ro -t iso9660 /dev/cloop /mnt

Keby sa vám nepodarilo inštalovať korektne modul cloop, ktorý je súčasťou každej novšej verzie jadra, uvedieme ďalší spôsob, ako pripojiť takýto komprimovaný loop disk:

modprobe cloop
losetup /dev/cloop1 /cesta-k-súboru
mount /dev/cloop1 /mnt

Upravujeme cloop disk

Takýto disk na live CD distribúciách býva vytvorený väčšinou vždy vo formáte ISO9660, znamená to teda, že ho pripojíme iba na čítanie. Aby sme ho mohli modifikovať, musíme jeho obsah prekopírovať na iné miesto na pevnom disku.

Keďže budeme vytvárať vlastné live CD, resp. ho ideme modifikovať, nezabudnite pripojiť práve takéto originálne live CD a prekopírujte ho niekde do adresára, kde potom pôvodný súbor v cloop kompresii nahradíte tým modifikovaným. Všetko ostatné ostáva nedotknuté. Nezabúdajte, že CD Live Knoppix, ktoré ste stiahli z internetu a ktoré si prekopírujete na disk ako také, a obsah virtuálneho disku cloop, sú dve rozdielne veci.

Pre Linux sa odporúča deliť diskové oddiely; zistite si teda, kde máte najviac miesta. Väčšinou má, ak máte rozdelený disk, najväčšiu kapacitu adresár /usr, kde si spravte podadresár napr. s názvom KNOPPIX (/usr/KNOPPIX), kam prekopírujete celý obsah z adresára, kde je cloop obsah pripojený, teda virtuálny disk v kompresii cloop o objeme asi 1,9 GB dát. Preto najskôr, ak sa rozhodnete pridať kadečo do systému, odstráňte z neho balíky, ktoré nebudete potrebovať. A pravdaže - urobte si stratégiu! Závisí totiž od vás, či upravenú verziu Knoppix chcete napáliť na DVD, alebo vystačíte iba s CD.

Chroot alebo Linux v Linuxe

Bolo by príliš pracné odstraňovať alebo pridávať softvér len tak, že ho vymažete alebo skopírujete. Programy totiž často nie sú len v ceste /usr/bin, ale používajú aj knižnice, manuálové stránky či iné komponenty (inicializačné skripty v adresári /etc, systémové zvuky atď.), ktoré najlepšie i najrýchlejšie pridáte či odstránite len vtedy, ak sa systém v adresári bude tváriť tak, ako keby ste ho spustili z disku.

Systémy Unix pre tento účel používajú chroot (change root) - príkaz pre vytvorenie virtuálneho prostredia root, ktorým docielite, že sa skopírovaný root systém napr. z adresára /mnt do adresára /usr/KNOPPIX bude tváriť rovnako, ako keby ste ho spustili z pevného disku. Zadáte: chroot /usr/KNOPPIX .

Po zadaní vyššie uvedeného príkazu zistíte, že adresár /usr/KNOPPIX už v aktuálnej konzole prestal "existovať", pričom /usr/KNOPPIX používate zrazu ako koreňový adresár (/). Ak teda chcete využiť apt, RPM alebo iný softvér pre odstránenie/pridanie softvéru, systém sa zmení iba tu (fyzicky v adresári /usr/KNOPPIX), pričom váš pôvodný ostane nedotknutý.

X a chroot

V prípade inštalácie alebo deinštalácie programov môžete mať chuť spustiť X Window systém, pretože sa vám napríklad ľahšie pracuje v grafických oknách. Systém spustíte z tej istej konzoly, kde ste zadali príkaz chroot /usr/KNOPPIX, ale takto: startx -- :1 .

Nevadí, že vám beží už jedna inštancia X Window - aj tak sa dostanete do grafického prostredia X. Ale z dôvodu, že KNOPPIX pomocou rôznych skriptov automaticky nastavuje konfiguráciu pre X Window, dočasne teda pred zadaním vyššie uvedeného príkazu startx prekopírujte váš konfiguračný súbor xorg.conf z adresára /etc/X11 do adresára /usr/KNOPPIX/etc/X11 a po ukončení práce s X v prostredí chroot ho vymažte.

Účel grafického využitia systému v režime chroot nie je nutný, ale uľahčí prácu napr., ak ste zvyknutí používať aplikácie ako Synaptic Package Manager (Ubuntu Linux...), alebo inštalujete program, ktorý odmieta textový režim.

Pakujeme adresár a vytvárame CLOOP súbor

Finálny cloop súbor vytvoríme postupne, a to niekoľkými krokmi:

Z adresára, ktorý je de facto skopírovaný, rozbalený a zmenený obsah virtuálneho disku cloop, ktorý sme získali z originálnej live CD distribúcie, po finálnom rozhodnutí, či sme s jeho úpravou spokojní alebo nie, vytvoríme ISO9660 súbor. V našom prípade to bude z adresára /usr/KNOPPIX:

# vytvorte si ISO súbor z adresára /usr/KNOPPIX
mkisofs -R -U -V "MyKnoppix Filesystem" -hide-rr-moved -cache-inodes \\
-no-bak -pad -o /usr/MojeLoop.iso /usr/KNOPPIX

Vytvorený ISO súbor musí mať okolo 1,9 GB dát, ak ho chcete umiestniť na CD, a my ho musíme zapakovať, lebo sa nám tam nezmestí. Použijeme k tomu utilitu z cloop nástrojov - create_compressed_fs, pričom syntax bude:

cd /usr
create_compressed_fs MojeLoop.iso 65536 > knoppix

Proces kompresie môže trvať čas, i pol hodinu, všetko závisí od veľkosti dát či sile procesora alebo nárokov na operačnú pamäť. Do pôvodnej adresárovej hierarchie originálneho CD Knoppix, ktoré ste si prekopírovali niekde do adresára na pevnom disku, skopírujete teraz váš novovytvorený zapakovaný súbor, ktorý bude mať ten istý názov (knoppix).

Aby mohlo CD bootovať a aby vám slúžilo rovnako ako pôvodné CD Knoppix, musíte z neho vytvoriť globálne jeden ISO súbor, ktorý finálne napálite na CD:

mkisofs -pad -l -r -J -v -V "mojknoppix" -no-emul-boot \\
-boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin \\
-c boot/isolinux/boot.cat -hide-rr-moved -o /usr/MojeLiveCD.iso .

Bodka na samom konci nie je preklep, ale znamená, že ak príkaz spustíte v adresári /usr/KNOPPIX, čo doporučujeme, mkisofs vytvorí ISO súbor z celého jeho obsahu bez toho, že by ste museli zadávať cestu. Týmto sme sa dostali k záveru.

Niektoré tipy

Tipy pre prácu s loop diskmi - kryptografia

Ak si chcete vytvoriť zašifrovaný cloop disk, použijete k tomu nasledujúci postup.

  1. Najprv vytvoríte prázdny súbor za účelom použiť ho ako virtuálny disk:
  2. 	dd if=/dev/zero of=123M bs=1M count=123
    	

    Kde count=123 je počet MB, ktoré určíte pre veľkosť disku, a 123M je názov vytvoreného disku, ktorý môže byť ľubovolný. V tomto prípade vznikne súbor o veľkosti 123 MB.

  3. Vzniknutý súbor nakonfigurujete pre kryptografický algoritmus Blowfish, t. j. zadáte príkaz (aktivujete potrebné moduly):
  4. 	modprobe blowfish
    	modprobe cryptoloop
    	

    Potom ho nalinkujete na zariadenie /dev/loop0 ako loop disk:

    	losetup -e blowfish /dev/loop0 /123M
    	

    Hneď po uvedení tohto príkazu budete vyzvaní (Password:) zadať heslo, ktoré by malo mať 20 znakov a viac. Virtuálny disk naformátujete: mkfs -t ext2 /dev/loop0 a potom pripojíte: mount /dev/loop0 /mnt. Prácu s virtuálnym diskom ukončíte:

    	umount /dev/loop0
    	losetup -d /dev/loop0
    	

Obyčajné loop/cloop disky

Príkazom losetup -d /dev/cloop1 deaktivujete predchádzajúcu konfiguráciu virtuálneho disku v cloop kompresii. Výhodou používania losetup je flexibilnejšia možnosť pripojiť viac takýchto virtuálnych diskov a pracovať s nimi. Ak si vytvárate vlastný virtuálny disk:

  1. Vytvorenie prázdneho virtuálneho súboru
  2. Tu sme si zvolili veľkosť 600 MB a príkaz:

    	if=/dev/zero of=/usr/cloop/MOJDISK bs=1024 count=600000
    	
  3. Na virtuálny disk umiestnime súborový systém:
  4. 	mke2fs -b 2048 /usr/cloop/MOJDISK
    	
  5. Teraz ho pripojíme ako loop zariadenie:
  6. 	mount /usr/cloop/MOJDISK /mnt2 -o loop
    	
  7. Do adresára /mnt2, kde je pripojený loop disk, prekopírujeme hocičo, aj systém.
  8. Loop disk odpojíme a komprimujeme pomocou utilít pre kompresiu cloop:
  9. 	umount /mnt2
    	cd /usr/cloop
    	create_compressed_fs MOJDISK 65536 > MojeCloop
    	

Orientačný tip pre vytvorenie multiboot CD/DVD

Ak máte viac zaujímavých distribúcií a chcete ich umiestniť na DVD, alebo máte menšie distribúcie a vystačíte s CD, existuje možnosť editovať konfiguračný skript isolinux.cfg v akomkoľvek textovom editore a na CD/DVD dostanete viac ISO distribúcií, čo sa vám môže ukázať pri rôznych konfiguráciách praktické.

Pre vytvorenie viacnásobnej konfigurácie s bootovaním viacerých distribúcií vystačíte s troma základnými krokmi; treba však uviesť, že najjednoduchšie je to riešiť s live CD distribúciami:

  1. Vytvorte si prázdny adresár, kam prekopírujete obsah ISO súborov viacerých live CD distribúcií. Pozor: Nie ISO súbory, ale ich OBSAH. Ak máte klony Knoppix systému, tu treba upraviť aj RAMFS súbor (mini root). V adresári, kam sa chystáte kopírovať distribúcie Linuxu, si vytvorte podadresár isolinux (napr. /mojedvd/isolinux) a neprepíšte jadro - ak máte dva rovnaké názvy pre jadro alebo miniroot, premenujte ich.
  2. Editáciou konfiguračného súboru isolinux.cfg pridáte viac distribúcií napr. takto, čím získate multiboot DVD s live CD distribúciou Beatrix a Knoppix súčasne:
  3. 	LABEL Beatrix
    	KERNEL linux26
    	APPEND ramdisk_size=100000 init=/etc/init lang=us \\
    	apm=power-off noscsi vga=0x317 initrd=minirt26.gz nomce BOOT_IMAGE=beatrix 
    	LABEL Knoppix
    	KERNEL vmlinuz
    	APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off noscsi \\
    	vga=0x317 splash=silent initrd=minirt26.gz nomce BOOT_IMAGE=knoppix 
    	
  4. Keďže mnohé live CD distribúcie používajú rovnaké názvy, napr. klony Knoppixu majú tiež adresár /KNOPPIX, hoci sú obsahovo od pôvodnej distribúcie Knoppix vzdialené, treba modifikovať miniroot, čo je maličký súbor s príponou GZ, ktorý obsahuje inicializačný skript linuxrc, pomocou ktorého systém vie, kde sú uložené súbory potrebné pre spustenie systému. Urobíte:
  5. 	gunzip minirt.gz
    	mount minirt /mnt3 -o loop
    	

    V adresári /mnt3 otvoríte súbor linuxrc v textovom editore a vyhľadáte riadok KNOPPIX_DIR alebo _DIR, ak používate inú distribúciu:

    	KNOPPIX_DIR="KNOPPIX"
    	

    Zameňte názov v úvodzovkách za iný názov. Po editácii skriptu linuxrc treba odpojiť minirt súbor (v našom prípade z adresára /mnt3) a zapakovať ho: gzip minirt .

    Každý svoj finálny ISO súbor si môžete odskúšať v emulátoroch ako Qemu alebo Bochs.

    A ak ste prišli do styku s dvoma rovnakými názvami s iným obsahom (KNOPPIX/knoppix), čo je zapríčinené hlavne popularitou Knoppixu a jeho klonmi, nezabudnite virtuálne disky v kompresii cloop premenovať, napr. KNOPPIX/prvy_knoppix, KNOPPIX/druhy_knoppix a adekvátne upraviť súbor linuxrc.

Diskuze (0) Nahoru