LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Linux v příkazech - vypalování CD/DVD

Vytvoření ISO obrazu, kontrola a následné vypálení na CD nebo DVD a to vše pouze za použití příkazové řádky. Tvorba multisession CD/DVD.

20.2.2006 06:00 | o.k. | Články autora | přečteno 32801×

Vypalování CD/DVD patří dlouhou dobu neodmyslitelně k úkonům, které v Linuxu potřebuje uživatel čas od času provádět. Většina uživatelů se uchyluje ke grafickým nadstavbám, kde si jednoduše a bezmyšlenkovitě přesune soubory z jednoho okna do druhého a stiskne tlačítko pro vypalování. Samozřejmě i takto lze vypalovat, ale tento uživatel se potom dostane do úzkých, když musí data vypálit na Linuxu bez grafického prostředí nebo na dálku provést zálohování dat na vzdáleném serveru jejich vypálením na CD/DVD.

Tento díl seriálu o Linuxu v příkazech by měl posloužit jako návod jak v příkazové řádce vypalovat.

Vytvoření ISO souboru pro vypalování

Než začneme samotné vypalování, tak si musíme připravit zdroj dat, která chceme vypálit a vytvořit z něj tzv. ISO image (ISO obraz chcete-li). Ano, v podobě ISO obrazů se na Internetu také distribuuje většina distribucí.

Pokud chceme zkopírovat CD (nebo DVD) na kterém již nějaká ta volně stažitelná distribuce je, tak to můžeme provést jednoduše tímto příkazem:

dd if=/dev/hdd of=distribuce.iso

První parametr příkazu dd, který slouží k blokovému kopírování dat udává blokové zařízení ze kterého budeme data kopírovat. Tedy zařízení mechaniky CD/DVD-ROM. Pro připomenutí uvádím, že hda je primární master, hdb primární slave, hdc sekundární master a hdd sekundární slave zařízení na IDE kanálu. Druhý parametr udává umístění našich kopírovaných dat. Pozor na správnost parametrů při používání příkazu dd. Při chybné specifikaci vstupů a výstupů dokáže být program dd více než destruktivní a během pár vteřin tak můžete přijít o svá data. Výše uvedeným příkazem jsme vytvořili ISO image CD, které již můžeme přímo vypálit, čímž dosáhneme identické kopie původního CD - tedy jeho klon.

Pro kopírování/klonování CD lze také s výhodou použít program readcd, který má navíc některé další užitečné funkce. Umožňuje například snížit rychlost čtení dat z CD (nebo DVD), což se dá využít v případě starého a poškrábaného CD (nebo DVD). Program readcd lze také využít pro vypalování, použijeme-li volbu -w.

readcd speed=2 dev=/dev/hdd f=distribuce.iso

Pro ty co nechtějí používat příkaz dd nebo readcd zde uvádím ještě další alternativu:

cat /dev/hdd > distribuce.iso

Pokud nechceme vytvářet identické kopie CD/DVD disků, ale pouze chceme vypálit nějaká data musíme sáhnout po programu mkisofs, který slouží k vytváření ISO obrazu souborového systému. Základní vysvětlení tohoto příkazu provedu na jednoduchém příkladu:

mkisofs -o backup.iso /var/log/

Tímto jsme vytvořili ISO obraz s názvem backup.iso, jehož obsahem jsou soubory a adresáře nacházející se v adresáři /var/log. Po vypálení bude toto CD čitelné úplně ve všech systémech (Linux/Unix, Windows, Mac), ale s tím omezením, že názvy souborů a adresářů budou ve starém DOSovém formátu 8+3. Abychom zachovali původní délky názvů (a případně další atributy), tak musíme ke klasickému formátu ISO 9660 přidat rozšíření. Pro Linux/Unix to bude RockRidge (parametr -R), pro Windows Joliet (parametr -J) a pro Mac HFS. Tato rozšíření se dají mixovat, protože neexistuje jediné univerzální rozšíření, které by zachovávalo ve všech těchto systémech délku souborů a případně další atributy. Takže ISO obraz pro systém Linux/Unix a Windows s plnou délkou souborů by se vytvořil následujícím způsobem:

mkisofs -R -J -o backup.iso /var/log

Pokud budeme chtít nastavit automaticky všechna práva na souborech a adresářích tak, aby tyto byly čitelné pro normální uživatele tak přidáme ještě parametr -r. Volba -r je prakticky stejná jako -R s tím rozdílem, že při použití volby -r se nastaví UID a GID všech souborů a adresářů na 0 a všechny bity (pro vlastníka, skupinu a ostatní) u souborů a adresářů jsou nastaveny pro čtení. Pokud mají soubory nastaven nějaký bit pro spuštění, tak se pro spuštění nastaví i ostatní bity (pro vlastníka, skupinu a ostatní). To stejné platí i pro adresáře. Všechny bity pro zápis (a další speciální bity) jsou smazány, protože na CD/DVD nemají smysl.

Příkaz mkisofs má spoustu dalších voleb, jejichž popis by vydal na samostatný článek. Já zde uvedu pouze pár příkladů konfiguračních voleb s jednoduchým komentářem, které se v praxi často používají. Další možnosti programu mkisofs naleznete v nápovědě k příkazu, manuálové stránce nebo se můžete zeptat v diskuzi.

mkisofs -J -R -f -V "backup_etc050425" -o backup_etc.iso /etc

Vytvoření ISO obrazu (s rozšířením Rock Ridge a Joliet) adresáře /etc včetně symbolických linků (jejich obsahem bude soubor/adresář na který odkazují). CD bude mít název backup_etc050425 a výsledný ISO soubor se bude jmenovat backup_etc.iso.

Občas se vám stane, že potřebujete do výsledného ISO souboru vložit více adresářů, které jsou rozmístěné různě po souborovém systému. Jednou z možností, která každého jistě ihned napadne je vytvoření symbolických linků a použití volby -f. Další a systémovější variantou je použití volby -graft-points příkazu mkisofs. Ukážeme si na příkladu kdy budeme chtít zazálohovat adresář /etc, /var a /home.

mkisofs -J -R -o backup_etc_var_home050425.iso \ 
-graft-points etc=/etc var=/var home=/home

Poznámka: pokud byste nepoužili volbu -graft-points, tak budete mít všechny soubory a podadresáře z daných adresářů přímo v kořenovém adresáři na CD.

Uložení Linuxového filesystému na CD

Vytvoření souborového systému na CD je snadné, nezapomeňte však na to, že toto CD bude čitelné pouze v Linuxu, ostatní operační systémy s ním nebudou umět pracovat (pokud nebudou mít podporu daného souborového systému). Nejprve si vytvoříme soubor o příslušné velikosti a potom do něj nakopírujeme zvolená data. K vytvoření souboru nám poslouží již dříve zmiňovaný program dd.

dd if=/dev/zero of=filesystem.iso bs=1024k count=700

Teď již můžeme v tomto souboru vytvořit libovolný filesystém a to následovně:

mkfs.ext2 -b 2048 filesystem.iso

Varování o tom, že daný soubor není speciální blokové zařízení můžeme ignorovat. Takto vyvořený soubor s filesystémem následně připojíme do systému příkazem mount (pokud to nemáme povoleno v /etc/fstab - což asi nemáme, tak to musíme připojit jako root).

mount filesystem.iso /mnt -o loop

Do takto připojeného souborového systému už můžeme nakopírovat cokoliv, jsme limitováni pouze velikostí, která je v našem případě ~700MB. Posledním krokem je samotné vypálení takto vytvořeného systému a to si ukážeme níže.

Vytvoření bootovacího CD

Vytvoření bootovacího CD/DVD je jednoduché - stačí programu mkisofs předhodit zaváděcí program - v našem případě to je soubor isolinux.bin. Následující příklad demonstruje jak se vytváří bootovací ISO image pro distribuci Slackware current.

mkisofs -hide-rr-moved \
        -v -d -no-emul-boot -boot-load-size 4 -boot-info-table \
        -sort isolinux/iso.sort \
        -b isolinux/isolinux.bin \
        -c isolinux/isolinux.boot \
        -A "Slackware Current DVD" \
        -publisher "www.linuxsoft.cz" -o slackware.iso ./

Jednotlivé parametry výše uvedené ukázky pro vytvoření bootovacího ISO obrazu zde uvádět nebudu, protože jsou velice dobře popsané v manuálových stránkách.

Kontrola ISO souboru

Ještě před samotným vypalováním je dobré si ISO soubor zkontrolovat. V Linuxu to lze jednoduše tak, že jej připojíme přes zpětnovazební smyčku (loopback) a to následujícím způsobem.

mount backup.iso /mnt/hd -o loop

Toto mountování můžete provádět pouze jako uživatel root. Můžete si to ale vhodně nastavit v souboru /etc/fstab a pak si ISO image přes loopback mountovat i jako obyčejný uživatel.

Po namountování už vám nic nebrání v tom udělat si zběžnou kontrolu adresářů a souborů nebo důkladnou kontrolu pomocí programu md5sum.

Další zběžnou kontrolu můžeme provést pomocí programu isoinfo.

isoinfo -d -i backup.iso

Vypalování CD

Detekce vypalovacího zařízení

Ještě před samotným vypalováním musíme provést detekci našeho vypalovacího zařízení přes které budeme následně vypalovat. Toto se provádí, stejně tak jako samotné vypalování, pomocí programu cdrecord.

cdrecord -scanbus

scsidev: 'ATA'
devname: 'ATA'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.

scsibus1:
        1,0,0   100) 'PLEXTOR ' 'DVDR   PX-740A  ' '1.01' Removable CD-ROM
        1,1,0   101) 'SONY    ' 'CD-RW  CRX300E  ' 'KYS2' Removable CD-ROM
        1,2,0   102) *
        1,3,0   103) *
        1,4,0   104) *
        1,5,0   105) *
        1,6,0   106) *
        1,7,0   107) *

Vypalování CD bude potom vypadat následovně:

cdrecord dev=ATA:1,0,0 -v -eject speed=24 driveropts=burnfree backup.iso

Pozor na to, že v některých distribucích Linuxu můžete některé parametry (například výše uvedený driveropts=burnfree) nastavit pouze pod rootem.

Vypálení CD bez ukládání ISO image na disk.

mkisofs -R /etc | cdrecord -v speed=4 dev=1,0,0 -

Pokud pouze chcete otestovat vypalovací proces s vypnutým laserem, tak použijte parametr -dummy.

cdrecord dev=ATA:1,0,0 -v -eject -gracetime=2 speed=24 driveropts=burnfree -dummy backup.iso

Pozor, i na tento test vypalování budete potřebovat prázdné médium v mechanice.

Klonování CD

Pokud máte dvě mechaniky, tak určitě zatoužíte po přímém kopírování CD bez nutnosti ukládání dat na disk. I toto samozřejmě lze - například následujícím způsobem:

cdrecord -v dev=ATA:1,0,0 speed=4 driveropts=burnfree -isosize /dev/hdc

Multisession CD

Vytváření "multisession" CD je stejné jako vytváření normálních CD akorát nesmíme zapomenout přidat při vypalování daných sekcí (pokud se nejedná již o poslední sekci) parametr -multi (a případně přidat parametr -tao), který programu cdrecord řekne, aby neuzavíral CD.

První sekci vytvoříme tedy tímto způsobem:

cdrecord dev=ATA:1,0,0 -v -eject -gracetime=2 speed=24 driveropts=burnfree -multi backup.iso

Pro vytvoření další sekce potřebujeme z CD získat informace o tom, kde první sekce začíná a kde končí a to provedeme následovně:

cdrecord dev=ATA:1,0,0 -msinfo
0,13066

Vytvoříme ISO obraz další sekce:

mkisofs -J -R -V "DruhaSekce" -o backup2.iso -C 0,13066 -M /dev/hdc /var

Pokud nepoužijete parametr -M /dev/hdc (či -M ATA:1,0,0) tak budou data rozdělena na více sekcí (používá se například pro uchování audio dat v první sekci a normálních dat v druhé). Takto vytvořený obraz opět vypálíme:

cdrecord dev=ATA:1,0,0 -v -eject -gracetime=2 speed=24 driveropts=burnfree -multi backup2.iso

Další postup se opakuje. Při vypalování poslední sekce vynecháme parametr -multi, aby došlo k uzavření CD.

Mazání přepisovatelných CD

Mazání přepisovatelných CD je jednoduché o čemž svědčí i následující příklad:

cdrecord blank=all

který provede úplné smazání CD. K dispozici je samozřejmě řada jiných způsobů mazání. Možnosti zjistíte následujícím způsobem:

cdrecord blank=help

Parametry pro cdrecord

Pokud vám připadá zdlouhavé psát pořád stejné parametry u příkazu cdrecord, tak si samozřejmě některé parametry můžete uložit do konfiguračního souboru, který se nachází (pokud ne, tak si jej vytvořte) v souboru /etc/cdrecord.conf (dříve byl v souboru /etc/default/cdrecord.conf).

Vypalování DVD

Pro vypalování DVD se používá především program growisofs nebo cdrecord s nadstavbou pro DVD. Vypalování pomocí programu cdrecord zde již nebudu uvádět, protože je obdobné vypalování CD, které jsme si uvedli výše a pozorný čtenář si jistě dokáže upravit případné parametry, navíc vyžaduje přítomnost nadstavby pro vypalování DVD v programu cdrecord.

Program growisofs je velice jednoduchý a má pouze pár parametrů. Pojďme tedy vyrobit nějaké DVD. Nejprve vypálením již předpřipraveného obrazu, který můžeme vyrobit úplně stejným způsobem jako CD. Pokud chcete na DVD ukládat větší soubory (o velikosti 1GB a více), tak doporučuji použít nativní UDF filesystém, který toto podporuje.

growisofs -speed=4 -Z /dev/hda=backup.iso

Vypálení s vytvořením ISO filesystému "on-the-fly" bude vypadat následovně

growisofs -Z /dev/hda -J -R -graft-points etc=/etc var=/var home=/home

Je to triviální - pouze programu growisofs předhodíme parametry programu mkisofs, který se zavolá jako první a vygenerované ISO se předhodí pomocí interního programu dd programu growisofs.

Multisession DVD

Vypalování "multisession" DVD je jednodušší než vypalování CD, protože growisofs je prakticky frontend pro mkisofs. Stačí místo parametru -Z příkazu growisofs použít pro další sekce parametr -M, jak dokládá i následující příklad:

growisofs -speed=4 -Z /dev/hda -J -R -hide-rr-moved -graft-points etc=/etc
growisofs -speed=4 -M /dev/hda -J -R -hide-rr-moved -graft-points var=/var

Mazání přepisovatelných DVD

Program growisofs obvykle automaticky provede smazání. Program pro mazání je součástí balíku dvd+rw-tools, konkrétně se jedná o program dvd+rw-format.

Tipy na závěr

Určitě z vás občas někdo narazil na problém moderních mechanik, které se snaží číst média příliš rychle i v případě, kdy je to zbytečné - například při přehrávání hudebního CD. Popíšu zde způsoby jak je možné snížit rychlost čtení mechaniky.

eject -x 4 /dev/hdc
hdparm -E 4 /dev/hdc

Když už jsem nakousnul příkaz eject, tak bych měl zmínit i jeho opačnou funkci (tedy zasunutí mechaniky) a to pomocí:

eject -t

Zasunutí mechaniky se také provede automaticky při použití příkazů mount, dd a dalších.

Pokud zálohujete data a chcete se ve vašich zálohách vyznat i v budoucnu, tak si najděte čas i na kvalitní popisky samotných médií a také vytvoření čitelného obalu daného média. Skvělým pomocníkem na vytváření obalů je program cdlabelgen

I přes poměrně značnou délku článku se spousta věcí do tohoto dílu o Linuxu v příkazech již nevešla. Další parametry a možnosti výše zmíněných programů naleznete v manuálových stránkách jednotlivých programů. Protože jsem postihnul pouze vypalování dat a úplně jsem vynechal možnosti vypalování audio CD a video DVD, tak toto mohu v případě většího zájmu napravit v samostatném článku, který by se této problematice věnoval.

Další zdroje

Verze pro tisk

pridej.cz

 

DISKUZE

Vytvareni velkych souboru 20.2.2006 21:28 Aleš Hakl
L Re: Vytvareni velkych souboru 21.2.2006 09:11 o.k.
dalsi doplneni tematu 26.2.2006 10:48 Petr Bartel
mount loop non root 8.6.2006 01:52 Jakub Vysoky
  L Re: mount loop non root 8.6.2006 10:20 o.k.




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

14.11.2017 16:56 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tradičně první čtvrtek před třetím pátkem v měsíci: 16. listopadu od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.11.2017 11:06 /Redakce Linuxsoft.cz
PR: 4. ročník odborné IT konference na téma Datová centra pro business proběhne již ve čtvrtek 23. listopadu 2017 v konferenčním centru Vavruška, v paláci Charitas, Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00. Konference o návrhu, budování, správě a efektivním využívání datových center nabídne odpovědi na aktuální a často řešené otázky, např Jaké jsou aktuální trendy v oblasti datových center a jak je využít pro vlastní prospěch? Jak zajistit pro firmu či jinou organizaci odpovídající služby datových center? Podle jakých kritérií vybrat dodavatele služeb? Jak volit součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně spravovat datové centrum? Jak eliminovat možná rizika? apod.
Přidat komentář

13.9.2017 8:00 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt – tentokrát netradičně v pondělí: 18. září od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

3.9.2017 20:45 /Redakce Linuxsoft.cz
PR: Dne 21. září 2017 proběhne v Praze konference "Mobilní řešení pro business". Hlavní tématy konference budou: nejnovější trendy v oblasti mobilních řešení pro firmy, efektivní využití mobilních zařízení, bezpečnostní rizika a řešení pro jejich omezení, správa mobilních zařízení ve firmách a další.
Přidat komentář

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

5.12.2017 11:50 / Thomas
kitchen renovations

18.9.2017 14:37 / Rojas
high security vault

15.9.2017 7:33 / Wilson
new zealand childcare jobs

31.8.2017 12:11 / Jaromir Obr
Re: ukůládání dat ze souboru

30.7.2017 11:12 / Jaromir Obr
Národní znaky

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze