Když chceme v Linuxu vypalovat a nemáme data v nějakém konzistentním formátu již připravena, musíme vytvořit takzvaný ISO obraz CD. Jedná se o jeden soubor, ve kterém máme veškerá data a celou strukturu budoucího CD. K výrobě tohoto ISO souboru slouží program mkisofs, který je součástí cdrtools. Tento balík je součástí snad všech myslitelných distribucí. Jestliže jej ve vaší distribuci přesto nemáte, navštivte stránku autora.
Jak tedy takove ISO CD vytvoříme? Postup je vážně jednoduchý a zvládne jej každé děcko:
mkisofs -r -o nazev_souboru.iso adresar_k_paleni/
Tímto vytvoříme ISO obraz daného adresáře ve formátu RockRidge extensions – soubory s dlouhými názvy budou viditelné s dlouhými názvy, v systémech, které toto nepodporují, uvidíme názvy klasicky jako 8.3 znakové soubory pod DOSem. Tento formát bohužel naše oblíbené Windows neznají, trochu jim tedy pomůžeme:
mkisofs -r -J -o nazev_souboru.iso adresar_k_paleni/
Tímto příkazem vyrobíme soubor s rozšířením Joliet, které Windows již umějí číst bez problému a dlouhé názvy souborů jim nebudou činit obtíže. Abychom mohli číst Joliet a samozřejmě i jiné typy CD pod Linuxem, musíme mít podporu zakompilovanou v jádře Linuxu. To má v dnešní době prakticky jakákoliv distribuce, jestliže se dostanete k nějakému stroji, kde toto není, budete muset kompilovat jádro. Joliet se totiž kompiluje natvrdo do jádra:
Sekce File systems:
<*> ISO 9660 CDROM file system support
[*] Microsoft Joliet CDROM extensions
[*] Transparent decompression extension
Každý systém pro CD, o kterém se zde budeme bavit, musíte mít samozřejmě v jádře povolený, vše najdete v té samé sekci.
Dalším známým formátem, tentokrát pro Macintosh, je HFS – ten se vypaluje s parametrem -hfs namísto parametru -J. Jestliže chcete vaše CD mít bootovatelné, použijte parametr -b a za ním cestu k boot médiu. To má být velikosti diskety 1.2,1.44 nebo 2.88. Další možností je -b sloučit s příkazem dd a stáhnout si vlastní image bootsektoru.
Občas chce mít ale majitel Linuxu možnost krást firemní data a nechce, aby, kdyby mu CD zabavili, si šéf mohl zjistit, co z firmy vynáší, a on mohl říkat, že jsou to jen poškozená CD, co si nese domu pověsit pro parádu na zeď. To vyrešíme tak, že vypálíme CD v nějakém filesystému, který Wokna neznají. Zvolme třeba EXT2. Upozorňuji, že toto není návod na kradení citlivých informací z firmy :-)).
dd if=/dev/zero of="kradu_jako_straka.iso" bs=1024k count=700;mkfs.ext2 kradu_jako_straka.iso
Tento krásný řádek nám vyrobí 700 megabajtů veliký soubor se systémem EXT2 (na co žurnál, když nebudeme nikdy dále zapisovat). Nyní tento soubor naplníme daty. Abychom toto mohli provést, musíme soubor přimountovat do našeho adresářového stromu – ano, i toto Linux umí. Připojit jakýkoliv soubor do adresářové struktury, vyeditovat a poté odpojit. Jak na to? Znovu jednoduše:
mount -t ext2 -o loop kradu_jako_straka.iso /mnt/kradu/
V případě, že připojujete klasickou ISO image, vynechte parametr -t, specifikující použitý filesystem. Nyní můžeme na naše budoucí CD naházet veškerá citlivá data, ke kterým máme přístup, odpojit příkazem umount /mnt/kradu/
a následně vypálit třeba takto:
cdrecord -eject -fix -v dev=0,0,0 speed=24 -driveropts=burnproof -data kradu_jako_straka.iso
Více o rozchození vypalování v Linuxu jsme si pověděli v minulém dílu.
Další věcí, která nás při vypalování může postihnout, je vypalování hudby. Toto je jedna z nejtěžších věcí vůbec. Já sám raději hudební CD pálím metodou CD-ON-FLY pod Windows a Nero. Ještě nikdy se mi nepovedlo CD vypálit tak, aby mi jej po vložení do mechaniky našly servery poskytující obsah názvů stop na CD. Pro ty, kteří by to rádi zkusili – postupujte následovně a snad budete mít více štěstí.
Hudbu stáhneme z CD do formátu wav, au, cdr (jak je libo) programem cdparanoia a následně vypálíme
cdrecord -v -audio *.wav *.au *.cdr
Mix audio a datového CD vyrobíte jednoduše
cdrecord -v -audio trackXYZ.wav -data data_k_vypaleni.iso
Jestliže máte hudební CD, které mezi skladbami neobsahuje mezery, použijte pálení metodou DAO – disk najednou, narozdíl od obvyklé metody TAO – stopa najednou. Já jsem zkoušel nástroj cdrdao s parametrem read-cd pro vytvoření identického CD, ale nebyl jsem úspěšný – vyrobené CD obsahovalo všechny skladby, ale server s názvy stop již nebyl schopen CD v databázi najít. Zde je prostor pro diskusi pod článkem, milý čtenáři.
Ještě malá poznámka na závěr. Týká se datových CD. Jestliže chcete vyrobit kopii třeba celého diskového oddílu, použijte příkaz
dd if=/dev/hdaX of=/tmp/image_disku_hdaX.iso
a tuto image následně vypalte.
Snad jsem zodpověděl veškeré dotazy, co byly pod minulým článkem, a příště doufejme dojde na dotazy čtenářů. Těch moc nebylo, proto znovu žádám, ptejte se na mém e-mailu a budete vyslyšeni :-).