Vypalování pod Linuxem II - díl 4.
Kapitoly článků
Stejně jako Juraj Remenec v předchozím díle, i tentokrát vás musím upozornit, že se stále ještě budeme věnovat klasickému přístupu k pálení pod Linuxem pomocí nástrojů pracujících na příkazové řádce. Velké množství imperativů typu "musíte", "nesmíte", "nelze" a podobně bude v dalším pokračování, které se bude věnovat grafickým nástavbám, vyvráceno nebo alespoň zmírněno.
Multisession
Vypalování CD jako multisession nám umožňuje zaplňovat kapacitu prázdného média postupně. Není tedy nutné najednou shromažďovat takový objem dat, který zaplní celé CD, a nebo se spokojovat s nevyužitým prostorem, který by vyšel nazmar. CD můžeme vypálit naněkolikrát, přičemž veškerá data budou v mezičase stále k dispozici. Tento způsob, ač zcela jistě efektivnější než vytváření zpola zaplněných disků, má dva mínusy.
- Každá další vypalovací "session" ukrojí z dostupného prostoru na CD o něco více, než je skutečná velikost zaznamenávaných dat. Důvodem je nutnost vícenásobné přítomnosti tzv. lead-in a lead-out míst. Jsou to oblasti na disku, do kterých jsou při dokončení zápisu každé session uloženy informace o počtu stop, kde začínají a o celkové velikosti datového úseku (neboli TOC - Table Of Contents). U první přidané session zabírají tyto údaje 11250 sektorů (22,8 MB nebo 2,5 minut), což je 1 minuta na lead-in a 1,5 minuty na lead-out. U každé další session již stačí na na lead-out jen 0,5 minuty. K tomu je ještě třeba pokaždé přičíst minimálně 150 sektorů na pre-gap před každou další session. Pre-gap je mezera oddělující stopy (i na ne-multisession CD), která většinou bývá dlouhá 2 nebo 3 vteřiny.
- Není možné připravit si dopředu image soubor, který by měl na nějakém cizím "načatém" multisession CD představovat další session. Aby byly po vypálení další session přístupné i ty předchozí, je třeba vytvořit image na základě informací získaných z daného načatého CD. Není to sice moc velké omezení, ale je třeba s ním počítat.
Dále je třeba pamatovat na to, že ačkoliv většina vypalovaček dnes multisession podporuje, ke správnému přečtení je nutné, aby tento formát podporovala i mechanika, na které bude CD čteno. U počítačových CD-ROM, jež nejsou starší než 3-4 roky, by opět neměl být problém. Ale vypálíte-li tímto způsobem audio CD, počítejte s tím, že naprostá většina stolních CD přehrávačů "uvidí" pouze první vypálenou relaci.
Připočteme-li ke zmíněným dvěma věcem fakt, že prázdná CD jsou již dnes opravdu nehorázně levná, je na místě otázka, zda vůbec má cenu se tímto problémem zabývat. Po pravdě řečeno, myslím, že nemá. Tento návod by se však sotva dal považovat za úplný, kdyby v něm tyto informace chyběly. Pojďme se tedy prokousat vytvořením multisession CD pomocí mkisofs a cdrecordu.
Předně je nezbytné už při vypalování úvodní relace cdrecordu říci, že hodláme někdy později ještě pokračovat. K tomu slouží parametr -multi. Tento parametr také automaticky nastaví druh stopy na "CD-ROM XA2" (viz první díl seriálu). Příkaz pro vypálení první session tedy může vypadat třeba takto:
cdrecord -v speed=10 dev=0,0,0 -eject -multi prvni.iso
Na tomto místě ještě musím zmínit, že při vytváření image souborů pro multisession disky, je nutné začlenit RockRidge rozšíření (přepínač -r). Pokračovat ve vypalování multisession disku, který obsahuje pouze Joliet, není možné.
Další image soubor už musí být ušit na míru načatému CD. Necháme tedy cdrecord zjistit, jak to na disku vypadá, abychom podle toho mohli instruovat mkisofs, že druhý image soubor bude na CD umístěn jinde než na začátku. S diskem v mechanice proveďte:
cdrecord -msinfo dev=0,0,0
Výstupem budou dvě čísla, která odpovídají prvnímu sektoru poslední relace na CD (v našem případě by to měla být 0, protože se jedná o první session) a prvnímu volnému sektoru, na který lze zapisovat. Toto druhé číslo by se mělo rovnat počtu zapsaných sektorů z prvního vypalování (viz výpis cdrecordu) plus 11400 (11250 lead-in a lead-out + 150 pre-gap).
Připravíme image soubor pro zápis druhé session. Programu mkisofs musíme říci, kde hledat původní session, na kterou se má navazovat, a zároveň její přesné umístění, jež nám před chvílí prozradil cdrecord. Použijeme pro ten účel parametry -M (cesta k předchozí session) a
-C (parametry cdrecordu):
mkisofs -r -J -l -C hodnota,hodnota -M zařízení -o druha.iso adresar
Pokud je na CD zatím jen jedna session, můžeme využít toho, že ještě máme její původní image soubor, a parametru -M prvni.iso.
Vězte také, že takto vytvořený image soubor nelze zkontrolovat namountováním pomocí loopbacku, jak to popisoval minulý díl seriálu. Důvodem je právě ona úprava pro zápis jinam než na počátek disku. Pokud byste chtěli docílit možnosti připojit na zkoušku tento soubor coby loopback zařízení, bylo by nutné znovu jej vytvořit jinak. Parametr -C by měl hodnotu
-C číslo,0, přičemž
číslo by bylo první numero vrácené cdrecordem při spuštění s parametrem
-msinfo. V našem příkladu by to bylo:
-C 0,0.
A jdeme vypálit druhou session. Příkaz bude - až na název souboru - totožný s vypalováním 1. relace:
cdrecord -v dev=0,0,0 -eject -multi druha.iso
Tímto způsobem můžeme pokračovat dokud bude na disku místo...
CD Extra/CD Plus
CD Extra a CD Plus jsou dva názvy pro stejnou věc. Jedná se o multisession disk, který má první relaci audio a druhou datovou. Původně byla tato CD nazývána E-CD (Enhanced CD), což byla takzvaná "stamped multisession" (lisovaná). Využívalo se jich v době vzrůstající popularity počítačových CD-ROM mechanik jako vylepšení komerčních zvukových kompaktních disků. Formát CD Extra nám dává možnost si podobnou věc udělat i doma. Hlavním rozdílem a předností oproti mixed mode diskům (audio i datové stopy v jedné session) je především větší kompatibilita se stolními CD přehrávači. Druhou, datovou session totiž tyto přístroje vůbec nevidí, a proto se nemůže stát, že by došlo třeba k
poškození reproduktorů při pokusu o "přehrání" datové stopy.
Postup bude téměř stejný jako u obyčejného multisession CD. Nejprve vypálit audio stopy (je možné použít TAO i DAO) s parametrem -multi,
vytvořit speciální multisession image pro druhou, datovou session a vypálit opět s parametrem -multi:
cdrecord dev=0,0,0 -v -eject -dao -multi -audio audio_soubor1 audio_soubor2
cdrecord -msinfo dev=0,0,0
mkisofs -r -J -l -C 0,?????? -M zařízení -o data.iso adresar
cdrecord dev=0,0,0 -v -eject -multi data.iso