{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Płoń maleńka

Artykuł ten przeznaczony jest dla osób początkujących opisuje on metodą za rączkę sposób wypalania płyt CD w systemie FreeBSD za pomocą nagrywarek ATAPI. Z odrobiną chęci można go jednak odnieść do systemów NetBSD oraz OpenBSD.

Pierwszą rzeczą o jakiej musimy pomyśleć jest konfiguracja naszego systemu dotycząca nagrywarki musimy wiedzieć, który napęd nią jest. Sprawdzamy to za pomocą polecenia dmesg (zainteresowanych odsyłam do manuala man dmesg):

Rivendell# dmesg
...
ad0: DMA limited to UDMA33, non-ATA66 cable or device
ad0: 38146MB [77504/16/63] at ata0-master UDMA33
ad2: 39083MB [79408/16/63] at ata1-master UDMA66
acd0: CDROM at ata0-slave PIO4
acd1: CD-RW at ata1-slave PIO4
...
Rivendell#

W wyniku polecenia dmesg (może być tego sporo) należy wyszukać linijki dotyczące napędów CD. Aby nie zgubić się w gąszczu wyniku polecenia dmesg, można użyć go z filtrem grep (man grep) w tym wypadku polecenie będzie wyglądać następująco:

Rivendell# dmesg | grep acd
acd0: CDROM at ata0-slave PIO4
acd1: CD-RW at ata1-slave PIO4
Rivendell#

W naszym przykładzie widać, że autor (to chyba ja ;) posiada dwa napędy CD: piewszy - acd0a i drugi - acd1c, który jest nagrywarką. W tej konfiguracji można sobie pozwolić na kopiowanie płyt bez wachlowania płytami (co będzie konieczne w przypadku posiadania samej nagrywarki). Jako, że pokazana tu konfiguracja jest najczęstszą skupimy się właśnie na niej.

Wypalanie płyt w systemie FreeBSD (od FreeBSD 4.0 w górę) wykonuje się poleceniem burncd (man burncd) które jest poleceniem wbudowanym, co znaczy, że nie trzeba go instalować/kompilować/ściagać z Internetu. W skrócie - program burncd odczytuje pliki .iso i zapisuje je na wskazanym urządzeniu wyjściowym (w naszym przypadku będzie to /dev/acd1c). Jak przygotować takie pliki? Tym zajmuje się program mkisofs (man mkisofs) odczytuje pliki z podanej ścieżki (np. /root/gfx/pokemony) i zapisuje je w podanym miejscu w postaci pliku .iso (np. /root/moje_iso/pokemony.iso). Program mkisofs nie jest jednak poleceniem wbudowanym FreeBSD trzeba je zainstalować z paczek (tzw. packages polecenie pkg_add nazwa_paczki; man pkg_add) lub portów ( cd /usr/ports/sysutils/mkisofs; make install clean). Należy również zainstalować pakiet cdrtools. Nie wiesz co to paczki i porty? Odsyłam do handbooka FreeBSD (sekcja 4).

Po zainstalowaniu wszystkich potrzebnych komponentów możemy przystąpić do wypalania. Pierwszym krokiem będzie przygotowanie wspomnianego wcześniej .iso. Wykonamy tę czynność taką komendą:

Rivendell# mkisofs JRU o teletubisie.iso /root/wazne/teletubisie

Co jest co? Już tłumaczę:

J włącza obsługę systemu plików Joliet używanego przez Microsoft

R uruchamia obsługę uzywanego przez Unixy systemu RockRidge

U wyłącza restrykcje dotyczące nazw plików.

Możliwe są jeszcze inne parametry umożliwiające np. tworzenie obrazów bootowalnych, systemów plików Mackintosha i wiele innych zainteresowanych odsyłam do manuala.

W wyniku wydanego przez nas polecenia (po czasie zależnym od ilości danych i prędkości napędu w przypadku 700mb i napędu x48 trwa to około 3 minut) w bierzącym katalogu utworzony zostanie plik teletubisie.iso jeśli byliśmy w katalogu /root, to ścieżka do pliku jest następująca: /root/teletubisie.iso.
Jeśli zaś chcemy wykonać kopię jakiejś płyty (wyjątkiem są płyty audio) trzeba wcześniej zamontować (man mount) płytę w napędzie acd0a:

Rivendell# mount t cd9660 /dev/acd0a /cdrom
Rivendell# mkisofs JRU o nazwa_płyty.iso /cdrom

Mamy już wszystko co nam potrzeba pora więc wypalić płytkę. W tym celu wykonujemy polecenie:

Rivendell# burncd f /dev/acd1c s 16 e data nazwa_Twojego_iso.iso fixate

i już zaczęliśmy proces nagrywania, o którego postępach będziemy informowani przez system na bieżąco. Oto opis zastosowanych parametrów:

-f wskazuje napęd, którym będziemy wypalać dane (w naszym przypadku jest to napęd /dev/acd1c)

-s prędkość procesu nagrywania nie szybsza niż prędkość nagrywarki jeśli nie podamy tego parametru burncd przyjmie domyślną wartość: 1

-e podanie tego parametru spowoduje wysunięcie tacki napędu po zakończeniu nagrywania

data format zapisu nam wystarczy do kopiowania płytek z danymi - jest oczywiście więcej możliwości (man burncd)
nazwa_Twojego_iso.iso oczywiście ścieżka dostępu do pliku .iso, który chcemy wypalić (np. /root/gfx/pokemony.iso)

fixate fiksuje płytkę innymi słowy: generuje tablicę TOC i zapisuje ją na płycie - zapis ponowny na płytce nie będzie możliwy.

WAŻNE: parametr fixate powinien być ostatnim parametrem polecenia burncd!

Za pomocą programu burncd możemy również kasować płyty CD-RW. Składnia polecenia poniżej:

Rivendell# burncd f /dev/acd1c s 16 blank

Użyty parametr blank powoduje wymazywanie szybkie (takie, które wymazuje tylko tablicę TOC ang. Table Of Contest). Gdybyśmy zamiast niego użyli parametru erase kasowanie nośnika trwało by znacznie dłużej: do godziny, w zależności od szybkości z jaką można zapisywać daną płytę CD-RW,ale wymazałoby dane na płytce całkowicie.

Po wypaleniu płytki warto pamiętać o skasowaniu naszego pliku .iso, gdyż zajmują one bardzo dużo miejsca tyle ile dane, z których zostały utworzone chyba że zamierzamy korzystac z nich cześciej (np. propagując FreeBSD poprzez rozdawanie kolegom windosowcom i innym linuksiarzom płytek z Free ;).
Na koniec podam przykład skryptu używanego przeze mnie do kopiowania danych we wspomnianej na początku konfiguracji, oraz przypomnienia dodatkowej lektury związanej z tematem.

#!/bin/sh
mkisofs JLRUN o tmp.iso $1
burncd f /dev/acd1c s 16 e data tmp.iso fixate && rm tmp.iso

A co z wypalaniem innych rodzajów danych (np. pliki mp3, płyty audio)? Odsyłam czytelnika do przeszukania drzewa ports i znalezienia odpowiadającego mu
programu. Jest ich kilka, więc można przebierać do woli. Zaś jeśli chodzi o klientów pod Xy (nakładki graficzne) to zdecydowanie polecam program XCDRoast z drzewa ports posiada on polskie lokalizacje, jest ciągle rozwijany i bardzo użyteczny.

Lektura (nie)obowiązkowa:

handbook (3.33.4 struktura plików FreeBSD i montowanie napędow, 4 instalowanie aplikacji: porty i paczki, 12.6 wypalanie płyt CD i DVD)

man (dmesg, grep, pkg_add, pkg_delete, pkg_info, burncd, mkisofs).

Autor: 
Bartek 'robak' Rutkowski [r@tempestnet.pl]
Porozmawiaj o tym artykule na forum: 

tytus, pt., 18/04/2008 - 20:40