Přiznám se, mám moc rád CDčka (a potažmo DVDčka), ale jedna věc mi na nich vždy vadila – nutnost spouštění externího programu, chci-li na ně něco zapsat. Koho by bavilo stále čekat na obligátní ukončení stopy, když tak strašně rychle potřebujete něco vypálit a odejít? A co takhle zkusit technologii zvanou paketový zápis? :-)
Paketový zápis (v originále packet writing) je zvláštní způsob zápisu dat na optické disky umožňující použít Vaše CDčka úplně stejně, jako kdysi diskety – jen s tím drobným rozdílem, že budete mít k dispozici o něco větší kapacitu a ani přenosová rychlost nebude úplně totožná s disketou. Moc fajn je, že na tuhle srandu nepotřebujete žádné speciální média, stačí obyčejné CD-R, DVD-R, DVD+R, ideálně však CD-RW, DVD-RW nebo DVD+RW. Ano, opravdu lze paketově zapisovat i na recordable média, ale musíte pamatovat na to (celkem pochopitelnou) skutečnost, že smazáním již zapsaného souboru volné místo nevytvoříte a stejně tak editace jakéhokoliv souboru na disku si zabere další místo. Z tohoto důvodu bych použití recordable médií moc nedoporučoval. Daleko zajímavější je paketový zápis s rewritable médii, tam lze celý proces dokonale připodobnit k již zmíněné disketě. Takže, jak ten paketový zápis rozchodit?
- Nejprve je třeba provést několik změn v kernelu. Přejděte tedy do adresáře se zdrojovými kódy jádra (
cd /usr/src/linux) a začněte nastavovat (make menuconfig). Povolte tyto volby:
Device Drivers ---->
Block Drivers ---->
<M> Packet writing on CD/DVD Media
(8 ) Freebuffers for data gathering
[ ] Enable write caching
File Systems ---->
CD-ROM/DVD Filesystems ---->
<M> UDF Filesystem Support
Jádro zkompilujte tak, jak jste zvyklí – já třeba používám trojkombinaci make && make modules modules_install install && module-rebuild rebuild
- Do souboru
/etc/modules.d/aliases připište na nový řádek následující: alias block-major-97 pktcdvd
- Vytvořte tzv. device node (přesněji řečeno, adresář pro device nodes):
mkdir /dev/pktcdvd
- Nainstalujte balíček
udftools: emerge udftools
- Do souboru
/etc/fstab přidejte nový řádek podobný tomuto (samozřejmě přizpůsobený pro Vaši hardwarovou konfiguraci): /dev/pktcdvd/0 /mnt/packetdvd udf noauto,noatime,rw,user,gid=users 0 0
- Vytvořte adresář, do nějž se bude naše CD/DVD připojovat – u mě se jedná o adresář
/mnt/packetdvd
mkdir /mnt/packetdvd
chmod 0777 /mnt/packetdvd
- Restartujte do nově zkompilovaného jádra
Hotovo? Tím je konfigurace u konce, teď si ukažme, jak naformátovat CD tak, aby na něj šlo paketově zapisovat.
- Vložte do mechaniky CD-RW

- Spusťte tyto příkazy:
cdrwtool -d /dev/hdc -q
pktsetup 0 /dev/hdc
chmod 0777 /mnt/packetdvd
mount /mnt/packetdvd
- Vytvořte nový soubor
/etc/conf.d/dvdrw, jehož obsahem bude následující:
# List the CD-ROM drives you wish to enable packet writing on here.
# Some examples follow:
#dvdrw_list="/dev/hdd"
#dvdrw_list="/dev/sr0 /dev/sr1 /dev/sr2"
#dvrw_list="/dev/cdroms/cdrom0 /dev/cdroms/cdrom1"
dvdrw_list="/dev/hdc"
- Vytvořte nový soubor
/etc/init.d/dvdrw. Jeho obsah naleznete v přílohách. Tento soubor učiňte spustitelným pomocí následující dvojice příkazů. Třetím příkazem pak systému oznamte, že jej chcete vykonat při spuštění systému.
chown root:daemon /etc/init.d/dvdrw
chmod 0770 /etc/init.d/dvdrw
rc-update add dvdrw default
- A ještě jeden konfigurační soubor, ale slibuju, že už poslední. Tentokrát to bude soubor
/etc/hal/fdi/policy/01-packet-writing.fdi a jeho obsahem bude toto XMLko:
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="block.is_volume" bool="true">
<match key="volume.is_disc" bool="true">
<match key="volume.fsusage" string="filesystem">
<match key="volume.fstype" string="udf">
<match key="block.device" string="/dev/hdc">
<merge key="volume.policy.desired_mount_point" type="string">packet</merge>
</match>
</match>
</match>
</match>
</match>
</device>
</deviceinfo>
Alespoň doufám, že je tento soubor v pořádku – většinou si připojuji CDčka ručně, takže mě to až tak nežere
Kdybyste v něm však našli chybu, dejte vědět.
Pokud jste postupovali přesně podle návodu a pokud jsem někde něco nezeslonil, měl by Vám teď paketový zápis fungovat. Otestovat si to lze snadno, prostě jen přetáhnete jakýkoliv soubor z Vašeho domovského adresáře do adresáře, kam je připojeno médium.
Mimochodem, docela mě překvapilo, když jsem CD „vypálené“ tímto způsobem zkusil otevřít na sestřiných Windows XP a ty s tím neměly vcelku problém – myslel jsem, že XP nepodporují souborový systém UDF, alespoň ne hned po instalaci. Inu, chybami se člověk… :-)
Málem bych zapomněl, mám tu pro Vás ještě jedno upozornění na závěr – přes všechny výhody paketového zápisu nelze zapomenout na skutečnost, že je CD-RW poměrně dost namáháno a časem údajně ztrácí schopnost čtení. Přepis je pak omezen v řádu tisíců, podle kvality média.
Zdroj: převážně Gentoo Linux Wiki
| Příloha | Velikost |
| dvdrw | 2.23 KB |
Komentáře
PacketWriting, Cache a BurnFree
Konecne nekdo zacal i na linkuj zasilat kvalitni clanky. Skoda jen ze PacketWriting zatim nepodporuje BurnFree, takze muze obcas dojit k Buffer Underflow, cimz jsou DVD-R i CD-R znehodnoceny. Jsem zvedav ve ktere verzi kernelu bude funkcni caching, uz se na nej tesim asi pul roku =)
Re: PacketWriting, Cache a BurnFree
Děkuji za pochvalu, podpora BurnFree by se určitě hodila, ani jsem nevěděl, že není :-)
Poslat nový komentář