NOVINKY:

30. dubna 2009 (09:00)
Vyšla jarní verze distribuce Mandriva Linux 2009.1. Nově nasazené graficke prostředí KDE 4 je na rozdíl od předchozí verze mnohem dál, posunulo se od hezkého experimentu k plně použitelnému systému. Česká knižní edice k této verzi nebude, takže nezbývá, než stahovat a s problémy se obrátit na fórum.
[Všechny informace v češtině] [Představení hlavních novinek] [Poznámky k vydání]
[Download] [Errata] [Errata česky]

další novinky >>

Novinky jinde:
Root | Abclinuxu | Linuxsoft

Vyhledávání:

 


Proč používat Linux  Wikipedie - největší otevřená encyklopedie na internetu v češtině.
 MENU: Články a návody | Jak na to | Překlady | Odkazy | Obrázky z Linuxu  | Download |

ABY NÁM TO PÁLILO

Počítač bez vypalovačky jako by nebyl. O tom asi nikdo nepochybuje. Obyčejná mechanika stojí míň než tisícovku a obstarat si celkem kvalitní média v ceně nižší než 10 korun českých taky není problém. Nehledě na to, že v poslední době se dost rozmáhají DVD palírny. Jaká to bude krása, až budu na jedno DVDčko vypalovat třeba 6 filmů zkomprimovaných Xvidem...

V tomto článku naznačím cestu, která podle mého názoru nejen, že vede k cíli, kterým jsou dobře vypálená CDčka, ale vede k němu rychle a spolehlivě. Podíváme se jak využít grafická klikátka, ale také efektivní scripty v konzoli a nakonec (jako bonus) uvidíme, že užitečné linuxové programy lze dobře použít ve windowsech.

Kdyby někdo nevěděl, tak ze začátku připomenu, že v Linuxu nejsou grafické programy, které by obsahovaly vlastní ovladače a nějak se lišily ve způsobu vypalování. Králem linuxové palby je konzolový program cdrecord a jeho věrný druh mkisofs. I když v tom nejsou sami, protože je tu ještě cdrdao, cdparanoia, cdda2wav a další. Důležité je, že veškerá uživatelsky přívětivá klikací grafika jsou tzv. frontendy, kteréžto výše zmiňované programy využívají a na pozadí spouštějí.

 

Vypalujeme graficky

Využívání uživatelsky přívětivých grafických nadstaveb je jednoduché i když pokud vypalujete často, začne se vám zdát, že spouštět docela velký program a složitě se proklikávat ikonkami a různými menu jen proto, že chcete vypálit jeden adresář nebo jeden ISO obraz, je ztráta času.

Asi nejhezčím frontendem, který v poslední době získal spoustu příznivců je k3b, momentálně ve verzi 0.11. Je standardní součástí instalace Mandrakelinuxu, je kompletně přeložen do češtiny a balíčky existují i pro mnoho dalších distribucí. Technické věci, tj. kam má vypalovat a jakým způsobem, nalezení programů vyžadovaných pro správnou funkci, atd. obstará z velké části sám. Uživatel jen vypaluje a nestará se, co je pod kapotou. Výhody a použití grafiky si předvedeme na něm.

Základní výhody:

  • můžete určit (přetahat myší) soubory z různých adresářů
  • program průběžně ukazuje celkovou velikost souborů k vypálení
  • umožňuje jednoduchým způsobem "připalovat" data na multisession disky
  • jednoduché a blbovzdorné (foolproof) kopírování CDček
  • k dispozici jsou další doplňkové funkce např. k vypalování hudby, atd...

Postup práce jen v krátkosti. Spustíme k3b, zvolíme, co budeme vypalovat, třeba Nový datový projekt a do okénka tohoto projektu myší přetaháme všechno, co se má vypálit. Přitom sledujeme "teploměr" v dolní části programu, který nám ukazuje, jakou celkovou velikost tento náš projekt má. Když máme všechno pohromadě, klikneme na Vypálit, a... zastavíme se a budeme přemýšlet. Zvlášť jestli k3b používáme poprvé.

Nastavení

Naším cílem je, abychom plně využili možnosti naší vypalovačky a také, aby vypálené soubory byly čitelné i když jejich názvy jsou dlouhé, i když jejich názvy obsahují české znaky a i když CDčko vrazíme do počítače s windows. K tomu provedeme následující nastavení v dialogu pro vypalování:

  • Na záložce Zápis zapneme Možnosti / Burnfree, což zabrání zkolabování zápisu v případě, že počítač nestačí dodávat data. Vypalovačka umí navázat a pokračovat v palbě. Tedy pokud to umí. Jestli je to nějaký starší exemplář, umět to nemusí. Jestli si nejste jisti, podívejte se níže na "Vypalujeme konzolově" jak se ujistit.
  • Na záložce Souborový systém zaškrtneme
    • Generovat Rock Ridge rozšíření
    • Generovat Joliet rozšíření

    To první proto, aby se zachovala práva k souborům a další věci související s linuxovým souborovým systémem, druhé proto, aby se data dala přečíst ve windowsech. Jestli nevíte, o co v případě (standardního) Rock Ridge a (nestandardního) Joliet rozšíření jde, určitě najdete nějaký popis někde na internetu. Stiskneme Uložit uživatelské hodnoty, ať to příště nemusíme nastavovat znovu.

  • Na záložce Pokročilé vybereme:
    • ISO / Úroveň 2
    • Povolit názvy souborů Joliet o délce 103 znaků
    • Povolit nepřeložené názvy souborů

    Zvláště tato poslední volba má za následek, že výsledná kompilace není 100% ISO-9660 kompatibilní. To je sice smutné, ale pro předcházení problémům a naše pohodlí nutné a prozatím se mi nikdy nestalo, že by s tím byly problémy. Poslední důležitou věcí na této záložce je zaškrtnout Vynutit vstupní znakovou sadu a nastavit na iso-8859-2. To kvůli češtině samozřejmě. Opět klikneme na Uložit uživatelské hodnoty.

Po tomto ponastavování ještě můžete na záložce Nastavení určit jestli začnete pálit multisession disk, to znamená, že na něj později půjde přidávat, nebo jestli chcete v multisession pokračovat, případně jestli se disk uzavře.

Nakonec se vrátíme na záložku "Zápis" a můžeme Vypálit.

K3b toho umí hodně a nastavení je mnohem víc, než jsem popsal. Ale máte se čeho chytit.

Poznámky:

  • Jestli chcete pokračovat v multisession disku a chcete vidět, co na něm už je, zvolte z menu Projekt / Importovat session.

Jak to všechno vypadá můžete vidět na obrázcích.

 

Vypalujeme konzolově

Konzolové nástroje pro vás začnou mít kouzlo ve chvíli, kdy potřebujete počítač používat efektivně a ušetřit si čas a práci. Pálit z konzole je výhodné zejména když potřebujete vypálit data v jednom adresáři nebo potřebujete vypálit ISO obraz. V ostatních případech je asi lepší klikat v k3b.

Budeme používat mkisofscdrecord z balíčku CDRTools se spoustou voleb, takže naše cesta povede přímo k napsání vlastního vypalovacího scriptu.

Příklad: máme adresář /home/pepa/palba a v něm jsou data, která chceme vypálit.

Řešení: vytvoříme ISO obraz, přičemž zachováme češtinu, dlouhé názvy, čitelnost ve windows, atd.. a vypálíme.

 

Pracovní postup jak by vypadal bez scriptů:

  • otevřeme konzolu
  • zadáme cd /home/pepa [Enter]
  • vytvoříme ISO obraz: mkisofs -iso-level 2 -jcharset=iso8859-2 -J -joliet-long -U -r -l -v -V "název_CD" -o mojeiso.iso palba/ [Enter]
  • program mkisofs vyrobí soubor mojeiso.iso v adresáři /home/pepa
  • vypálíme: cdrecord gracetime=2 dev=/dev/cdrom driveropts=burnfree speed=24 -overburn -v -eject -data mojeiso.iso [Enter]

<ironie> Není nic jednoduššího. </ironie>

 

Pracovní postup s použitím scriptů:

  • otevřeme konzolu
  • přejdeme do našeho adresáře cd /home/pepa [Enter]
  • vytvoříme ISO obraz: vyrobiso palba [Enter]
  • v adresáři /home/pepa/iso je soubor mojeiso.iso
  • vypálíme: vypaliso /home/pepa/iso/mojeiso.iso [Enter]

Krása, ne? A teď jak vypadají ty scripty:

 

Script vyrobiso:

#!/bin/bash
echo ""
echo "*** Tento script vytvori ISO obraz zadaneho adresare"

# testuje se prvni parametr
if [ -z $1 ]; then
	echo "*** CHYBA: Nebyl zadan adresar ze ktereho se ma vytvorit ISO obraz!";
	echo "*** POUZITI: vyrobiso nazev_adresare [nazev CD]"
	exit 1;
else
	if [ -e $1 ]; then echo "*** Zadany adresar: $1";
	else echo "*** CHYBA: Adresar $1 NEEXISTUJE!"
	exit 1;
	fi
fi


# testuje se druhy parametr
	if [ -z $2 ]; then echo "*** Nazev CD nebyl zadan";
	else echo "*** Nazev CD: $2";
	fi
	echo "===================================================="

echo ""
echo -n "Pokracovat? (y/n) "
read dotaz
if [ $dotaz == "y" ] || [ $dotaz == "Y" ]; then	

echo "*** Spoustim MKISOFS..."
echo ""

mkisofs -iso-level 2 -jcharset=iso8859-2 -J -joliet-long -U -r -l -v -V "$2" -o ~/iso/$1.iso $1/ 

echo ""
echo "*** DOKONCENO: $1.iso"

else 	echo "Script byl predcasne ukoncen uzivatelem. Stisknuta klavesa: $dotaz";
	echo ""
fi

 

Script vypaliso:

#!/bin/bash
echo ""
echo "*** Tento script vypali urceny ISO obraz rychlosti 24x"

if [ -z $1 ]; then
	echo "*** CHYBA: nazev ISO obrazu k vypaleni nebyl zadan!";
	echo "*** POUZITI: vypaliso nazev_ISO_obrazu"
	exit 1;
else
	if [ -e $1 ]; then echo "*** Vypaleni ISO obrazu $1";
	else echo "*** CHYBA: Soubor $1 NEEXISTUJE!"
	exit 1;
	fi
fi

echo ""
echo "Oteviram mechaniku..."
eject /dev/cdrom
echo ""
echo -n "Pokracovat? (y/n) "
read dotaz
if [ $dotaz == "y" ] || [ $dotaz == "Y" ]; then

echo "*** Spoustim CDRECORD..."
cdrecord gracetime=2 dev=/dev/cdrom driveropts=burnfree speed=24 -overburn -multi -v -eject -data $1

echo ""
echo "*** Vypalovani ISO obrazu $1"
echo "*** DOKONCENO"

else 	echo "Script byl predcasne ukoncen uzivatelem. Stisknuta klavesa: $dotaz";
	echo ""
fi

 

Oba scripty uložíme do adresáře /home/pepa/bin a nastavíme jim práva na spouštění (obrázek). V případě, že s nimi může dělat nejen Pepa, ale i ostatní uživatelé počítače, vyrobíme symbolické odkazy (příkaz ln nebo pomocí mc) např. do adresáře /usr/bin. Scripty v žádném případě nejsou dokonalé. Např. neošetřují celkovou velikost vypalovaných souborů. Ale fungují a nic vám nebrání je dále vylepšovat, nebo si od základů napsat vlastní.

 

Popis některých parametrů příkazu cdrecord:

  • gracetime=2 - Udává, jak dlouho se bude čekat před započetím fyzického vypalování. Výchozí hodnota je 10 vteřin.
  • dev=/dev/cdrom - Určuje, kde je vypalovačka. Tento způsob se používá u nových jader od verze 2.6. Jestli máte starší linuxové jádro, budete muset kvůli SCSI emulaci zadat zařízení ve formátu dev=0,0,0. Co máte v tomto případě zadat vám řekne příkaz cdrecord -scanbus.
  • driveropts=burnfree - Zapíná vlastnost vypalovačky, která dovoluje navázat přerušené vypalování. Jakými vlastnostmi disponuje vaše vypalovačka poznáte, když napíšete cdrecord dev=/dev/cdrom -checkdrive driveropts=help [Enter]
  • speed=24 - Určuje maximální rychlost vypalování. Tento parametr můžete vynechat a rychlost se nastaví sama podle potřeby. Jestli však máte nějaká pochybnější média, doporučuji omezit třeba na 24.
  • -overburn - Dovoluje zapsat víc než je nominální hodnota velikosti média. Na 700 MB CD se běžně dá zapsat 740 MB. U tohoto tzv. overburningu lze opět doporučit omezit maximální rychlost vypalování.
  • -multi - CD se neuzavře a lze na něj připálit další data.
  • -v - Zapíná ukecaný režim. Cdrecord vypisuje co přesně dělá.
  • -eject - Po skončení vypalování vysune mechaniku.

Zaznamenal jsem, že novější verze cdrecordu vyžaduje specifikovat metodu zápisu. V tom případě doplníme ještě parametr -tao (track at once).

Všechny parametry a způsob použití obou programů si můžete prostudovat na manuálových stránkách. Buď za použití příkazů man cdrecordman mkisofs, nebo pohodlněji v Centru nápovědy KDE (jak na to). Krátkou nápovědu získáte pomocí mkisofs --helpcdrecord --help.

 

Poznámky a typy:

  • Informace o vloženém médiu můžete získat zadáním cdrecord dev=/dev/cdrom -atip.
  • Příkaz mount umožňuje lehce připojit ISO obraz takto:
    mount -t iso9660 -o loop /iso_obraz /kam_se_ma_pripojit. Tedy například:
    mount -t iso9660 -o loop /home/pepa/obraz.iso /mnt/iso [Enter].
    Adresář pro připojení musí existovat, takže pokud tam není, md /mnt/iso [Enter]. Při mountování takovýmto způsobem většinou musíte být root. Pro zjedodušení a mountování jako obyčejný uživatel si vytvořte záznam v /etc/fstab.

 

Script vymazrw na smazání přepisovatelného RW média:

#!/bin/bash
echo ""
echo "*** Tento script vymaze prepisovatelne CD-RW"
echo -n "Pokracovat? (y/n) "
read dotaz
if [ $dotaz == "y" ] || [ $dotaz == "Y" ]; then
echo "*** Spoustim CDRECORD..."
cdrecord gracetime=2 dev=/dev/cdrom -v blank=fast
echo ""
echo "*** DOKONCENO"
else 	echo "Script byl predcasne ukoncen uzivatelem. Stisknuta klavesa: $dotaz";
	echo ""
fi 

 

Linux ve windows

Některé Linuxové programy skutečně můžete použít i ve windows. Balíček CDRTools, zkompilovaný tak, že jde spouštět ve windowsech, můžete najít na adrese paehl.com. Stáhněte si kompletní balíček CDRTools binaries + cygwin1.dll, rozbalte ho do adresáře c:\windows a můžete začít. Postupem Start / Spustit / do okénka "otevřít" napsat cmd [Enter] spustíte windowsoidní "konzoli".

Takto by mohly vypadat vaše dávkové (bat) soubory:

Script vyrobiso.bat:

@echo off 
echo.
echo.
echo *** Vytvoreni ISO obrazu adresare %1
echo *** Pouziti: mkiso nazev_adresare [nazev_CD]
echo *** Nazev CD: %2
echo.
if (%2)==() echo Nazev CD nebyl zadan
echo ====================================================
if (%1)==() goto chyba
if exist c:\iso\%1.iso echo *** POZOR!!! ISO se stejnym nazvem uz EXISTUJE!
pause

:begin
echo *** Spoustim MKISOFS...
mkisofs -iso-level 2 -jcharset=cp1250 -J -joliet-long -U -r -l -v -V "%2" -o c:\iso\%1.iso %1/ 

echo.
echo *** DOKONCENO
echo *** ISO obraz je ulozen v adresari c:\iso pod nazvem %1.iso.
pause
goto end

:chyba
echo Musite zadat adresar jako parametr!
pause

:exist
echo Stejný ISO obraz uz v c:\iso existuje!
pause

:end
echo ...konec scriptu...
exit

 

Script vypaliso.bat:

@echo off 
echo.
echo *** Vypalovani ISO obrazu %1
if (%2)==() echo *** MULTISESSION / BURNFREE / OVERBURN
if (%2)==(nomulti) echo *** BEZ multisession / BURNFREE
echo *** Pouziti: vypal jmeno_ISO_souboru [nomulti]
echo ==========================================
if (%1)==() goto chyba
cdrecord dev=0,1,0 -eject
echo.
echo ***Vlozte medium...
pause

:begin

if not exist %1 goto neexistuje

if (%2)==(nomulti) goto nomulti


cdrecord driveropts=burnfree gracetime=2 dev=0,1,0 speed=24 -tao -overburn -v -multi -eject -data %1
pause
goto end

:nomulti
cdrecord driveropts=burnfree gracetime=2 dev=0,1,0 speed=24 -tao -v -eject -data %1 
pause
goto end

:chyba
echo *** Musite zadat jmeno ISO souboru jako parametr!
pause
goto end

:neexistuje
echo *** ISO soubor neexistuje!
pause
goto end

:end
echo *** %1
echo ... konec scriptu...
exit

 

Oba dávkové soubory nakopírujte do některého adresáře, který se prohledává. Třeba rovnou do c:\windows.

 

Kde vzít další informace:


 

Verze tohoto dokumentu:

  • 13.08.2004 - doplněn popis mountování ISO obrazů
  • 16.05.2004 - doplněn script na vymazání CD-RW
  • 02.05.2004 - drobné úpravy a další obrázky
  • 30.04.2004 - původní verze

 

Komentáře

1. [10.10.2005 13:22] info o mediu

Poslal jam (jaros[zavinac]cap-net[tecka]cz)

Jak zjiskam informaci o mediu? zajima me jestli je prazdne nebo plne, nebo presneji, zajima me jestli na medium muzu vypalit, nebo nikoliv.

 

2. [12.10.2005 12:55] RE: info o mediu

Poslal Aleš Tošovský

Zkuste použít:

  • cdrecord -toc dev=/dev/cdrom - zobrazí informace o TOC - tabulce obsahu média
  • cdrecord -msinfo dev=/dev/cdrom - zobrazí informace pro multisession

Nebo na jednotku ukažde v levém souborovém panelu K3B. Jak to vypadá je vidět na /screenshots, položka "Showing info of an empty CDR".


© Aleš Tošovský - linux.tosovsky.info