Vypalování v příkazovém řádku

Proč se zajímat o vypalování v příkazovém řádku když existuje tolik nejrůznějších programů s pohodlným grafickým rozhraním? Třeba proto, že je tento způsob nezávislý na tom, zda je v systému onen program s grafickým rozhraním nainstalovaný. V podstatě ani nemusí být spuštěn systém X window, přesto si lze v pohodě vypálit placku. To se může hodit při záchranných operacích na poškozeném systému kdy je potřebné uchovat data uložená na disku, ale třeba i pro pravidelné zálohování dat bez zásahu uživatele. A to byl vlastně hlavní důvod proč jsem se o vypalování v TUI (text user interface) nebo také CLI (command line interface) začal zajímat.

Podotýkám, že řeč je pochopitelně o vypalování v operačním systému unixového typu. Nejsem si vědom, že by něco podobného bylo možné v systému Microsoft Windows. Dále předpokládám, že vypalovačka je správně nainstalovaná a funguje, protože její oživení není předmětem tohoto článku. Jdeme na to.


Vytvoření ISO obrazu

Nejdříve si musíme připravit data, která chceme vypálit. Je potřebné vytvořit ISO obraz budoucího CD nebo DVD disku. Dělá se to takhle:

$ mkisofs -v -J -R -o jmeno.iso /adresar/k/vypaleni

Takto vytvořený obraz již můžeme vypálit.


Smazání CD-RW, DVD+-RW

Připravený obraz můžeme vypálit buď na obyčejné médium CD či DVD, nebo můžeme použít přepisovatelné, které však před použitím musíme zpravidla vymazat. Následujícím příkazem provedeme tzv. rychlé vymazání CD:

# cdrecord -v speed=x dev=/dev/hdc blank=fast

Za "x" pochopitelně dosadíme rychlost tak aby ji naše mechanika zvládla (mělo by to fungovat i bez uvedení parametru speed) a případně upravíme cestu k zařízení vypalovačky, pokud to není /dev/hdc.
Pro vymazání DVD+-RW disku použijeme příkaz:

# dvd+rw-format -blank /dev/hdc

Jméno souboru zařízení může být v závislosti na typu systému také /dev/dvd.


Vypálení ISO obrazu

Předem připravený obraz máme někde na disku, médium je připravené, můžeme tedy vypalovat. Vypálení iso obrazu na CD:

# cdrecord -v speed=x dev=/dev/hdc -data /cesta/k/jmeno.iso

A na DVD:

# growisofs -Z /dev/dvd=/cesta/k/image.iso
--use-the-force-luke=dao

(zadat v jediném příkaze)
Parametr --use-the-force-luke mi není moc jasný, v manuálové stránce k programu growisofs popsán není, nicméně bez něj mi to nejelo.


Vypálení DVD "ON THE FLY"

Vypálení DVD tzv "za letu", bez vytváření ISO obrazu je také možné, a to příkazem:

# growisofs -Z /dev/dvd -R -J -speed=2.0 --use-the-force-luke=dao /neco/k/paleni

Parametry -R, -J a -speed mají stejný význam jako při pálení CD. Nicméně, tímto způsobem můžeme vypálit jen celý obsah vstupního adresáře.

Proto, chceme-li vypálit jen některé podadresáře ze vstupního adresáře, musíme použít program mkisofs s parametrem -x. Aby bylo možné i takto pálit DVD "za letu", musíme si vytvořit tzv. "pojmenovanou rouru". Pojmenovaná roura je, jednoduše řečeno, uzel v souborovém systému, kterým spojíme činnost dvou programů, mkisofs a growisofs. Program mkisofs tvoří obraz disku ze zadaných adresářů k pálení a "sype" data do této roury. Paličský program growisofs tato data čte a pálí. Mimo jiné to má ten efekt, že na disku nemusíme vytvářet soubor velký víc než 4 GB, ale současně, pokud z nějakého důvodu v rouře "dojdou" data (mkisofs je nestihne dodávat), palič zkolabuje a zničenou placku si můžeme položit pod hrnek. Chce to po dobu pálení trochu opatrnosti se zatěžováním stroje.

Pojmenovanou rouru v systému vytvoříme jednoduše:

# mknod jmeno_roury p
"p" jako pipe - roura

Vypálení DVD s využitím roury provedeme takto:
(celý příkaz musí být zadán na jediném řádku)
# mkisofs -v -J -R -o /cesta/k/rouře -x /co/se/ma/vynechat
-x /co/taky/vynechat /co/se/ma/vypalit | growisofs
-Z /dev/dvd=/cesta/k/rouře --use-the-force-luke=dao


Znak "|" uprostřed mezi příkazy je znak označující rouru.


Využití pálení CD a DVD v příkazovém řádku

Jak již bylo uvedeno na začátku, hlavním cílem bylo zautomatizovat zálohování dat v počítači tak, abych tím strávil co nejméně času. To co je výše popsáno to umožňuje téměř dokonale. Stačí jednotlivé příkazy poskládat do skriptu spustitelného v příkazovém řádku. Jeden takový jsem si napsal:

#! /bin/bash

echo Kopíruji adresář /etc...
cp -R -a -f -p -u /etc /home/michal/Dataapl/Nastaveni
sleep 2

echo Kopíruji adresář /boot...
cp -R -a -f -p -u /boot /home/michal/Dataapl/Nastaveni/jadro
sleep 2

echo Vytvářím pojmenovanou rouru /home/michal/fifo.iso...
mknod /home/michal/fifo.iso p
sleep 2

echo Mažu DVD...
dvd+rw-format -blank /dev/hdc
echo DVD smazáno
sleep 2

echo Vypalování
mkisofs -v -R -J -o /home/michal/fifo.iso -x /home/michal/MyMusic -x /home/michal/MyVideo -x /home/michal/Zaloha /home/michal | growisofs -Z /dev/dvd=/home/michal/fifo.iso -use-the-force-luke=dao
echo Palič skončil...

sleep 2
echo Mažu rouru fifo.iso...
rm /home/michal/fifo.iso
sleep 2

Skript je velmi primitivní, znalci namítnou, že neobsahuje žádné mechanismy například pro ošetření situací, kdy se data nevejdou na médium, nebo kdy jej nespustím s právy roota apod. To je pravda, ale jedná se o účelovou záležitost pro jeden konkrétní stroj s předem známými podmínkami provozu a v této situaci tedy docela postačí. Prostě po práci vložím přepisovatelné DVD do mechaniky a spustím s právy roota příkaz zalohuj a jdu domů. Ráno placku vytáhnu a je to. Abych pojistil i situace, kdy počítač po mém odchodu třeba vybuchne i se všemi bajty v něm obsaženými, mám tato DVD dvě - jedno doma a jedno v práci a zálohuji tímto způsobem průběžně na obě, podle toho, kde zrovna Elizabeth (jméno mého počítače :-) je.


Připojení ISO obrazu do adresářového stromu

Na závěr už jen maličkost. Někdy se může hodit, že v linuxu si můžeme připojit obraz disku ve formátu ISO 9660 do adresářového stromu a pracovat s ním jako by se jednalo o soubory na vypáleném CD nebo na disku. Dělá se to takhle:

# mount /cesta/k/obrazu.iso /kam/pripojit -o loop

Využití tento příkaz najde v situaci, kdy máme na disku třeba obraz instalačního disku operačního systému a potřebujeme z něj vytáhnout nějaký soubor, třeba ovladač. Obraz připojíme a soubor si zkopírujeme.

No a to je vše. Snad to bude k užitku.


V Praze 10.11.2006.




Úvod

Akce

Fotky

Kukbuk

Linux

Webka



Slackware
   Linux
Rohloff
BMW Motorcycles

Webová kamera Hlásná Třebaň

Kontakt