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

Tworzenie i używanie mediów optycznych (CD i DVD)

Wprowadzenie


Płyty CD mają szereg właściwości, które różnią je od zwykłych dysków. Początkowo były niezapisywalne przez użytkowników. Zaprojektowane są tak, aby mogły być czytane bez opóźnień przeznaczonych na przesuwanie głowicy pomiędzy ścieżkami. Są również o wiele łatwiejsze do przenoszenia pomiędzy systemami, niż podobne rozmiarowo nośniki, które występowały kiedyś.

Płyty CD mają ścieżki, ale pojęcie to odnosi się to do sekcji danych, czytanych nieprzerwanie, a nie fizycznej właściwości dysku. Aby utworzyć płytę CD na FreeBSD, najpierw należy przygotować pliki z danymi, które później utworzą ścieżki na CD, następnie należy nagrać ścieżki na nośnik.

System plików ISO 9660 został zaprojektowany, aby radzić sobie z tymi różnicami. Na nieszczęście ustanowił on zasady graniczne, będące kiedyś standartami. Na szczęście dostarczył mechanizm, który poprawnie nagranym płytom CD umożliwiał rozszerzenie tych granic, nawet jeśli były używane z systemami, które nie wspierały tych rozszerzeń.

Program mkisofs używany jest do tworzenia plików danych zawierających system plików ISO 9660. Posiada on opcje, które wspierają różne rozszerzenia opisane poniżej. Możesz zainstalować go z portu sysutils/mkisofs.

Decyzja, którego narzędzia użyć do wypalania płyt zależy od tego, czy masz nagrywarkę ATAPI, czy inną. Wypalarki ATAPI używają programu burncd, który znajduje się w podstawowej części systemu operacyjnego. Nagrywarki SCSI oraz USB powinny używać programu cdrecord, który można zainstalować z portu sysutils/cdrtools.

burncd ma ograniczoną liczbę wspieranych urządzeń. Aby się dowiedzieć, czy napęd jest obsługiwany, zobacz listę wspieranych nagrywarek CD-R/RW.

mkisofs

mkisofs wytwarza system plików ISO 9660, który jest obrazem drzewa katalogów w systemie plików Unix'a. Najprostszym użyciem jest:

# mkisofs -o plik_obrazu.iso /sciezka/do/drzewa

Ta komenda utworzy plik obrazu "plik_obrazu" zawierający system plików ISO 9660, będący jednocześnie kopią drzewa z /sciezka/do/drzewa. W procesie tym nazwy plików zostaną zmienione na te, które odpowiadają ograniczeniom standartu ISO 9660, wyłączone zostaną pliki nazywające się niecharakterystycznie dla systemu plików ISO 9660.

Istnieje wiele opcji pozwalających obejść te ograniczenia. Na przykład, -R uruchamia rozszerzenie Rock Ridge, powszechne dla systemów Unix'owych, -J uruchamia rozszerzenie Joilet, używane przez systemy Microsoft, -hfs może być wykorzystane do tworzenia systemu plików HFS, używanego przez MacOS.

Dla płyt CD, które mają być używane tylko przez system FreeBSD, można użyć -U, co zdeaktywuje wszystkie ograniczenia nazewnictwa plików. Kiedy użyje się tego wraz z -R, utworzony obraz systemu plików będzie identyczny z drzewem FreeBSD od którego zaczynałeś, wielokrotnie naruszającym standart ISO 9660.

Ostatnią opcją podstawowego użycia jest -b. Pozwala określić położenie obrazu rozruchowego przy tworzeniu uruchamialnej CD "El Torito". Opcja ta czyta argument będący ścieżką do obrazu rozruchowego ze szczytu drzewa nagrywanego na CD. Zakładając, że /tmp/myboot trzyma uruchamialny system FreeBSD z obrazem rozruchowym w /tmp/myboot/boot/cdboot, możesz utworzyć obraz systemu plików ISO 9660 w /tmp/boot.iso sposobem:

# mkisofs -U -R -b boot/cdboot -o /tmp/boot.iso /tmp/myboot

Mając już to zrobione, jeśli posiadasz skonfigurowane w jądrze vn, możesz zamontować system plików:

# vnconfig -e vn0c /tmp/bootable.iso
# mount -t cd9660 /dev/vn0c /mnt

W tym miejscu możesz zweryfikować, że /mnt i /tmp/myboot są identyczne.

Istnieje wiele innych opcji, których możesz użyć z mkisofs, aby dostroić jego zachowanie. Na przykład: modyfikacje do ISO 9660 i kreacji dysków Joilet i HFS. Zobacz stronę podręcznika systemowego mkisofs(8), aby dowiedzieć się szczegółów.

burncd

Jeśli masz nagrywarkę ATAPI, możesz użyć burncd do wypalania obrazów ISO na płyty. burncd jest częścią systemu, znajduje się w /usr/sbin/burncd. Użycie jest bardzo proste, burncd ma kilka opcji:

# burncd -f urzadzenie_cd data plik_obrazu.iso fixate

Powyższe spowoduje wypalenie plik_obrazu.iso na urzadzenie_cd. Domyślnym urządzeniem jest /dev/acd0c. Zobacz burncd(8), aby dowiedzieć się jak ustawić prędkość zapisu, wysuwanie się tacki po nagraniu oraz nagrywaniu płyt audio.

cdrecord

Jeśli nie posiadasz nagrywarki ATAPI, do wypalania swych płyt, będziesz musiał użyć cdrecord. Program ten nie jest częścią systemu, trzeba go zainstalować z portu sysutils/cdrtools, albo z odpowiedniej paczki. Zmiany w systemie operacyjnym mogą powodować, że binarne wersje tego programu nie działają. Powinieneś wówczas, albo zainstalować nowy port podczas odnawiania systemu, albo, jeśli używasz -STABLE, odnowić port, gdy tylko będzie dostępna nowa wersja.

Podczas, gdy cdrecord ma wiele opcji, to podstawowe użycie jest nawet prostsze niż burncd. Aby wypalić obraz ISO 9660 robimy tak:

# cdrecord dev=urzadzenie imagefile.iso

Całą sztuką używania cdrecord jest odnalezienie urządzenia do użycia. Aby znaleźć odpowiednie ustawienia użyj cdrecord z flagą -scanbus, co może zakończyć się na przykład z takim rezultatem:

# cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 
1995-2000 Jörg Schilling

Using libscg version 'schily-0.1'
scsibus0:
0,0,0     0) 'SEAGATE ' 'ST39236LW       ' '0004' Disk
0,1,0     1) 'SEAGATE ' 'ST39173W        ' '5958' Disk
0,2,0     2) *
0,3,0     3) 'iomega  ' 'jaz 1GB         ' 'J.86' Removable 
						       Disk
0,4,0     4) 'NEC     ' 'CD-ROM DRIVE:466' '1.26' Removable 
						     CD-ROM
0,5,0     5) *
0,6,0     6) *
0,7,0     7) *
scsibus1:
1,0,0   100) *
1,1,0   101) *
1,2,0   102) *
1,3,0   103) *
1,4,0   104) *
1,5,0   105) 'YAMAHA  ' 'CRW4260         ' '1.0q' Removable 
						     CD-ROM
1,6,0   106) 'ARTEC   ' 'AM12S           ' '1.06' Scanner
1,7,0   107) *

Wyświetla to odpowiednie wartości dev dla urządzeń na liście. Odnajdź swoją nagrywarkę, następnie użyj trzech numerów oddzielonych przecinkami, jest to wartość dev. W powyższym przypadku urządzenie CRW ma wartość dev równą 1,5,0, więc odpowiednim wejściem będzie dev=1,5,0. Istnieją łatwiejsze sposoby dla określania tej wartości, aby się tego dowiedzieć zobacz cdrecord(1). Tam też dowiesz się o nagrywaniu płyt audio, kontrolowaniu prędkości i innych rzeczach.

Tworzenie duplikatów płyt.

Możesz skopiować płytę z danymi do pliku obrazu, który jest funkcjonalnie identyczny do pliku obrazu utworzonego przez mkisofs, w ten sposób skopiujesz każdy CD z danymi. W poniższym przykładzie, zakładamy, że Twój CDROM to acd0. Podstaw w tą wartość odpowiednie dla siebie urządzenie CD. 'c' musi być dodane, aby wskazać na całą partycję, albo, w przypadku CDROM'u, na cały dysk.

# dd if=/dev/acd0c of=file.iso bs=2048

Teraz, gdy masz już obraz, możesz wypalić go na płycie CD jak opisano powyżej.

Nie działa to z płytami audio (muzycznymi).

Używanie płyt z danymi.

Teraz, gdy utworzyłeś już standartowy CDROM z danymi, prawdopodobnie chcesz go zamontować i czytać z niego owe dane. Domyślnie mount(8) zakłada, że system plików jest typu ufs. Jeśli spróbujesz czegoś takiego jak:

# mount /dev/cd0c/mnt

otrzymasz ostrzeżenie "Niepoprawny super blok" ("Incorrect super block"), a płyta się nie zamontuje. CDROM nie jest systemem plików UFS, więc montowanie w ten sposób nie powiedzie się. Wszystko, czego trzeba do działania, to powiadomić mount(8), że system plików jest typu ISO9660. Robi się to przez dodanie opcji -t cd9660. Na przykład, jeśli chcesz zamontować urządzenie CDROM /dev/cd0c w /mnt, powinieneś wpisać:

# mount -t cd9660 /dev/cd0c /mnt

Zauważ, że nazwa urządzenia CDROM (w tym przykładzie /dev/cd0c) może być inna, w zależności od tego, którego interfejsu używa Twój CDROM.Także opcja -t cd 9660 po prostu wykonuje mount_cd9600(8).

Powyższe przykłady mogą być skrócone do:

# mount_cd9660 /dev/cd0c /mnt

Generalnie możesz używać tej komendy do montowania jakichkolwiek CDROM'ów. Jednakże płyty z pewnymi rozszerzeniami ISO 9660 mogą zachowywać się nieco dziwnie. Na przykład, dyski Joilet składują nazwy plików w dwu bitowych znakach Unicode. Jądro FreeBSD nie zna Unicode (jeszcze), dlatego nieangielskie znaki wyświetlane są jako znaki zapytania. (Jeśli masz FreeBSD 4.3 lub późniejszy, sterownik CD9660 umie wgrać w locie odpowiednią tablicę z tłumaczeniami. Moduły do niektórych kodowań są dostępne przez port sysutils/cd9660_unicode.)

Od czasu do czasu, gdy będziesz chciał zamontować CDROM, możesz otrzymać informację "Urządzenie nie skonfigurowane" ("Device not configured"). Zwykle oznacza to, że wg. CDROM'u w napędzie nie ma żadnej płyty, albo, że napęd jest niewidoczny na szynie. Czasem napędy, aby się zorientować, że mają w sobie płytę, potrzebują kilku sekund, bądź dlatego cierpliwy.

Niekiedy SCSI CDROM może być pominięty, ponieważ nie miał wystarczającej ilości czasu, aby odpowiedzieć na reset szyny. Jeśli posiadasz CDROM SCSI należy dodać poniższą opcję do pliku konfiguracyjnego jądra, a następnie przebudować jądro.

options SCSI_DELAY=15000

Opcja powyższa nakazuje Twojej szynie SCSI czekać 15 sekund podczas uruchamiania się systemu by dać napędowi CDROM szansę odpowiedzi na reset szyny.

Wypalanie płyty z surowymi danymi

Możesz zdecydować, że pliki chcesz nagrać bezpośrednio na CD, pomijając tworzenie systemu plików ISO 9660. Niektórzy robią tego typu kopie zapasowe. Wykonuje się to szybciej, niż wypalanie standartowego CD:

# burncd -f /dev/acd1c -s 12 data archiwum.tar.gz fixate

Aby mieć dostęp do danych zapisanych na takiej płycie, musisz czytać dane bezpośrednio z surowych węzłów urządzenia:

# tar xzvf /dev/acd1c

Nie możesz zamontować tego dysku jak zwykłego CDROM'u. Takiego CD nie da się odczytać pod żadnym innym systemem operacyjnym, poza FreeBSD. Jeśli chcesz zamontować tą płytę, albo współdzielić dane z innymi systemami operacyjnymi musisz użyć sysutils/mkisofs jak opisano powyżej.

Oryginalny rozdział napisał Mike Meyer.

Id: Aleksander Fafuła  2003-06-19 

mlodszy, sob., 14/06/2008 - 10:14