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):
...
ad0: DMA limited to UDMA33, non-ATA66 cable or device
ad0: 38146MB
ad2: 39083MB
acd0: CDROM
acd1: CD-RW
...
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:
acd0: CDROM
acd1: CD-RW
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ą:
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# 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:
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:
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.
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).
tytus, pt., 18/04/2008 - 20:40
